Робоча навчальна програма дисципліни



Скачати 197.25 Kb.
Дата конвертації21.11.2016
Розмір197.25 Kb.


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

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

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

ОСНОВИ ПРОГРАМУВАННЯ




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


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

06.070201 “Радіофізика і електроніка”

Затверджено

Вченою Радою радіофізичного/факультету

___”_____________200__р.

Протокол № ___


КИЇВ – 2009


Робоча навчальна програма з дисципліни “Основи програмування”


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

Лектор: канд. фіз.-мат. наук, доцент Кононов М.В.
Викладачі: канд. фіз.-мат. наук, доцент Кононов М.В.,

канд. фіз.-мат. наук, доцент Іваненко Д.О.



Погоджено

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



«____» ______________ 200__р.
___________________________

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


Передмова
Дисципліна “Основи програмування” є базовою нормативною дисципліною для спеціальності “радіофізика”, яка викладається в I семестрі в обсязі 3 кредити (за Європейською Кредитно-Трансферною Системою ECTS), в тому числі 54 годин аудиторних занять. З них 36 годин лекцій, 18 годин лабораторних занять та 54 годин самостійної роботи. Підсумковий контроль – залік.
Метою вивчення нормативної дисципліни “Основи програмування” є ознайомлення студентів та оволодіння ними передовою мовою програмування С#, навичками хорошого стилю програмування, методами проектування та створення програм згідно сучасних технологій програмування. Курс “Основи програмування” є базовою дисципліною для подальшого вивчення та вдосконалення на старших курсах.
Предмет навчальної дисципліни “Основи програмування” включає:

  • вивчення основ алгоритмізації та побудови алгоритмів програм;

  • вивчення базового синтаксису та основних елементів мови С#;

  • вивчення основ ООП (об’єктно-орієнтованого програмування);

  • створення консольних застосувань;

  • створення простих Windows-застосувань.

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

Знати: основні елементи мови С# – типи даних, оператори та керуючі інструкції мови; основні принципи ООП, правила визначення класів в мові С#.

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

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


Перший семестр

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

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

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

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

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

25

35

40

100


Форми поточного контролю: оцінювання двох письмових контрольних робіт (наприкінці модулів) – 25 балів кожна.

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


Критерії оцінювання практичних завдань 1,2,5,8,9:

  • Повністю самостійне виконання завдання – 6 балів;

  • Виконання роботи з допомогою викладача – 4 бали;

  • Часткове виконання завдання – 2 бали;

  • Завдання не виконано – 0 балів.


Критерії оцінювання ускладнених (подвоєного обсягу, тобто які проводяться за два заняття) практичних завдань 3-4, 6-7:

  • Повністю самостійне виконання завдання – 12 балів;

  • Виконання роботи з допомогою викладача – 8 балів;

  • Часткове виконання завдання – 4 бали;

  • Завдання не виконано – 0 балів.

Комплексні контрольні роботи оцінюється в діапазоні від 0 до 10 балів (максимально 2 бали за кожне з 5 завдань).



Критерії оцінювання:

  • Повна відповідь – 2 бали;

  • Часткова відповідь або відповідь с помилками – 1 бал;

  • відповідь не зараховано – 0 балів

Самостійна робота студента є основним видом засвоєння навчального матеріалу у вільний від аудиторних занять час.

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

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

Перевірка рівня засвоєння матеріалу самостійно опрацьованих тем здійснюється проведенні індивідуальних консультацій та під час написання контрольних робіт. Контроль самостійної роботи студентів виконується в ракмах модульних контрольних робіт включенням у питання роботи тематики СРС. Крім того оцінювання здійснюється за накопичувальною схемою (зарахована відповідь – 0.25-0.5 бали), що дозволяє компенсувати до 5 малів за один модуль, недоотримані при проведенні модульної контрольної роботи.
Участь всіх студентів в контрольному заході обов’язкова. Студент, який з поважної причини пропустив ПМК, зобов’язаний надати відповідний документ і викладач за погодженням з деканатом призначає нову дату проведення ПМК.
Максимальна кількість балів за завдання перевищує максимальну величину модульного контролю. При отриманні надлишкового балу зайві бали відкидаються.
До підсумкового контролю допускаються студенти, які отримали не менше 25 балів.
Підсумковий контроль:

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



