Освітньо-професійної програми спеціальності „070201 Радіофізика І електроніка Затверджено на засіданні кафедри Протокол №6 від 16 травня 2008 року

Вид материалаДокументы

Содержание


Робоча навчальна програма з дисципліни «Об’єктно-орієнтоване програмування»
Єфіменко С.В.
Прощенко Т.М.
Об’єктно-орієнтоване програмування
Метою вивчення нормативної дисципліни
Предмет навчальної дисципліни
Місце в структурно-логічній схемі спеціальності.
Контроль знань
Другий семестр
5 балів кожна; за затверджений звіт – кількість балів
Терміни проведення модульних контролів
Тематичний план лекцій та лабораторних занять
ЗМ1: Основні конструкції мов програмування С та С++.
ЗМ2: Розширені можливості мов С та С++.
ЗМ3: Реалізація принципів об’єктно-орієнтованого програмування в мові С++.
Подобный материал:

Київський національний університет
імені. Тараса Шевченка



Радіофізичний факультет


Кафедра математики та теоретичної радіофізики


Укладач: доцент Єфіменко С.В


ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ




РОБОЧА НАВЧАЛЬНА ПРОГРАМА ДИСЦИПЛІНИ


освітньо-професійної програми спеціальності

„070201 Радіофізика і електроніка”


Затверджено

на засіданні кафедри

Протокол № 6 від 16 травня 2008 року


Зав. кафедри _____________ Висоцький В.І.


Декан факультету ______________ Анісімов І. О.


КИЇВ – 2008

Робоча навчальна програма з дисципліни «Об’єктно-орієнтоване програмування»


Укладач: канд. фіз.-мат. наук, доцент Єфіменко С.В.


Лектор: канд. фіз.-мат. наук, доцент Єфіменко С.В.


Викладачі: канд. фіз.-мат. наук, доцент Єфіменко С.В.,

канд. фіз.-мат. наук, доцент Юштін В.О.,

канд. фіз.-мат. наук, доцент Прощенко Т.М.

асистент Масютка О.Ю.

асистент Іваненко Д.О.


Погоджено

з науково-методичною комісією

«____» ______________ 200__р.


___________________________

Обуховський В.В.


Методичні рекомендації по вивченню дисципліни

ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ


Дисципліна «Об’єктно-орієнтоване програмування» є базовою нормативною дисципліною для спеціальності «радіофізика», яка викладається у II семестрі в обсязі 3 кредити (за Європейською Кредитно-Трансферною Системою ECTS), в тому числі 51 годин аудиторних занять. З них 34 годин лекцій, 17 годин лабораторних занять та 57 годин самостійної роботи. Підсумковий контроль – екзамен.

Метою вивчення нормативної дисципліни «Об’єктно-орієнтоване програмування» є ознайомлення студентів з основними принципами технології ООП та оволодіння ними основами мов програмування С та С++, методами проектування та створення програм згідно сучасних технологій програмування. Курс «Основи програмування» є базовою дисципліною для подальшого вивчення та вдосконалення на старших курсах.

Предмет навчальної дисципліни «Об’єктно-орієнтоване програмування» включає:
  • вивчення базового синтаксису та основних елементів мови С;
  • вивчення основ ООП (об’єктно-орієнтованого програмування);
  • оволодіння основами мови С++;
  • проектування ієрархії класів для поставленої задачі.

Вимоги до знань та вмінь.

Знати: правила побудови і основні елементи програми мовою С, основні принципи ООП, правила визначення класів в мові С++.

Вміти: побудувати алгоритм розв’язку задачі, порівняти різні алгоритми і обрати найбільш ефективний для даної задачі, запрограмувати обраний алгоритм, налагодити та протестувати програму, визначити ієрархію класів та реалізувати її.

Місце в структурно-логічній схемі спеціальності. Нормативна навчальна дисципліна «Об’єктно-орієнтоване програмування» є складовою циклу професійної підготовки фахівців освітньо-кваліфікаційного рівня „бакалавр”, є базовою для вивчення нормативної дисципліни „Чисельні методи”, спеціальних дисциплін „Мікропроцесорна техніка”, „ЕОМ-експеримент”, „Програмне конструювання”, „Комп’ютерна обробка медичних зображень”, „Комп’ютерний експеримент”, „Комп’ютерне моделювання”, „Сучасні пакети прикладних програм”, „Телекомунікаційні технології”, „Комп’ютерна обробка інформації”.


Контроль знань


