Доц. Нора Ангелова :“В книгата си предлагам най- актуалната и изпреварваща методология за пътя от начинаещ до експерт програмист“

Книгата „Пътят от начинаещ до експерт програмист в задачи (Част 1)“ на доц. Нора Ангелова въвежда напълно нова методология за обучение по информатика и компютърни науки, като преобръща досегашното разбиране за изграждане на знание и използва нови компоненти и методи за развиване на експертни умения. Методологията се прилага пилотно в специалност „Компютърни науки“ във Факултета по математика и информатика на Софийския университет „Св. Климент Охридски“, като дава възможност да бъде въведена и в други научни направления и специалности.


Доцент Ангелова, защо написахте книгата „Пътят от начинаещ до експерт програмист в задачи (Част 1)“

Защото е необходимо да се види актуалното състояние на образованието по програмиране в свят, в който изкуственият интелект може да напише код за секунди? Да се отговори на въпроса трябва ли обучението да се опростява, или да се задълбочава още повече? Как подготвяме бъдещите инженери не просто за първата им работа, а за свят в постоянна промяна?

Пътят от начинаещ до експерт програмист в задачи (Част 1)“ предлага напълно нов отговор на тези въпроси. Книгата въвежда иновативна методология за обучение по информатика и компютърни науки, която балансира между фундаменталното знание и реалните нужди на индустрията, като поставя анализа, разбирането и критичното мислене в центъра на учебния процес.

Методологията се прилага пилотно в специалност „Компютърни науки“ във Факултета по математика и информатика на Софийския университет „Св. Климент Охридски“ и е разработена така, че да може да бъде адаптирана и към други специалности и научни направления.

Книгата е базирана на научен труд, който изследва влиянието на широкодостъпните генеративни чатботове върху обучението, начина на мислене и възприятията на студентите. Вместо да забранява или безкритично да използва изкуствения интелект, методологията го интегрира като инструмент за изграждане на по-дълбоки умения.

Какво включва сборникът?

Сборникът включва:

  • алгоритмични задачи с различна сложност;

  • задачи за анализ на код, включително генериран от изкуствен интелект;

  • архитектурни задания за системно мислене;

  • въпроси, подходящи за теоретични изпити и интервюта за работа;

  • подробни решения с детайлни обяснения, често срещани грешки и анализ на вътрешното представяне в паметта.

Основните задачи са реализирани на езика C++, като фокусът е върху фундаменталните концепции, а не върху конкретния език.

Това е първата книга от поредица, предназначена за курсове като „Увод в програмирането“, която изгражда стабилна основа за бъдещо развитие – независимо от използваните технологии и инструменти.

Как е организирана книгата Ви?

Образованието често е една от най-дискутираните теми сред мнозинството от хора. Трябва ли да е лесно и забавно? Дали фокусът му трябва да бъде единствено към практическите умения и работната среда, или натрупването на задълбочени познания е по-важно и ни прави по-конкурентоспособни в бъдеще?

Все интересни въпроси, които внасят допълнително объркване в разбиранията ни за образование и как да се подготвим за живота, който искаме да живеем. За мен образованието е като махало, което се люшка между двете неможещи една без друга крайности на дълбокото познание и бизнес нуждите на света. Интересното е, че светът ту залита в едната, ту в другата крайност, точно като махалото, но когато достигне до крайната си точка, се вижда, че оттам път няма и падането надолу е неизбежно.

Причината е прозаична и се корени в това, че дори да подготвиш бъдещите поколения за нуждите на бизнеса днес, без задълбочено познание на материята, те няма да бъдат подготвени за изменящата се действителност и това неминуемо ще доведе до спад на качеството и липса на гъвкави и можещи кадри. Залитането в другата крайност – на задълбочаването единствено и само в търсенето на познание и работа на теоретична и научна основа – създава поколение от действително можещи и подготвени хора, но те често не разбират света, който ги заобикаля, трудно се адаптират и не умеят да проектират бъдеще за него.

Затова винаги съм твърдяла и учила екипа и студентите си, че истината е в баланса – няма развитие и прогрес без знание и няма действително приложение на това знание без познаването на света и неговите нужди.

Също както в живота, и в програмирането човек трябва да бъде подготвен и да има множество комплексни умения, за да оцелее в тази бързо развиваща се и изключително динамична среда. Дори и една привидно очаквана промяна може да доведе след себе си неочаквани последици. Например, поради публичното пускане на генеративните чатботове, много от съвременните техники за образование и работа стават неприложими.

Повечето образователни методологии са базирани на процеси и задания, които могат да бъдат лесно заобиколени от студентите чрез използването на изкуствен интелект, без това да им предоставя реални знания и да развива техните умения. Опитите за забрана и ограничение на тяхното използване водят до постоянно „надлъгване“ между учители и студенти. Алтернативните методи, които позволяват директното използване на изкуствен интелект без предварително изградени умения, възможност за задълбочен анализ и оформен начин на мислене в тази материя, също не водят до търсения резултат.

От друга страна, умишленото усложняване на даваните от преподавателите задания, вследствие на възможността за бързо генериране на коректни решения на стандартните задачи, прави студентите без сериозен практически опит неконкурентноспособни.

В допълнение към казаното, една от целите на съвременните ИТ компании е да започнат да използват изкуствен интелект за своите проекти, като по този начин намалят броя на служителите си и ускорят процеса си на разработка.

Какви въпроси повдигат тези нови обстоятелства?

