Програма на курса по програмиране за напреднали
Водещ: Валери Дачев, ДАВИД Холдинг АД
Целта на курса е да въведе участниците във фундаментите на съвременното приложно програмиране, предполагайки че те имат базови познания в областта на софтуерната разработка. Краткият период на провеждане на курса няма да позволи пълно запознаване със съответните области и затова целта е на участниците да бъде даден добър старт в областта и възможност сами да определят своята насоченост. Курсът ще се провежда паралелно на четири съвременни езика за програмиране (PHP, Java, C# и Delphi), три системи за управление на бази данни (MySQL, Microsoft SQL Server и InterBase) и съответните среди за разработка на приложенията (Zend Studio, NetBeans, Microsoft Visual Studio, Borland Delphi и т.н.). Общата продължителност на курса се предвижда да бъде 80 часа, които при нужда ще бъдат увеличени.
Следва програмата на самия курс:
- Основи на XML.
(с неоценимата помощ на текстови редактори)- Що е то XML (eXtensible Markup Language);
(и защо XML ще замени есперанто) - Що е то XSLT (eXtensible Stylesheet Language for Transformations)?
(или въведение в езиковите преводи) - Що е то XSD (XML Specification Definition) ?
(или да обясним XML говорейки XML) - Приложение: Персистенция. Interoperability. Web услуги.
(или защо си губим времето с XML)
- Що е то XML (eXtensible Markup Language);
- Работа с бази данни.
(в главните роли MySQL, Microsoft SQL Server, InterBase... и ще споменем останалото)- Основи на базите данни. Видове бази данни;
(и по какво се различават от бозите данни) - Архитектура на Системите за Управление на Бази данни (СУБД);
(или нервите на коя част от нервната ни система са ни спестили) - Организация на СУБД;
(или първи опит да се загубим в термини) - DDL, DCL и DML в едно - Structured Query Language (SQL).
(неочаквана добра комбинация - да научим английски с бази данни)
- Основи на базите данни. Видове бази данни;
- Основи на обектното програмиране.
(с елементи на PHP, Java, C# и Delphi... и каквото още попадне)- Абстракция на данните. Класове и обекти. Видимост.
(или какво ще сънуваме от тук нататък) - Наследяване. Композиция.
(или Слънчевата система през погледа на програмиста) - Override и Overload;
(или как да се загубим в собствения си код) - Абстрактни класове. Интерфейси.
(или с какво се занимават софтуерните архитекти) - Полиморфизъм;
(и защо аджеба се занимават софтуерните архитекти) - Обработка на грешки. Работа с изключения.
(и още - как да оставим днешната работа за утре)
- Абстракция на данните. Класове и обекти. Видимост.
- Видове приложения. Особености.
(или начини за задоволяване на клиента)- Desktop приложения:
(или какво стои зад цъкането с мишката)- Предимства и недостатъци;
- Форми и компоненти;
- Събития;
- Що са те нишките?
- Web приложения:
(или какво НЕ правят web дизайнерите)- Особености и ограничения на HTTP протокола;
- Основи на (X)HTML;
- Що е то postback ?
- Запазване и предаване на състоянието;
- Контроли.
- Web услуги:
(или как да си говорим с останалия свят)- Особености и изисквания. Приложение;
- Спецификации на услугите;
- Прилики и разлики с web приложенията.
- Desktop приложения:
- Практики в разработката.
(или религиозните войните между разработчиците)- Трислойна архитектура на решенията;
(или принципът „Разделяй и владей”) - Бележки по освобождаването на паметта;
(или кой ще ни чисти бъкиите) - Наследяване, композиция или имплементация;
(или как да си вържем гащите) - Отличителни белези на лошия код. Примери;
(или „Опознай врага... за да го обикнеш”) - Що е то UML и кой го ползва?
(и защо няма да го ползваме ние)
- Трислойна архитектура на решенията;
- Разработка на софтуерно решение.
(Putting it all together... или повече действие, по-малко приказки)- Формулиране на основните изисквания;
(или симулация на преговори с клиент – тест за издръжливост) - Базова архитектура на решението. Интерфейси за работа;
(или увод в строителството) - План и разпределение на работата;
(или защо трябва да започнем от мазето) - Дизайн на базите от данни;
(или как да си подредим гардероба) - Дизайн на базовите класове и основната библиотека;
(или как се излива бетонна плоча) - Имплементация;
(известна още като "черната работа") - Тестване на проекта и изчистване на грешки.
(или отработване на фразата "Роди ме, мамо, тъпа, аз сама ще се изруся.")
- Формулиране на основните изисквания;
- Окончание.
(или кратко въведение в алкохолизма на програмистите)