Контроль здійснюється за модульно-рейтинговою системою. Підсумкова оцінка розраховується за накопичувальною системою. При цьому максимальна кількість балів встановлюється наступним чином:


Другий семестр

Змістовний модуль 1

Змістовний модуль 2

Змістовний модуль3

Комплексний підсумковий модуль (екзамен)

Підсумкова оцінка за семестр

Максимальна кількість балів

15

20

25

40

100



При цьому, кількість балів відповідає оцінці:

1-34 – «незадовільно» з обов’язковим повторним вивченням дисципліни;

35-59 – «незадовільно» з можливістю повторного складання;

60-64 – «задовільно» («достатньо») ;

65-74 – «задовільно»;

75 - 84 – «добре»;

85 - 89 – «добре» («дуже добре»);

90 - 100 – «відмінно».

Шкала відповідності


За 100-бальною шкалою

Оцінка за національною шкалою

90 – 100

5

відмінно

85 – 89

4

добре

75 – 84

65 – 74

3

задовільно

60 – 64

35 – 59

2

незадовільно

1 – 34



У курсі заплановано виконання певної кількості лабораторних робіт різної складності, а саме:

лабораторна робота №1 (вивчення найпростіших операцій мови С) – до 4 балів;

лабораторна робота №2 (вивчення основних конструкцій мов С та С++ – розгалуження та цикли) – до 6 балів;

лабораторна робота №3 (використання бітових операцій) – до 6 балів;

лабораторна робота №4 (робота з структурованими типами мов С та С++ – масиви) – до 8 балів;

лабораторна робота №5 (робота із структурами, файлами, потоками) – до 8 балів;

лабораторна робота №6 (вивчення властивостей класів) – до 8 балів;

лабораторна робота №7 (побудова і створення об’єктно-орієнтованого проекту) – до 10 балів;

Всього в сумі до 50 балів.

Оцінка за виконану лабораторну роботу підвищується порівняно з мінімальною за рахунок додаткових балів, які можуть бути нараховані за:

- оригінальний алгоритм або проект, що підвищує ефективність програми;

- використання відомостей, самостійно набутих студентом з додаткових джерел;

- само документованість програми, «хороший» стиль програмування.

У кожному змістовному модуль враховуються також наступні складові:
  • контрольна робота (на семестр 2 контрольні роботи) – по 5 балів кожна;
  • за затверджений звіт – кількість балів дорівнює «вартості» лабораторної роботи (зараховуються у комплексний підсумковий модуль).

Студенти, які не виконали план лабораторних робіт, мають оцінку 0 балів за відповідний змістовний модуль.

Студентам, які достроково виконали план лабораторних робіт першого змістовного модуля, відповідна надлишкова кількість балів (тобто, кількість, яка перевищує 15 балів) зараховується до другого змістовного модуля і так далі.

Терміни проведення модульних контролів:

1 модульний контроль – до 26 березня 2009 року;

2 модульний контроль – до 30 квітня 2009 року;

3 модульний контроль – до 1 червня 2009 року;

Тематичний план лекцій та лабораторних занять


Другий семестр


Мова С та об’єктно-орієнтована мова програмування С++


Номер

лекції

Назва лекції

Кількість годин

лекції

лабораторні

СРС

Контро-льно модульна робота

Інші форми контролю


ЗМ1: Основні конструкції мов програмування С та С++.


1

Основні елементи мови С/C++.

2

1

2







2

Основні керуючі конструкції мови С/C++ (розгалуження та цикли).

2

2

4







3

Адресація, вказівники та масиви в мові С/C++.

2



6







4

Введення та виведення інформації в С/C++.

2

1

2







5

Функції в мовах С/C++.

2

2

4







6

Функції в мовах С/C++ (продовження).

2



4










Модульна контрольна робота №1










1





ЗМ2: Розширені можливості мов С та С++.



7

Структури та об’єднання в мовах С/C++.

2

1

2







8

Робота з файлами в мовах С/C++.

2

1

4







9

Основи об’єктно-орієнтованого програмуван-ня, деякі особливості мови С++.

2

2

4







10-11

Функції в мові С++ - вбудовані функції, перезавантаження функцій, аргументи за замовчуванням.

4

2

6










Модульна контрольна робота №2










1





ЗМ3: Реалізація принципів об’єктно-орієнтованого програмування в мові С++.



12

Класи в мові С++.

2

1

4







13

Конструктори та деструктор класу

2

1

2







14

Спадкування, віртуальні функції, поліморфізм.

