Връщане към Курс по програмиране за напреднали (2007)

Програма на курса по програмиране за напреднали (2007)

Водещ: Валери Дачев, ДАВИД Холдинг АД

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

Курсът ще се провежда паралелно на четири съвременни езика за програмиране (PHP, Java, C# и Delphi), три системи за управление на бази данни (MySQL, Microsoft SQL Server и InterBase) и съответните среди за разработка на приложенията (Zend Studio, NetBeans, Microsoft Visual Studio, Borland Delphi и т.н.).

Общата продължителност на курса е 80 часа, които при нужда ще бъдат увеличени.

Следва програмата на самия курс:

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

Постоянен линк към тази тема: https://acad.david.bg/kursove/2007-kurs-po-programirane-za-naprednali/programa/