CITB107 Програмиране
Анотация:
Курсът се състои от 30 часа лекции и 30 часа упражнения.
Изучават се основите на програмирането. Като инструмент се използва програмния език C++.
http://nikolay.kirov.be/2023/CITB107/index.html
Преподавател(и):
доц. Николай Киров д-р
доц. Ласко Ласков д-р
Кирил Вучков
ас. Георги Кирков
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) знаят:
• Числени типове данни, входни и изходни операции, оператор за присвояване, символни низове, основи на управление на програмния поток, оператори, функции и процедури, обхват на променлива, глобални променливи, постъпково усъвършенстване, тестване и откриване на грешки, използване на низове, вектори и класове, масиви и указатели.
2) могат:
• Да пишат прости програми на C++.
• Да пишат функции и прости класове.
• Да използват низове, вектори и класове.
• Да работят с масиви и указатели.
Предварителни изисквания:
Основни компютърни умения.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Увод Анатомия на компютър. Компилиране. Програмни езици С и С++. Компилиране на проста програма. Грешки. Алгоритми.
- Основни типове данни Числени типове; вход и изход; константи; низове; форматиране на изхода.
- Обекти Конструиране на обекти; използване на обекти; обекти от реалния свят
- Основни управляващи оператори Оператор if и if/else; оператори за сравнение; проверка на входа; прости цикли; обработка на входна редица; използване на булеви променливи
- Функции Функциите като черни кутии; писане на функции; коментари; връщани стойности; параматри; странични ефекти; процедури. Параметри-псевдоними; област на действие на променливи; глобални променливи; стъпково прецизиране; от псевдокод към код.
- Класове Откриване на класове; интерфейс; капсулиране; член-функции; конструктори по подразбиране и с параметри; достъп да членове-данни; сравняване на член-функции с обикновени функции.
- Управляващи оператори Няколко алтернативи; вложени клонове; булеви операции; закони на DeMorgan. Цикли for и do; вложени цикли; обработка на текстов вход; симулации.
- Тестване и дебъгване Единични тестове; избор на тестове; оценка на тестове; макрос assert; проследяване на програма; дебъгер.
- Вектори Използване на вектори за съхраняване на данни. Индекси. Вектори като параметри и върнати стойности. Успоредни вектори.
- Масиви Дефиниране и използване на масиви. Масиви като параметри на функции. Масиви от символи. Двумерни масиви.
- Указатели Дефиниране и стойност на указател. Динамична памет. Използване на указатели в С++. Масиви и указатели. Указатели и С-низове.
Литература по темите:
Учебник:
Cay Horstmann,Computing Concepts with C++ Essentials, Third Edition, John Wiley & Sons, 2003.
Полезни книги:
Cay S. Horstmann, Timothy A. Budd, Big C++, 2nd Edition, Wiley, January 2009.
Lasko Laskov, Progrmming in C++, Examples and Solutions, Part One: From Procedural Towards Object-Oriented Paradigm”, New Bulgarian University, 2016.
Cay S. Horstmann, C++ for Everyone, 2nd Edition, Willy, 2011.
Николай Киров, Сборник от учебни материали по ВЪВЕДЕНИЕ В ПРОГРАМИРАНЕТО, Деметра, София, 2003 [online]
Магдалина Тодорова, Увод в програмирането [online]
Магдалина Тодорова, Петър Армянов, Дафина Петкова, Калин Георгиев, Сборник от задачи по програмиране на C++ - първа част: Увод в програмирането, ТехноЛогика, 2008.
Магдалина Тодорова, Програмиране на С++. Част първа, Сиела, 2010.
Веселина Жечева, Димитър Минчев, Ръководство по програмиране на базата на езика C++, 2 изд., Божич, 2016.
Иво Дамянов, Увод в програмирането С++, ЮЗУ "Неофит Рилски", 2012.
Николай Киров,Тестове за оценка на знанията по програмиране. Научен електронен архив на НБУ, http://eprints.nbu.bg/4091/, 2019.
Средства за оценяване:
През семестъра студентите правят:
-- на лекци - 3 теста;
-- на упражнения - 2 домашни и 2 контролни.
http://nikolay.kirov.be/2023/CITB107/index.html