2

1

4







15

Перезавантаження операторів класу.

2

1

4







16

Шаблони функцій та класів.

2

1

2







17

Бібліотеки класів та шаблонів.

2



4










ВСЬОГО

34

17

58

2





Докладний план лекцій та лабораторних занять


Змістовний модуль 1: Основні конструкції мов програмування С та С++

ЛЕКЦІЯ 1. (2 години)

Основні елементи мови С/C++, типи даних, операції, пріоритет операцій.

ЛЕКЦІЯ 2. (2 години)

Основні керуючі конструкції мови С/C++ (розгалуження та цикли). Приклади і фрагменти програм.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 1. (2 години)
  1. Правила техніки безпеки в комп’ютерному класі, вивчення середовища та можливостей компілятора С/C++.
  2. Виконання лабораторної роботи №1 – вивчення найпростіших операцій мови С.


ЛЕКЦІЯ 3. (2 години)

Адресація, вказівники та масиви в мові С/C++. Адресна арифметика. Доступ до елементів масиву. Багатовимірні масиви.

ЛЕКЦІЯ 4. (2 години)

Введення та виведення інформації в С/C++: форматовані введення та вивід інформації в С; потокові операції в С++.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 2. (2 години)
  1. Використання стандартних функцій введення-виведення в мові С та потокових операцій мови С++.
  2. Виконання лабораторної роботи №2 – вивчення найпростіших операцій мови С.


ЛЕКЦІЯ 5. (2 години)

Функції в мовах С/C++. Декларація та визначення функції, параметри функцій та їх особливості.

ЛЕКЦІЯ 6. (2 години)

Функції в мовах С/C++ (продовження). Область видимості та класи пам’яті змінних та функцій.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 3. (2 години)
  1. Використання функцій для роботи з бітами.
  2. Виконання лабораторної роботи №3 – вивчення бітових операцій.


Контрольні запитання.
  1. Назвіть основні типи даних та операції мови С.
  2. Вкажіть основні керуючі конструкції мови.
  3. Поясніть різницю у виконанні циклів while … та do … while.
  4. Поясніть зв'язок вказівників та масивів в мові С.
  5. Поясніть, що таке форматоване введення та виведення інформації.
  6. Поясніть особливості передачі параметрів функцій мови С.
  7. Вкажіть основні класи пам’яті мови С.
  8. Поясніть, що таке область видимості ідентифікатора.

Самостійна робота студентів.

Постійними завданнями для самостійної роботи є:
  • робота над лекційним матеріалом з конспектом та рекомендованою літературою;
  • підготовка до лабораторних занять;
  • виконання домашніх завдань;
  • опрацювання частини лекційного матеріалу, винесеного на самостійне вивчення.

Література: [8, 9, 10, 15, 17]

Модульний контроль1


Змістовний модуль 2: Розширені можливості мов С та С++.

ЛЕКЦІЯ 7. (2 години)

Структури та об’єднання в мовах С/C++. Структури як параметри та результат функцій.

ЛЕКЦІЯ 8. (2 години)

Робота з файлами в мовах С/C++. Функції для роботи з файлами. Файли прямого доступу.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 4. (2 години)
  1. Особливості передачі масивів як аргументів функцій.
  2. Виконання лабораторної роботи №4 – робота із масивами.


ЛЕКЦІЯ 9. (2 години)

Основи об’єктно-орієнтованого програмування, деякі особливості мови С++.

Основні принципи технології ООП.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 5. (2 години)
  1. Виконання лабораторної роботи №5 – робота із структурами, файлами, потоками.


ЛЕКЦІЯ 10-11. (4 години)

Функції в мові С++ - вбудовані функції, перезавантаження функцій, аргументи функцій за замовчуванням.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 6. (2 години)
  1. Виконання лабораторної роботи №6 – вивчення властивостей класів.


Модульний контроль2

Контрольні запитання.
  1. Поясніть, що таке структура та об’єднання в мові С.
  2. Поясніть особливості використання файлів в мові С.
  3. Назвіть основні засади об’єктно-орієнтованого програмування..
  4. Що означає термін «перезавантаження» функцій?

Самостійна робота студентів.

Постійними завданнями для самостійної роботи є:
  • робота над лекційним матеріалом з конспектом та рекомендованою літературою;
  • підготовка до лабораторних занять;
  • виконання домашніх завдань;
  • опрацювання частини лекційного матеріалу, винесеного на самостійне вивчення, а саме:
  1. Динамічні структури даних. [9] 71-94
  2. Побудова графічних зображень. [17]