Критерії оцінювання залікової роботи:

  • Повна відповідь (розв’язок практичного завдання) – 15 балів;

  • Відповідь з несуттєвими недоліками – 10 балів;

  • Часткова відповідь – 5 балів.

  • Неправильна відповідь – 0 балів.

Перевищення 40 балів відкидається.


Шкала відповідності підсумкової оцінки

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

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

90 – 100

5

відмінно

85 – 89

4

добре

75 – 84

65 – 74

3

задовільно

60 – 64

35 – 59

2

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

1 – 34



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


Номер

лекції


Назва теми

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

лекції

практичні

СРС

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

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


ЗМ1: Базові поняття мови програмування.


1-2

Вступ, основи алгоритмізації

4

2

6







3-5

Загальні принципи побудови програмного забезпечення

6

2

9







6-8

Реалізація підтримки роботи з даними

6

2

9







9

Програмування у фізиці

2

2

3








ЗМ2: Особливості використання платформи .NET


10-12

Ускладнена обробка даних

6

2

9







13-17

Особливості програмування під Windows

10

4

15







18

Перспективи розвитку .NET

2

4

3










ВСЬОГО

36

18

54

2





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


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

Базові поняття мови програмування

Тема 1. Вступ, основи алгоритмізації (6 год)

Лекція 1 (2 год.) Вступ. Місце програмування у сучасному житті. З історії розвитку обчислювальної техніки. Загальна структура курсу, перерахування основних понять та розділів, їх взаємодія. Взаємодія апаратних та програмних засобів. Система команд, потреба трансляції. Основні проблеми розробки програмних засобів. Засоби розробника. Підготовка тексту, перевірка синтаксису, компіляція, відладка. Можливості і методи, які надають засоби розробника. Поняття про систему допомоги. Література [2,4].

Завдання для самостійної роботи (3 год.) Мови програмування та С#. Література [5,6]

Лекція 2 (2 год.) Основи алгоритмізації. Порівняння цифрових та аналогових систем обчислення. Необхідність дискретної обробки. Причини використання системи числення 2N. Поняття алгоритму. Лінійний алгоритм як основа програмування. Основні апаратні компоненти, потрібні для виконання лінійних алгоритмів. Галуження. Блок-схема. Основні елементи блок-схеми. Література [5,6].

Завдання для самостійної роботи (3 год.) Побудувати блок схему за завданням викладача
Практичне заняття 1 (2 год.). Правила техніки безпеки в комп’ютерному класі. Ознайомлення з засобом розробки Visual Studio на прикладі готового проекту.

Тема 2. Загальні принципи побудови програмного забезпечення (6 год)

Лекція 3 (2 год.) Алгоритм та мова програмування. Значення правильної алгоритмізації для досягнення результату. Реалізація алгоритму через мову. Базова структура довільної мови програмування. Алфавіт та синтаксис мови. Поняття змінної. Проголошення, ініціалізація та використання змінної. Дії з даними, оператори і операнди. Арифметичний вираз, оператори, присвоєння. Пріоритет операцій, зміна пріоритету. Посилання як тип. Оператор new. Консольне застосування. Поняття проекту. Утворення проекту Console Application. Література [1,5].

Завдання для самостійної роботи (3 год.) Література [1]

Лекція 4 (2 год.) Структуризація програми. Програма–файл–модуль. Інтерфейсна та виконавча частини програми. Поняття про інтегральний та модульний програмні продукти, оболонка. Співвідношення типу та екземпляру. Об’єктне програмування. Поля об’єктів та їх методи. Поняття про бібліотеку як набір взаємозв’язаних функцій або класів. Бібліотека класів C# – рівень підтримки типів, їх перетворення, математичні функції. Простір імен, його приєднання (using), використання псевдонімів. Література [2].

Завдання для самостійної роботи (3 год.) Поглиблене вивчення структури бібліотеки класів C#. Література [2].

Практичне заняття 2 (2 год.). Розробка консольного застосування за наведеним прикладом

