Курс «Інформатика і програмування»
Анотація
Метою викладання навчальної дисципліни «Інформатика та програмування» є формування у студентів практичних навичок у розробці алгоритмів та програмуванні за допомогою мови програмування високого рівня C/C++.
План курсу
- Етапи розв’язання задачі на ПК. Мови програмування. Транслятори, компілятори та інтегроване середовище розробки програми.
- Базові структури алгоритму. Основний принцип структурного проектування.
- Методи складання алгоритмів. Покрокова деталізація, проектування зверху–вниз та знизу–вгору.
- Структура програми та етапи її обробки. Заголовні файли. Специфікація програми. Правила «гарного стилю» в програмуванні.
- Системи числення. Двійкова арифметика.
- Класифікація типів даних. Машинне представлення простих типів.
- Введення та виведення даних за допомогою бібліотеки stdio.
- Операції мови. Пріоритети операцій, правила використання.
- Оператори розгалуження та циклів. Типи циклів та принципи їх застосування.
- Поняття масиву. Робота зі статичними масивами.
- Прості алгоритми пошуку і сортування.
- Функції. Опис, визначення, виклик. Формальні та фактичні параметри.
- Глобальні і локальні змінні. Принцип локалізації.
- Рядки. Операції з рядками.
- Робота з файлами. Текстові і бінарні файли
- Використання переліків, структур і об’єднань.
- ППоняття вказівника. Операції отримання адреси та разіменування. Динамічні змінні. Передавання параметрів за адресою.
- Вказівник на функцію. Функціональний тип. Функція, як параметр. Масиви функцій.
- Динамічні масиви.
- Зв’язані структури даних: односпрямовані списки, стеки, черги.
- Двоспрямовані списки, бінарні дерева.
- Поняття абстрактного типу даних (АТД). Класифікація АТД. Зв'язок з поняттями «структура даних», «тип даних».
- Рекурсія. Рекурсивні алгоритми.
- Дерева пошуку: формування, операції.
- Удосконалені методи сортування: алгоритм Шелла, пірамідальне сортування.
- Удосконалені методи сортування: швидке сортування, оцінка складності.
- Порівняння мов С та С++: декларації, операції виділення та визволення пам’яті, приведення типів.
- Використання модифікатора const. const і вказівник. Посилання. Засоби їх використання. Ініціалізація посилання. Тип const T &. Перевантажені функції.
- Структурний та об’єктно–орієнтований (ОО) підходи у програмуванні. Спільне та різниця. Базові елементи ОО підходу.
- Початкові поняття про потоки вводу/виводу С++. Порівняння з вводом / виводом за допомогою функцій стандартної бібліотеки stdio мови С.
- Поняття класу. Протокол класу. Об’єкт класу Дані–члени, функції–члени. Статичні члени класу.
- Приватні, захищені, відкриті члени класу. Конструктор, деструктор, функції–селектори, модифікатори, помічники. Конструктор копії. Вказівники та посилання на класи.
- Спадкування, його види. Перевизначення методів у похідних класах.
- Поняття поліморфізму. Раннє та пізнє зв’язування. Віртуальні функції.
- Чисто віртуальні функції. Поняття абстрактного класу. Віртуальні деструктори.
- Друзі класу. Правила визначення та методи використання. Подружні класи, та функції.
- Перевантаження операторів. Правила реалізації. Вибір між оператором–членом та оператором–помічником. Перетворення типів та змішані операції.
- Перевантаження операторів =, [ ], ( ), (<<, >>, ++, – – постфіксного і префіксного).
- Шаблонні функції. Шаблонні класи. Інстанціювання. Спеціалізація. Перевантаження шаблонних функцій.
- Потоки вводу – виводу С++. Аналіз та управління станом потоку. Введення на рівні символів та рядків.
- Форматування виведення. Організація двійкових потоків в С++.
- Виключення. Обробка виключень. Проблема завершення при обробці виключень, використання auto_ptr.
- Бібліотека STL. Послідовні контейнери. Реалізація та засоби використання.
- Асоціативні контейнери. Призначення, реалізація, засоби використання.
Література
- Иевлев И.И. Краткий справочник по языку программирования С++. Методические указания для студентов I – IV курсов – Харьков. – 2003. – 53 с.
- 2. Б. Керниган , Д. Ритчи Язык программирования Си. – М.: Финансы и статистика. - 1992.
- Р. Хэзфилд, К. Лоуренс и др. Искусство программирования на С. – К.: «ДиаСофт». - 2001.
- С. Прата. Язык программирования С. Лекции и упражнения . – К: ДиаСофт – 2002
- Г. Шилдт. Полный справочник по С. – М.: Издательский дом «Вильямс». – 2004.
- Н. Вирт. Алгортитмы + структуры данных = программы. – М.: Мир. - 1985.
- Дональд Э. Кнут Искусство программирования, т. 3, Сортировка и поиск.– М.: Издательский дом Вильямс. – 2004.
- Б. Строустрап. Язык программирования С++. – М.: Бином. – 1999.
- С. Прата. Язык программирования С++. Лекции иупражнения. – СПб.: ДиаСофт. – 2003
- С. Майерс. Эффективное использование С++. - М.: ДМК. – 2000.
- Л. Аммерааль. STL для программистов на С++. - М.: ДМК. – 1999.
|