diff options
| Commit | 789e6f01f48a9f3278e9976c576f328699b9d434 (patch) | |
|---|---|---|
| Author | 2023-07-13 21:12:51 +0300 | |
| Committer | 2023-07-13 21:12:51 +0300 | |
| Files | 6856f99bee10cd547f774d6ce310cafcde94e8c0 /src/blog | |
| syndamia.com-789e6f01f48a9f3278e9976c576f328699b9d434.tar syndamia.com-789e6f01f48a9f3278e9976c576f328699b9d434.tar.gz syndamia.com-789e6f01f48a9f3278e9976c576f328699b9d434.zip | ||
| Parent | d1b51dc4f4f9ceccfd46050bcff894b1fd24fc87 (diff) | |
(blog/fmivisshe/bal) Finished overall structure and text
1 files changed, 167 insertions, 2 deletions
| -rw-r--r-- | src/blog/fmi-i-vissheto-obrazovanie-v-programistkata-industriq/index.md | 169 |
diff --git a/src/blog/fmi-i-vissheto-obrazovanie-v-programistkata-industriq/index.md b/src/blog/fmi-i-vissheto-obrazovanie-v-programistkata-industriq/index.md index 76acab9..3804c62 100644 --- a/src/blog/fmi-i-vissheto-obrazovanie-v-programistkata-industriq/index.md +++ b/src/blog/fmi-i-vissheto-obrazovanie-v-programistkata-industriq/index.md @@ -215,6 +215,7 @@ Количеството подготовка за едно контролно зависи от човек на човек, но ако нищо не си учил, бих казал че е поне една-две интензивни седмици за сериозните предмети са достатъчни. За домашните е по-малко, защото по принцип те са върху неща, изучавани на упражнения, така че ако си си водел записки (или споделящи колеги са водели) ще знаеш как да решиш всички задачи (разбира се, има изключения). +Това обаче е **само за контролни-задачи по някои предмети**, все пак имаш теория и имаш задачи за които ти трябва теория, и тя вече не може да се научи толкова бързо. Нещо много хубаво е, че никой не следи за присъствие на занятия и не се пишат отсъствия както в училище. Разбира се, това не означава, че не е нужно да се ходи на всички занятия, напротив, но ако искаш винаги може да пропуснеш нещо. @@ -239,6 +240,8 @@ ### Какво се учи в компютърни науки +Няма да споменавам имена, разписите за моя випуск си стоят на сайта, който токова се интересува да се порови. + Важно е да спомена, че всеки лектор изцяло дефинира материалът, който ще се изучава, и форматът на изпитване. Разбира се, неговите решения са прегледани от някаква комисия, но главния ефект е, че за един и същ предмет, различни преподаватели имат колосално различни изисквания и може да има огромни разлики в преподадения материал. Като цяло няма да казвам имена на лектори и асистенти, освен ако не е за хвалба, обаче ако си много любопитен, в разписа на сайта на ФМИ си пише имена срещу всеки предмет. @@ -269,13 +272,175 @@ #### Първи курс: М-то във ФМИ означава МатеМатика +Първи курс е най-трудния курс и е най-тежък като математика. +Обаче въпреки всичко, тази математика си има употребите и е есенциален фундамент за много други неща. + +##### Зимен семестър + +**Алгебра 1**: пълното име е линейна алгебра. +Занимава се главно с линейни уравнения (ax + by + ... + mz = k), обаче интересното идва като изследваме операции върху тях и ги навържем в пространства. +Много фундаментален предмет, използват се поне части от него в много клони на математиката и инженерството (защото много неща могат да се моделират с нея). +Има употреби в machine learning, в компютърната графика, в алгоритми за препоръки (търсачки примерно), обаботка на изображения и много други. + +Има по една малка задача всяка седмица, но не са трудни, изисква постоянство. +Предметът се минава без твърде много трудности, лекционните записки са много прецизно написани и упражненията са супер. + +**Диференциално и интегрално смятане 1**: с други думи, реален анализ. +Главно разглеждаме свойства и операции върху функции и редици числа. +В училище учим производни, разговорно казано глаголът да правиш производни може да се нарече "производиране", обаче терминът е диференциране. +Интегрирането е обраното действие на диференцирането, от някаква производна как ще намериш функция, която се превръща в тази производна. +Неговата употреба е малко по-изолирана, но е много полезно за анализ на алгоритми и разглеждане на "аналогови" данни (примерно радиокомуникация, wifi). + +Упражненията, особено при правилната асистентка, са много добри, лекционните записки са солидни. +Това е един от много трудните предмети за минаване, при който редовно минават към 20-30 човека. +Главната цедка е теорията, на която имаш теоретични задачи, при които дори за 3ка ще трябва да приложиш малко усет към предмета. +Като цяло просто изискванията са високи, иначе екипа са готини и бих казал, че оценяването е честно. + +**Дискретни структори**: този предмет е малко смесица от три предмета - булева алгебра, увод в теория на множествата, комбинаторика и теория на графите. +От всичките математики, това е може би най-важната. +В определен смисъл на думата, ДИС се занимава с безкрайно много и безкрайно малки елементи: на една функция може да и подадеш числото 1, но и 1.1, и 1.11 и так. нат., без проблем. +Обаче ДСТР разглежда дискретни обекти, тоест някакъв краен брой конкретни неща. + +- Булевата алгебра е малка, тя много се ползва в булеви изрази при условия в код. +- За теория на множествата съм написал увод, защото истинския предмет става много странен, но се занимава точно с обекта за който говорехме по-рано: множества. + Тяхното приложение е вездесъщо, не само в математиката, а и в програмирането. +- Комбинаториката се занимава с бройка възможности, нейното приложение пак е свързано с разглеждане на алгоритми и се използва за доста резултати в теория на графите. +- Най-общо, граф е съвкупност от елементи и връзки между тях. + Това може да са градове и магистралите между тях, устройства и интернет кабели в компютърните мрежи, лингвистика като думи и техните връзки, специални структори от данни и списъка продължава. + Теория на графите се използва в кажи-речи всички науки и е една от най-важните компоненти на алгоритмите. + +Това е предмета при който редовно минават максимум 10 човека. +Асистентите много често се менят, така че нивото на упражнения е малко хлабаво. +Лекционните записки даже бих казал, че са по-добри отколкото при предишните два предмета, защото малко повече има нормални обяснения. +Ама трябва да предупредя, че не получаваш точки за полувинчати решения, като цяло или си решил задачата коректно или не. +Бих казал че при този предмет се появяват нечестности или прекомерно високи изисквания на моменти, но се минава. + +**Увод в програмирането**, неговото значение трябва да е очевидно. +Изучава се C++, макар и някои неща да са напрвени/да се преподават по не твърде добри начини. +Аз имам твърде силни мнения по този предмет, затова ще се въздържа да казвам твърде много, но според мен има някои големи пропуски. + +##### Летен семестър + +**Диференциално и интегрално смятане 2**: директно продължение на ДИС1. + +**Геометрия**: истинското име на този предмет е аналитична геометрия и няма нищо общо с училищната евклидова геометрия. +Разглеждаме пространствата и геометричните обекти като по-абстрактни неща, или по-конкретно, разглеждаме повече числата и зависимостите между конкретни обекти. +Централно в компютърната графика и всичко около нея (обработка на изображения, 3D моделиране, ...). + +Лекционните записки са малко по-неудобни за ползване, понеже са написани на ръка, ама вършат работа. +Упражненията са супер, има и много добри записки по тях. +Минава се без твърде много проблеми. + +**Езици, автомати и изчислимост**: втория най-важен предмет от математиките, на английски се казва Theoretical Computer Science. +Занимава се с различни теоретични обекти, които могат да правят изчисления върху текстови низове. +Всичко свързано с анализ или шаблони върху текст използва нещата тук, а пък и одвъд. +Ако някога си чувал за машина на Тюринг, Тюринг-завършеност на програмни езици или проблемът за спирането, от тука идват. +Благодарение на тази наука е възможно да имплементираш компилатори на програмни езици и да правиш всички форми на разбор на текст (като обработката на уебстраници и интернет пакети). + +Записките са много добри, даже публично се намират, заедно с минали изпитни теми, [тук](http://logic.fmi.uni-sofia.bg/eai.html). +И както по дискретни структури, асистентите са неконсистентни и нивото малко криви. +Ама в края на деня преподавателите са готини и не искат да прецакват хора, така че се минава спокойно. + +**Обектно ориентирано програмиране**: това е най-популярният начин/парадигма за програмиране. +Обект е групиране на данни с функциите върху тях, като са изпълнени [няколко свойства](https://en.wikipedia.org/wiki/Object-oriented_design#Object-oriented_concepts). +Кажи-речи всяка компания и всеки модерен програмен език, който се използва в индустрията, поддръжа ООП. +Сега, за самото ниво на преподаване, продължава същото ми мнение като на УП. + +#### Втори курс: И-то във ФМИ означава математИка + +Първия семестър на втори курс беше абсолютна почивка, без никаква математика само се занимавахме с програмиране и компютърни неща. +Втория обаче добре напомни, че сме във ФМИ и там колана се затегна с Алгебра 2 и Дизайн и анализ на алгоритми. +Като цяло във втория семестър за първи път (и да се надяваме последен) започнах да виждам на предмети като наистина безсмислени и зле направени. + +##### Зимен семестър +**Компютърни архитектури**: описание на хардуера. +Малко се доближава и до електротехниката, но се разглеждат много фундаменталните хардуерни компоненти и техните функционалности в един компютър. +Разглеждаме основните компонентни схеми за изчисления и хардуерно как се ползват и работят нещата. +Не е кой знае колко полезен за средния програмист, освен ако не се занимаваш със системно програмиране, ама е много важен фундмент. + +Лектора е много готин, един от любимите ми бих казал. +Това е първия предмет при който няма задължителни упражнения, но никой не препоръчва да се ходи на избираемия практикум, понеже не е координиран много добре с лекциите и някои неща стават твърде трудни. +Иначе минаването е лесно. + +**Основи на компютърната графика**: има ли изобщо какво да обяснявам. +Разглеждаме част от математиката, но повече се занимаваме с 3D моделиране и идеите на сложните неща, не толкова тяхното имплементиране. + +Минаването е лесно, трябва да си малко консистентен със седмичните задачи обаче. +И този лектор ми е един от любимите. +Презентациите в които се намира материала са перфектно направени и упражненията са много приятни. +Ето [тук](https://boytchev.github.io/scorm/) има редици малки задачки/игри с които можеше да изкараш малък бонус към оценката. + +**Структури от данни и програмиране**: нещо като въведение в дизайн и анализ на алгоритмите. +Занимаваме се с някои много важни структури от данни, като стек и опашка, и разглеждаме алгоритми върху тях. +Супер важно за всеки програмист. + +**Функционално програмиране**: втората най-използвана парадигма след ООП. +Идеята е, че разглеждаме всичко като функции, във всеки момент една функция връща нещо или приема нещо и никъде не пазим състояния. +Тоест, една стойност се намира или като аргумент или като върната стойност. +Също супер важно да се знае и може. + +Лекционните презентации са доста добре, но асистентите са най-голямата сила на предмета. +Минаването не е трудно, само трябва да посвикнеш с този тип писане на код. + +##### Летен семестър + +**Алгебра 2**: дефакто разглеждаме теория на групите, което на английски съм го виждал и като "Modern algebra". +Група е някакво множество от елементи и операция върху тях, като за опреацията са изпълнени няколко свойства. +Допълнително имаме и пръстен, където вече имаш множество и две опреации върху тях. +Може би звучи странно, но е една от [най-интересните и шантави математики](https://www.youtube.com/watch?v=mH0oCDa74tE). +Криптографията се основава на нея и има употреби в теория на графите. + +Екипът и нивото е същото като при Алгебра 1, така че нямам оплаквания. +Макар че този път няма седмични задачи - ура! + +**Дизайн и анализ на алгоритми**: също едно име, което обяснява себе си. +Разглеждаме методиките за сравняване на алгоритми (асимптотика) и как да докажем тяхната коректност. +Също разглеждаме доста основни и често използвани алгоритми, както и се допираме до [NP сложност](https://en.wikipedia.org/wiki/NP_%28complexity%29). +Още един много важен предмет. + +Тук сякаш проблема с консистентност на асистентите се е пооправил. +Записките пак са много добри, както при Дискретни структори, даже може би по-добри. +Обаче смятам, че на доста моменти навлиза твърде много в математиката и теорията, и има същите проблеми с оценяването както по ДСТР. +Цели 15 човека минаха от първия път, така че нивото е горе-долу същото. + +**Изследване на опреациите**: решава оптимизационни задачи, тоест задачи при които искаш минимум или максимум, като за всяка променлива имаш някакво ограничение (на английски се казва Linear Programming, но няма нищо общо с програмиране). +Една оптимизационна задача е примерно ако имаме фабрики за автомобили, всяка произвеждаща различно количество коли и складове в други градове, сразлични капацитети, и имаме цената на пътя между градовете и складовете, как най-евтно ще пренесем всички автомобили в складовете. +Има употреба ако се опитваш да решиш такъв тип задачи, но ми се струва от по-безполезните неща за един програмист. + +Още от началото бяха качени всички материали за курса, така че не съм ходил на упражнения, но съм чувал че има какво да се желае повече от тях. +Лектора е готин. +Минаването е лесно, нещата не са супер трудни. + +**Компютърни мрежи**: пак име, което само се обяснява. +Абсолютно всичко свързано с интернет и мрежите, от протоколи до методи за маршрутизация. +Като КАРХ не е от най-полезните за ежедневието, но е много важен фундамент. + +Лектора също е готин и задачите за упражнения са супер готини. +Както и по други предмети, лектора не иска да ни прецаква, затова минаването не е проблем. + +**Операционни системи**: може би най-важния не-математически предмет, ако беше направен свестно. +Имам много силно мнение за него, като цяло предмета се свежда до 70% менижиране на процеси, 20% менижиране на памет и 10% случайни неща. +Имаше потенциала да е от най-добрите предмети в целия бакалавър, ама програмата и изпитването беше наистина зле направено. + +И това, за сега, е първия и единствен предмет за който мисля така. ## Има ли смисъл от следване във фми? ДА! -Да не говорим, че няма да представя ФМИ в много добра светлина, там се следва много трудно и обучението е далеч от перфектно. +Какво виждаш, има хубави неща във ФМИ, но има и някои които не са толкова добри. +Общото ми впечатление е, че за математика имат най-силни хора, обаче някои от тях са твърде взискателни. +По програмистките неща пък екипите са твърде меки и според мен можеха по-вече да изискват от нас. + +Обучението е далеч от перфектно, обаче каквото и да си говорим, обучението никъде не е перфектно. +Бих казал, че може да се намери и [много по-ниско качество за по-голяма цена](https://kleopetrov.me/2017/01/31/return-return-and-how-to-breack-it/). +Главните причини, за които бих препоръчал ФМИ са: + +1. Колегите, хората които влизат са много готини и ако се постараеш ще се запознаеш с много добри приятели +2. Математиката доста се проуска от компютърджии, обаче е ужасно важна за много неща, ако искаш да задълбочиш. +3. Студенстването си е веднъж в живота изживяване, все пак характера става по-издържлив когато те скъсат по няколко изпита, за които си учил много. +4. Каквото и да си говорим, ФМИ е доста респектирано учебно заведение, макар и диплома за един програмист да не е задължителна, със сигурност ще помогне значително. -В края на деня, +Но дори това, лично според мен, **по-добре да следваш една година във ФМИ и да се откажеш, отколкото да следваш 4 години в НБУ или 6 в УниБит!** [^inf-sistemi]: Признавам, за тази инфомация използвах [това мнение от форум](https://forums.bgdev.org/index.php?showtopic=34217&st=0&#entry255351), никой не обсъжда ИС. [^mat-i-ii]: Макар че това не е много добра причина за смяна на изпитването, понеже схемата с два такива изпита (единия стандартен и другия с малко задачи, но с пълни решения) си е държала още от времето на комунизма. Моето предположение за тази промяна, е че новата система е влошила качеството на обучение твърде много и искат минималните оценки за влизане се повишават обратно към околността на 6ца, но това вече са мои си конспирации. |