Тема 3. Реалізація підтримки роботи з даними (6 год)
Лекція 5 (2 год.) Представлення даних у комп’ютері.. Потреби типізації. Переваги роздільного виконання цілочисельних та дійсних операцій. Причина використання даних різної довжини. Похибка обчислення. Сучасний погляд на типізацію (прості типи, масиви як набори однотипних даних, структури як набори неоднотипних даних, класи як об’єднання даних і методів). Використання констант. Явне та неявне перетворення типів. Використання класу Convert та методу ToString структури Object. Перерахування (нумератори), Статичні методи класів. Література [2].

Завдання для самостійної роботи (3 год.) Область видимості змінних при створенні класів. Література [2].

Лекція 6 (2 год.) Основи розробки проекту. Культура програмування, поняття про ефективність алгоритму. Рекомендації з відладки. Особливості застосування системи допомоги та інтерактивних підказок. Використання коду-прототипу. Культура утворення імен. Культура коментування. Культура використання типів Культура розташування тексту програми. Культура створення модульності. Резервне копіювання, версії. Особливості розробок складних проектів. Забезпечення надійності. Обробка виключень. Характерні помилки Література [2]..

Завдання для самостійної роботи (3 год.) Поглиблене вивчення обробки виключень. Література [2]

Практичне заняття 3 (2 год.). Вивчення типів мови С# та операцій з ними (початок). Цілі, дійсні, масиви
Лекція 7 (2 год.) Особливості обробки літерної інформації. Потреби обробки літерної інформації. Концепція використання співвідношення рядок/літера. Погляд на представлення літерних даних (UNICODE). Реалізація у C#. Основні операції з літерами та рядками. Література [2].

Завдання для самостійної роботи (3 год.) Підготовка до модульної контрольної роботи. Література [1,2,4].

Лекція 8 (2 год.) Галуження алгоритму. .. Обмеженість лінійного алгоритму, потреба галуження. Цикл як варіант галуження. Використання goto. Булевський тип. Логічний вираз, пріоритет логічних операцій. Бітові операції Оператори галуження if, switch. Цикли, засади їх використання, особливості реалізації у С-подібних мовах (for, while, do-while). Переривання виконання циклів. Використання нескінчених циклів. Приклади використання циклів, модифікація їх тіла (break, continue). Вкладені цикли, оптимізація виконання. Література [2,3].

Завдання для самостійної роботи (3 год.) Використання Foreach як цикл доступу до значень елементів масиву. Література [2,3].
Практичне заняття 4 (2 год.). Вивчення типів мови С# та операцій з ними (завершення) літерна інформація.
Тема 4. Робота з файлами (2 год)
Лекція 9 (2 год) Програмування у фізиці.. Зміст наближених обчислень. Особливості реалізації задач розв’язування рівнянь, інтегрування, диференціювання. Диференційні рівняння на прикладі рівняння руху. Поняття про збіжність. Переваги об’єктного програмування для моделювання.. Приклади реальних задач. Література [2].

Завдання для самостійної роботи (3 год.) Засоби форматування. Література [2]

Контрольні запитання до змістового модуля 1

  1. Чим відрізняється мова програмування від загальновживаної?

  2. Які основні типи даних підтримують сучасні мови програмування?

  3. Чи можна суміщати в арифметичному виразі різні типи?

  4. Як змінити пріоритет виконання операцій арифметичного виразу?

  5. Чи може в одному файлі бути декілька разів визначена змінна з однаковим іменем?

  6. Як перервати нескінчений цикл?

  7. Чому небезпечно виконувати цілочисельне ділення?

  8. Чи можна в тілі циклу примусово змінювати значення змінної циклу?

  9. В чому відмінність класу від екземпляру класу?

  10. Чи може у С# використовуватись глобальна функція?

  11. Що забезпечує ефективність реалізації алгоритму?

  12. В чому перевага модульної архітектури програмного засобу?

  13. В чому перевага розробки і використання бібліотек?

  14. В чому відмінність break від continue?

  15. Для чого потрібна обробка виключень?

  16. Для чого потрібне коментування тексту програми?

  17. Масиви задаються статичним чи динамічним чином?

  18. Чи можна за допомогою Foreach ініціалізувати масив?


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

Особливості використання платформи .NET
Тема 5. Ускладнена обробка даних (6 год)

