CSCB109 Програмиране
Анотация:
Курсът е практическо въведение в езиците С и С++, като чрез анализ и разширяване на примерни програмни текстове се изясняват основните езикови конструкции и тяхната употреба. Синтаксисът на езика С е в основата на много от съвременните обектно ориентирани езици за програмиране: С++, Java, С#, Objective C. Обектно-ориентираните езици за програмиране са основно средство за изграждане на големи и сложни софтуерни проекти. Понятието за клас се въвежда чрез идеята за дефиниран от програмиста тип, капсулиращ данни и функции. Наследяването се разглежда като контролирано средство за разширяване на съществуващи класове. Полиморфизмът се изяснява чрез примери за обработка на колекции от разнотипни обекти. Представени са и характерни особености на езика С++: функции и класове-шаблони, стандартни библиотеки и др.
Преподавател(и):
доц. Станислав Иванов д-р
гл. ас. Марияна Райкова д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) знаят:
• Структури за управление в езика С;
• Стандартни типове и класове в езиците С и С++;
• Стандартни библиотеки в езиците С и С++;
• Спецификатори за достъп, конструктори и деструктори;
• Наследяване и полиморфизъм чрез виртуални функции;
• Предефиниране на функции и операции;
2) могат:
• Да използват интегрирана среда за разработка на програма;
• Да съставят функции и класове;
• Да съставят програми за конзолни приложения.
Предварителни изисквания:
Студентите да имат знания и/или умения:
• стартиране на компютърно приложение;
• работа с текстов редактор;
• достъп до ресурси в Интернет
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
1. Разработка на програма. Компоненти на програмния текст. Лексеми. Служебни думи. Литерали. Променливи. Оператори.
2. Стандартни типове. Изрази. Преобразуване на типа. Логически и побитови операции.
3. Структури за управление. Графично представяне. Условен оператор. Цикли. Оператори break и for. Избор на вариант
4. Указатели. Масиви. Многомерни масиви. Инициализация на масиви. Масиви в динамично отредена памет.
5. Функции. Формални параметри и връщан резултат. Извикване и изпълнение на функция. Предаване на параметри по стойност и по адрес. Рекурсивни функции. Функция като параметър на функция. Предефиниране на функция.
6. Структура. Клас. Капсулиране, спецификатори за достъп. Инициализация, конструктори. Съществуване на обектите, деструктори. Обекти – присвояване, използване като параметри.
7. Предефиниране на конструктори. Копиращ конструктор. Предефиниране на операции. Копиращо присвояване. Предефиниране на операции като глобални функции.
8. Статични членове на клас. Агрегиране. Наследяване. Припокриване на функции в наследяващия клас. Виртуални функции. Полиморфизъм. Чисто виртуални функции и абстрактни класове. Виртуални деструктори.
9. Изключения и обработка на изключения. Собствени класове за изключения.
10. Типът като параметър. Функции-шаблони и класове-шаблони. Стандарнти библиотеки от шаблони. Символни низове в С++. Вектори.
Литература по темите:
1. Шилдт Х., Практически самоучител по С++, Софтпрес, 2001
2. Шилдт Х., Практически самоучител по С++, Софтпрес, 20012.
3. Eckel B., Thinking in C++, 2nd edition, v.1,v2, http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
Средства за оценяване:
Две контролни работи през 7-ма и 14- та седмица от семестъра