Курс «Інформатика і програмування»

Анотація

Метою викладання навчальної дисципліни «Інформатика та програмування» є формування у студентів практичних навичок у розробці алгоритмів та програмуванні за допомогою мови програмування високого рівня C/C++.

План курсу


    1. Етапи розв’язання задачі на ПК. Мови програмування. Транслятори, компілятори та інтегроване середовище розробки програми.
    2. Базові структури алгоритму. Основний принцип структурного проектування.
    3. Методи складання алгоритмів. Покрокова деталізація, проектування зверху–вниз та знизу–вгору.
    4. Структура програми та етапи її обробки. Заголовні файли. Специфікація програми. Правила «гарного стилю» в програмуванні.
    5. Системи числення. Двійкова арифметика.
    6. Класифікація типів даних. Машинне представлення простих типів.
    7. Введення та виведення даних за допомогою бібліотеки stdio.
    8. Операції мови. Пріоритети операцій, правила використання.
    9. Оператори розгалуження та циклів. Типи циклів та принципи їх застосування.
    10. Поняття масиву. Робота зі статичними масивами.
    11. Прості алгоритми пошуку і сортування.
    12. Функції. Опис, визначення, виклик. Формальні та фактичні параметри.
    13. Глобальні і локальні змінні. Принцип локалізації.
    14. Рядки. Операції з рядками.
    15. Робота з файлами. Текстові і бінарні файли
    16. Використання переліків, структур і об’єднань.
    17. ППоняття вказівника. Операції отримання адреси та разіменування. Динамічні змінні. Передавання параметрів за адресою.
    18. Вказівник на функцію. Функціональний тип. Функція, як параметр. Масиви функцій.
    19. Динамічні масиви.
    20. Зв’язані структури даних: односпрямовані списки, стеки, черги.
    21. Двоспрямовані списки, бінарні дерева.
    22. Поняття абстрактного типу даних (АТД). Класифікація АТД. Зв'язок з поняттями «структура даних», «тип даних».
    23. Рекурсія. Рекурсивні алгоритми.
    24. Дерева пошуку: формування, операції.
    25. Удосконалені методи сортування: алгоритм Шелла, пірамідальне сортування.
    26. Удосконалені методи сортування: швидке сортування, оцінка складності.
    27. Порівняння мов С та С++: декларації, операції виділення та визволення пам’яті, приведення типів.
    28. Використання модифікатора const. const і вказівник. Посилання. Засоби їх використання. Ініціалізація посилання. Тип const T &. Перевантажені функції.
    29. Структурний та об’єктно–орієнтований (ОО) підходи у програмуванні. Спільне та різниця. Базові елементи ОО підходу.
    30. Початкові поняття про потоки вводу/виводу С++. Порівняння з вводом / виводом за допомогою функцій стандартної бібліотеки stdio мови С.
    31. Поняття класу. Протокол класу. Об’єкт класу Дані–члени, функції–члени. Статичні члени класу.
    32. Приватні, захищені, відкриті члени класу. Конструктор, деструктор, функції–селектори, модифікатори, помічники. Конструктор копії. Вказівники та посилання на класи.
    33. Спадкування, його види. Перевизначення методів у похідних класах.
    34. Поняття поліморфізму. Раннє та пізнє зв’язування. Віртуальні функції.
    35. Чисто віртуальні функції. Поняття абстрактного класу. Віртуальні деструктори.
    36. Друзі класу. Правила визначення та методи використання. Подружні класи, та функції.
    37. Перевантаження операторів. Правила реалізації. Вибір між оператором–членом та оператором–помічником. Перетворення типів та змішані операції.
    38. Перевантаження операторів =, [ ], ( ), (<<, >>, ++, – – постфіксного і префіксного).
    39. Шаблонні функції. Шаблонні класи. Інстанціювання. Спеціалізація. Перевантаження шаблонних функцій.
    40. Потоки вводу – виводу С++. Аналіз та управління станом потоку. Введення на рівні символів та рядків.
    41. Форматування виведення. Організація двійкових потоків в С++.
    42. Виключення. Обробка виключень. Проблема завершення при обробці виключень, використання auto_ptr.
    43. Бібліотека STL. Послідовні контейнери. Реалізація та засоби використання.
    44. Асоціативні контейнери. Призначення, реалізація, засоби використання.



Література


    1. Иевлев И.И. Краткий справочник по языку программирования С++. Методические указания для студентов I – IV курсов – Харьков. – 2003. – 53 с.
    2. 2. Б. Керниган , Д. Ритчи Язык программирования Си. – М.: Финансы и статистика. - 1992.
    3. Р. Хэзфилд, К. Лоуренс и др. Искусство программирования на С. – К.: «ДиаСофт». - 2001.
    4. С. Прата. Язык программирования С. Лекции и упражнения . – К: ДиаСофт – 2002
    5. Г. Шилдт. Полный справочник по С. – М.: Издательский дом «Вильямс». – 2004.
    6. Н. Вирт. Алгортитмы + структуры данных = программы. – М.: Мир. - 1985.
    7. Дональд Э. Кнут Искусство программирования, т. 3, Сортировка и поиск.– М.: Издательский дом Вильямс. – 2004.
    8. Б. Строустрап. Язык программирования С++. – М.: Бином. – 1999.
    9. С. Прата. Язык программирования С++. Лекции иупражнения. – СПб.: ДиаСофт. – 2003
    10. С. Майерс. Эффективное использование С++. - М.: ДМК. – 2000.
    11. Л. Аммерааль. STL для программистов на С++. - М.: ДМК. – 1999.


Рейтинг@Mail.ru Rambler's Top100