Лекція 10 (2 год.) Основи використання класів. Переваги об’єктно-орієнтованого програмування. Утворення похідного класу, для чого це потрібно. Наслідування. Ініціалізація об’єкту. Конструктори, для чого вони потрібні. Деструктори. Конструкції в рамках концепції ієрархії класів. Перевизначення функцій та даних. Обмеження доступу до членів.. Використання службового слова this, base. Література [1].

Завдання для самостійної роботи (3 год.) Поглиблення вивчення роботи з файлами. Література [1].
Практичне заняття 5 (2 год.). Розв’язок простої фізичної задачі.

Лекція 11 (2 год.) Передача даних у функцію та їх повернення. Передача значення та за посиланням. Повернення простого та складного типу “скалярною” функцією. Доступність членів класів. Співвідношення формальних і фактичних параметрів. Тип функції. Повернення “скалярною” функцією “комбінованих” даних Співвідношення поля і властивості. Делегати, Інтерфейси Література [1].

Завдання для самостійної роботи (3 год.) Поглиблене вивчення статичного і динамічного виділення пам’яті. Література [1]
Лекція 12 (2 год) Ввід та вивід. Введення та виведення інформації з допомогою класу System.Console. Обробка опцій командного рядка. Поняття файлу. Для чого потрібен розподіл даних на файли. Основні етапи роботи з файлом. Бінарні та текстові файли. Особливості реалізації підтримки файлів у C#. Перекодування тексту при роботі з файлом. Довільний доступ до даних файлу. Використання методів обробки рядка при роботі з файлами. Структуризація бінарного файлу. Структуризація текстового файлу. Література [2].

Завдання для самостійної роботи (3 год.) Засоби форматування. Література [2]
Тема 6. Особливості програмування під Windows (10 год)
Практичне заняття 6 (2 год.). Використання класів (початок).
Лекція 13 (2 год.) Windows Application. Загальні принципи взаємодії програмного забезпечення. Робота в оточенні операційної системи. Поняття логічного інтерфейсу. Інтерфейси між блоками, між програмами, програма/користувач. З історії розвитку інтерфейсів. Подієорієнтованість. Структура проекту, Сучасна ідеологія візуального програмування. Форма як основа інтерфейсу користувача.параметри текстового рядка при старті процесу. Однодокументний та багатодокументний інтерфейс, діалог-подібне застосування. Література [2]. Поняття про подіє-орієнтований алгоритм

Завдання для самостійної роботи (3 год.) Поглиблення практичного використання ієрархії класів. Література [1,2].
Лекція 14 (2 год.) Елементи керування. Особливості застосування стандартних елементів керування. Культура використання. Використання зміни властивостей під час виконання Меню, панель інструментів, панель статусу. Їх використання. Використання спливаючого меню. Основні ідеї утворення зручного інтерфейсу користувача. Додавання елемента керування без використання візуального програмування (на прикладі кнопки). Література [2].

Завдання для самостійної роботи (3 год.) Поглиблене вивчення елементів керування. Література [2].
Практичне заняття 7 (2 год.). Використання класів (завершення).
Лекція 15 (2 год.) Обробники подій. Зв’язування функцій і даних з елементами керування. Обробка повідомлень. Обробка повідомлень миші та клавіатури. Використання таймеру. Література [2].

Завдання для самостійної роботи (2 год.) Підготовка до модульної контрольної роботи. Література [2]

Лекція 16 (2 год.). Використання діалогів. Модальний і немодальний режими діалогу. Передача даних у діалог і навпаки. OK/Cancel. Використання стандартних діалогів. Поняття про візард-технологію побудови інтерфейсу користувача. Література [1,2]. MKP 2

Завдання для самостійної роботи (2 год.) Використання таймеру. Література [1].

Практичне заняття 8 (2 год.). Реалізація обробника подій клавіатури.
Лекція 17 (2 год.) Література [2].

Завдання для самостійної роботи (4 год.) Підготовка до підсумкового контролю. Література [1-6].
Тема 7. Перспективи розвитку .NET (2 год)
Лекція 18 (2 год.) Підсумковий огляд концепції .NET. Потреба використання бібліотек. З історії бібліотек. Відмінності ідеології .Net. Співвідношення компіляції та інтерпретації, ідея JIT-компіляції. Використання проміжної мови, особливості MSIL. Сумісність між платформами. .NET framework. Сумісність мов програмування в рамках .NET. Сумісне використання розглянутих технологій. Приклади. Література [4,5].