Тези промени повдигат множество въпроси като:
– Какво е бъдещето на разработката на софтуер?
– Какви ще бъдат нуждите на новия бизнес?
– Ако чатботовете с изкуствен интелект са способни да генерират достатъчно добри фрагменти от код, дори и с някои неточности, какви са следващите стъпки в софтуерната разработка и какви ще бъдат необходимите умения за всеки работещ в тази индустрия?
– Могат ли инженерите да разрешат потенциалните проблеми, ако нямат солиден опит, достатъчна основа и вече изградени знания?
– Ако бъдещите студенти не преминават през вече изградения метод на обучение, как ще се натрупват тези умения?
– Колко големи задачи може да решава изкуственият интелект и как можем да ги интегрираме в цялостни реални системи и приложения?
– Кои аспекти от работата на студентите са оригинални?
– Как трябва да се адаптира обучението на студентите в днешните програми по компютърни науки и софтуерно инженерство към новите техники, като същевременно се гарантира същото или съизмеримо качество на образование и се запази обхватът на натрупаните знания?

Върху какво се базира книгата Ви?

Книгата се базира върху чисто нова методология на обучение в областта на компютърните науки чрез средствата на изкуствения интелект, която търси отговор на поставените по-горе въпроси. Идеята и цялостният анализ зад методологията са публикувани в съответна научна статия.

В тази статия се провежда задълбочен анализ на настоящите механизми на преподаване, обхвата на знанията и всички компетенции, които всеки обучаем в тези програми трябва да притежава, за да остане конкурентоспособен. В заключение се предлага нова методология за тяхното покриване в близко и средносрочно бъдеще.

Методологията включва няколко компонента с различна тежест, които развиват различни умения и компетенции в обучаемите. Обучението следва да е стъпаловидно – започва от най-лесните и очевидни елементи и достига до сложни алгоритмични проблеми, анализ и проектиране на цялостни системи и решения. Всеки компонент, колкото и привидно лесен да изглежда, се разглежда в дълбочина, като се показват ключовите моменти, на които следва да се обърне внимание в дадено решение.

Компонентите, заложени в новата методология, са:
– базови алгоритмични задачи, обхващащи фундаменталните знания за синтаксис, добри практики и основни алгоритми;
– задачи за анализ, които развиват умения за четене, разбиране и подобряване на код, включително код, генериран от изкуствен интелект;
– архитектурни задания, насочени към проектиране на системи и работа на архитектурно ниво;
– писмени и устни изпити, които комбинират всички типове задачи и гарантират изграждане на критично мислене.

За реализацията на основните алгоритмични задачи се използва езикът C++. Самата методология не е обвързана с конкретен език и може да бъде адаптирана и към други програмни езици.

Настоящият сборник е първата от серия книги върху новата методология и е насочен към курсове като „Увод в програмирането“, като изгражда стабилна основа за надграждане на знанията.

Кои според Вас, доцент Ангелова, са трите важни неща, които са нужни, за да се използва книгата оптимално?

Задачите в сборника са разделени в различни категории според сложността:
– кръг – базова задача със стандартен алгоритъм;
– триъгълник – основна задача с допълнително изискване;
– квадрат – задача с повече компоненти, подходяща за контролни и изпити;
– петоъгълник – задача с висока сложност, подходяща за анализ и изпити.

Всяка задача е придружена с подробно обяснение на решението, използваните алгоритми и вътрешното представяне в паметта.

Съвет 1. За оптимално използване на книгата е добре да се прочетат всички задачи, независимо от нивото и опита, като се обръща внимание на детайлите, синтаксиса и добрите практики.

Книгата неслучайно започва с дефиниране на променливи и константи, тъй като това е сред най-често допусканите грешки при типизирани езици. Използването на конструкции от по-високо ниво често прикрива реалното поведение на програмата в паметта.

Съвет 2. Не търсете по-лесни алтернативни конструкции. Целта е изграждане на умения за анализ и разбиране на процесите зад кода.

Обучението следва да се реализира на стъпки, като всяка следваща задача надгражда предходните. За по-лесна ориентация книгата използва ключове, които показват кои вече решени задачи могат да бъдат използвани отново.

Съвет 3. Обръщайте внимание на ключовете, четете внимателно условията и мислете как задачата може да бъде разделена на логически независими части. Това често разкрива алгоритъма за решението.

Нора Ангелова е доцент от Факултета по математика и информатика (ФМИ) на Софийския университет „Св. Климент Охридски“.

Родена е в гр. Стара Загора и завършва Природоматематическа гимназия „Гео Милев“ през 2008 година. От 2008 до 2012 година учи в специалност „Информатика“ във ФМИ на Софийския университет „Св. Климент Охридски“. Година по-късно се дипломира със златен медал в магистърска програма „Електронен бизнес и електронно управление“. Паралелно със своето обучение тя започва преподавателска дейност в същия факултет, докато е още втори курс в университета. След своята бакалавърска степен тя започва работа в една от най-добрите български софтуерни компании . От 2014 година започва докторантура в Института по биофизика и биомедицинско инженерство в Българската академия на науките, където три години по-късно успешно защитава своя дисертационен труд „Програмна реализация на обобщени мрежи и приложения за моделиране“. В същата година, на 27-годишна възраст, тя печели конкурс за главен асистент във ФМИ, а три години по-късно – и конкурс за академичната длъжност доцент. Нора Ангелова е автор на 57 научни публикации, публикувани в български и световни научни списания. Извън академичната си кариера в момента тя изпълнява ролята на експерт системен инженер и участва в групи по подбор и обучение на кадри. Работила е с над 10 корпорации и множество по-малки клиенти от целия свят.

Доц. Нора Ангелова сподели за Долап.бг, че с удоволствие ще се отзове на покана за среща с ученици и учители от родния си град. Телефонът за контакти е в Редакцията на Долап.бг.

Въпросите постави Росица Ранчева