Література: [9, 10, 17, 19]


Змістовний модуль 3: Реалізація принципів об’єктно-орієнтованого програмування в мові С++.

ЛЕКЦІЯ 12. (2 години)

Класи в мові С++. Члени класу – дані та функції, права доступу до членів класу. Приклади визначення класів.

ЛЕКЦІЯ 13. (2 години)

Конструктори та деструктор класу. Робота їх при створенні та знищенні екземплярів класу. Перезавантаження конструкторів.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 7. (2 години)
  1. Продовження виконання лабораторної роботи №6 – вивчення властивостей класів.
  2. Виконання лабораторної роботи № 7 – побудова і створення об’єктно-орієнтованого проекту.


ЛЕКЦІЯ 14. (2 години)

Спадкування, базові та похідні класи. Віртуальні функції, поліморфізм.

ЛЕКЦІЯ 15. (2 години)

Перезавантаження операторів класу. Правила для бінарних та унарних операцій.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 8. (2 години)
  1. Виконання лабораторної роботи № 7 – побудова і створення об’єктно-орієнтованого проекту.


ЛЕКЦІЯ 16. (2 години)

Шаблони функцій та класів. Створення та використання шаблонів.

ЛЕКЦІЯ 17. (1 година)

Бібліотеки класів та шаблонів. Стандартні бібліотеки. Контейнерні класи.

ЛАБОРАТОРНЕ ЗАНЯТТЯ 9. (1 година)

Підведення підсумків, затвердження звітів.


Контрольні запитання.
  1. Поясніть, що таке клас в мові С++.
  2. Що таке конструктор та деструктор класу в мові С++?
  3. Що таке базовий та похідний класи?
  4. Що таке шаблон?

Самостійна робота студентів.

Постійними завданнями для самостійної роботи є:
  • робота над лекційним матеріалом з конспектом та рекомендованою літературою;
  • підготовка до лабораторних занять;
  • виконання домашніх завдань;
  • опрацювання частини лекційного матеріалу, винесеного на самостійне вивчення, а саме:
  1. Множинне спадкування. [8] 871-920

Література: [9, 10, 17, 19]


Підсумковий контрольіспит.


Перелік рекомендованої літератури

Основна:
  1. В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова. Введение в язык паскаль. - М.: "Наука", 1988 г.
  2. А Ставровский. Турбо Паскаль 7.0. Учебник. – К.:BHV, 2000
  3. Ю.С. Бородич и др. Паскаль для персональных компьютеров: Справочное пособие. – Минск:В. Школа, 1991
  4. Т.П. Караванова. Основи алгоритмізації та програмування. 750 задач з рекомендаціями та прикладами. – К.: Форум, 2002.
  5. В. Семотюк. Програмування у середовищі Турбо Паскаль. Львів: Бак, 2000.
  6. Н. Вирт Алгоритмы и структуры данных: - М.: Мир, 1989
  7. В.О.Грязнова, С.В. Єфіменко. Основи методології програмування. - К.: ВПЦ "Київський університет", 2005 р.
  8. С.В. Єфіменко, О.В. Сугакова. Програмування: мови С і С++. - К.: ВПЦ "Київський університет", 2006 р.
  9. Б. Керниган, Д.Ритчи. Язык программирования С (Любое издание)
  10. Б. Страуструп Язык программирования С++. – СПб.; М.: «Невский диалект» – «Изд-во Бином», 1999
  11. С.Б. Липпман, Ж. Лажойе. Язык программирования С++. Вводный курс – СПб.; М.: «Невский диалект» – ДМК Пресс, 2001
  12. Б. Керниган, Р. Пайк. Практика программирования – СПб.; М.: «Невский диалект» , 2001

Додаткова:
  1. 1. Н. Культин. С/С++ в задачах и примерах. – СПб.:БХВ-Петербург
  2. К. Тондо, С. Гимпел. Язык Си. Книга ответов. – М.:Финансы и статистика, 1994
  3. Д. Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. – М.:Мир, 1985
  4. А. И. Голуб С & С++. Правила программирования. – М.:Бином, 1996
  5. Г.С.Иванова. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 416 с.
  6. Г.С. Иванова. Технология программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 320 с.
  7. А.Шень. Программирование: теоремы и задачи. – М.:МЦНМО, 2004
  8. Л. Аммерал. Программирование графики на Турбо Си. – М.:Сол Систем, 1992