Завдання для самостійної роботи (4 год.) Підготовка до підсумкового контролю. Література [1-6].

Практичне заняття 9 (2 год.). Реалізація форми введення даних.
Контрольні запитання до змістового модуля 2

  1. Чи можна утворити клас, який походить від двох?

  2. Чи може клас мати декілька конструкторів?

  3. Чи можна утворити статичний об’єкт (екземпляр класу)?

  4. В яких випадках для виклику методу як модифікатор імені методу замість імені об’єкту використовується ім’я класу?

  5. Чим текстовий файл відрізняється від бінарного?

  6. Для чого потрібні простори імен?

  7. Чому сучасні програмні засоби орієнтуються на обробку подій?

  8. Чи можуть існувати два методи з однаковою сигнатурою?

  9. Що таке клас в мові С#?

  10. Чи можна перехопити подію від третьої кнопки миші?

  11. В чому відмінність однодокументного інтерфейсу від багатодокументного?

  12. Чи можна реалізувати невидиму форму?

  13. Чи можна запускати .NET програму під Linux?

  14. Що таке перезавантажені методи класу?

  15. Для чого потрібен деструктор?

  16. Чи можна утворити масив екземплярів класу?

  17. Чим обмежується мінімальній час виклику таймеру?

  18. Чим можна змінити напис на кнопці під час виконання?



Запитання, що виносяться на підсумковий контроль




  1. Процес розробки програмного забезпечення, його мета, головні етапи.

  2. Використання змінних.

  3. Використання масивів.

  4. Використання діалогів.

  5. Однодокументний та багатодокументний інтерфейси.

  6. Типізація даних.

  7. Робота з файлом.

  8. Реалізація основних елементів інтерфейсу користувача.

  9. Конструктори і деструктори.

  10. Основи культури написання тексту програми.

  11. Відмінність масиву від структури.

  12. Обробка рядків.

  13. Алгоритми, блок-схеми.

  14. Оператори мови програмування.

  15. Передача даних у функцію.

  16. Виключення.

  17. Реалізація циклів.

  18. Статичне динамічне виділення пам’яті.

  19. Проект, етапи його розробки.

  20. Порівняння інтегрованої та модульної архітектури програмного засобу.

  21. Принципи відладки програми.

  22. Загальна структура програми мовою C#.

  23. Введення і виведення інформації при роботі з консоллю C#.

  24. Обробка командного рядка.

  25. Проблеми міжплатформової сумісності.

  26. Рекурсія.

  27. Типи параметрів у мові C#.

  28. Масиви у мові C#.

  29. Основні принципи об’єктно-орієнтованого підходу в програмуванні.

  30. Поняття інкапсуляції. Організація взаємодії об’єктів.

  31. Типи-значення та типи-посилання.

  32. Способи створення об’єктів.

  33. Способи знищення об’єктів. Збирач сміття.

  34. Методи роботи з діалогами.

  35. Структура Windows-проекту.

  36. Особливості «візуального» програмування.



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

Основна


  1. Г. Шилдт. Полный справочник по С#. – М.: Издательский дом "Вильямс", 2008 г.

  2. Э. Троелсен. С# и платформа .NET. Библиотека программиста. – СПб. : Питер, 2007

  3. Т.А. Павловская. С# . Программирование на языке высокого уровня. – СПб. : Питер, 2007

  4. Т.П. Караванова. Основи алгоритмізації та програмування. 750 задач з рекомендаціями та прикладами. – К.: Форум, 2002.

  5. Б. Керниган, Р. Пайк. Практика программирования – СПб.; М.: «Невский диалект» , 2001

  6. В.О.Грязнова, С.В. Єфіменко. Основи методології програмування. - К.: ВПЦ "Київський університет", 2005 р.

Додаткова

  1. Г.С.Иванова. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 416 с.

  2. Г.С. Иванова. Технология программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 320 с.

  3. А.Шень. Программирование: теоремы и задачи. – М.:МЦНМО, 2004





База даних захищена авторським правом ©lecture.in.ua 2016
звернутися до адміністрації

    Головна сторінка