Update 09.10.2009: Взех диплома.
В последната седмица ми се случи да споря няколко пъти за висшето образование по информатика. Първата причина беше разказът на
Боян за "един кървав демон, хранещ се от нещастието на хората". По този повод спорихме с един небезизвестен
Yes-blogger за учебната програма и методите на обучение в университетите. За капак в момента флеймя на един форум за смисъла на дипломите. Очевидно има интерес към темата и многомилионната ми аудитория силно желае да научи моето мнение по въпроса.
Първо да изясним, че съм потенциално пристрастен. Не съм си взел изпита по Математически Анализ 2 и този по Геометрия и в резултат нямам диплома. От друга страна смятам, че информатиката е дял на математиката, а не някаква странична наука. Смятам, че всички математически дисциплини имат някакво реално и смислено приложение и определено трябва да се изучават и в специалност Информатика. Проблемът е в баланса на дисциплините и начина на преподаване.
Някои дялове на математиката зависят много пряко от други, например статистиката зависи силно от анализа, но други нямат нищо общо например анализът изобщо не се вълнува от дискретната математика и обратно. Някои дисциплини имат слаба връзка помежду си например дискретна математика и алгебра. Информатиката, като всяка друга математическа дисциплина е близка с някои от другите дялове, но за сметка на това няма нищо общо с други. Освен това информатиката има достатъчен брой поддялове, които понякога се възползват от математическите си корени, но понякога нямат нищо общо. Пример за първия случай е компютърната графика, а за втория методологиите за разработка на софтуер. В много случаи математиката в основата на въпросната дисциплина отдавна е опакована в тлъст слой абстракции и вече не е необходимо да се разбира основата. Какво ме интересува колко аналитична геометрия е била необходима за изрисуването на един прозорец ако аз пиша само "new Form()"? Точно тук е първият проблем на днешните български университети. Балансът на дисциплините е тотално сгрешен. Не може дисциплина като анализа която се използва от около 1 на 300 информатика (не искам да си помисля ако го меря в програмисти) да заема 1/30 от учебното време. Това си е 10 пъти надвишаване на полезността. Тази дисциплина е идеален кандидат да стане избираема. От друга страна Web се учи само в избираеми дисциплини. Да не би тези технологии да нямат особености, които да трябва да се изучават? Според мен програмирането в stateless среда изисква тотално различен начин на мислене, но някой е решил, че вместо това е добре студентите да могат да решават още по-сложни интеграли. Без съмнение светът има нужда от още хора, които да решават интеграли.
Тук идва вторият проблем. Факт е, че преподавателите по "чистите" математически дисциплини са САМО с математическа подготовка. Те нямат идея защо студентите в специалност Информатика изобщо изучават преподаваната дисциплина. Някой им е казал, че в програмирането се ползвало математика, но те нямат идея как. Резултатът е, че специалност Информатика изучава линейна алгебра по същия начин както я изучава специалност Математика, но в специалност Математика решават по-трудни задачи. Според мен решаването на задачи е най-безсмисленият начин, по който може да се преподават "чисти" математически дисциплини на информатик. Задачата на информатиката е да моделира математически проблеми от реалния свят, а не да ги решава. Основен двигател на прогреса е разделението на труда. Когато искам да реша някоя задача ще попитам математик. Един информатик трябва да може да познае математиката в проблема, а математикът ще се погрижи за решението, което информатикът ще превърне в софтуер. Всичкото това време прекарано в решаване на задачи за мен е БЕЗПОЛЕЗНО. Най-малкото вече съм забравил как се решават. Все едно никога не съм ги учил. Ако зависи от мен на специалност Информатика ще се показват решенията на 1-2 задачи, ей така, информативно, а повечето време ще се отдели на чиста теория и най-вече примери за приложения. Разбира се зависи, за коя дисциплина става въпрос, защото задачите по дискретна математика са доста пряко свързани с програмирането и трябва да се решават от информатици, но от задачите по анализ ползата е НИКАКВА. Резултатът от този метод на преподаване е, че студентите завършват със солидни умения за решаване на "чисти" математически задачи, които никога не влизат в употреба, защото човекът просто не може да ги познае когато ги види в реалния свят. Ползата е точно колкото ползата от решаването на кръстословици - можеш да се направиш на умен някъде, но не можеш да свършиш нищо полезно. И не ми излизайте с тези легенди за начините на мислене. Начинът на мислене е от полза ако можеш да го приложиш някъде и да го свържеш с някакъв проблем. От решаване на кръстословици файда няма, особено ако не можеш да познаеш кръстословицата, ако ще да ти я татуират на корема. Е да, хубаво би било всичко да се изучава на върховно ниво, но няма как висшето образование да се учи 10 години, нали?
От всичко това се подразбира и отношението ми към дипломите. Няма да си мръдна пръста да се уча да решавам задачи по гореспоменатите два предмета, защото просто няма смисъл. Като не ми дадат диплома здраве да е, а ако някой не иска да ме вземе на работа защото нямам диплома, явно смята, че не съм прав за нещата изписани до тук и аз вероятно не искам да работя за него, просто защото няма да се разберем. От друга страна университетът е силно препоръчителен за хора, които не могат да се мотивират сами. Аз там съм се научил да програмирам на ниво достатъчно за да започна работа и съм научил доста неща, които ми помагат да имам по-дълбоко разбиране за софтуера включително анализ. Обаче ако ще ходите там препоръчвам да се опитате да разберете кое е наистина важно сред многото непотребни неща, които се преподават. От друга страна, за хора, които могат да се мотивират сами, Интернет е пълен с ресурси, чрез които материалът може да се научи по-бързо и по-ефективно отколкото в университета.
За финал искам да споделя каква според мен е причината за това положение в университетите. Просто младите специалисти по информатика не се мотат в университетите, а ако случайно са там те нямат никакво влияние. Образованието го командват дъртаци с дипломи по математика, които си преподават по същите методи от преди 50 години с оправданието "математиката не се променя". Математиката може да не се променя, но начините по които се прилага се променят и то много. Информатиката отдавна вече не се занимава с изчисляване на сложността на Quicksort и Програмиране > ++Алгоритми;