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

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

Содержание


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

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



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


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


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


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




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


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

06.070201 «Радіофізика і електроніка»


Затверджено

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

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


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


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


КИЇВ – 2008


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


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


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


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

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


Погоджено

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

«____» ______________ 200__р.


___________________________

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


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


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

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

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

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

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

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

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


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


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


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

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

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

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

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

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

25

35

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 (вивчення типів мови С# та операцій з ними) – від 4 до 6 балів;

лабораторна робота №3 (вивчення розгалужень) – від 4 до 6 балів;

лабораторна робота №4 (робота з циклами) – від 4 до 6 балів;

лабораторна робота №5 (робота з масивами) – від 6 до 8 балів;

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

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

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

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

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

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

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

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


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

1 модульний контроль – до 3 листопада 2008 року;

2 модульний контроль – до 30 грудня 2008 року.


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


Номер

лекції

Назва лекції

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

лекції

практичні

СРС

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

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


ЗМ1: Основи мови С#.


1

Вступ. Мови програмування. Місце мови С# серед сучасних мов програмування. Представлення даних та двійкова арифметика.

2




4







2

Основні поняття програмування. Блок-схема програми та її основні елементи.

2

2

4







3

Структура програми мовою С#. Поняття проекту, консольного прикладення. Компілювання, виконання та налагодження програми.

2

1

4







4-5

Основні елементи мови С#: вбудовані типи, визначення та ініціалізація змінних, область їх видимості, літерали (константи); операції та вирази, зведення типів у виразах.

4

1

4







6

Створення простих консольних прикладень; використання деяких можливостей введення та виведення інформації.

2

2

4







7-9

Основні інструкції керування – розгалуження та цикли.

6

4

6










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










1





ЗМ2: Поняття про класи в мові С#.



10

Поняття про визначення класу та створення об’єкту. Визначення та використання методів класу.

2



2







11

Конструктор класу. Конструктор з параметрами.

2

1

4







12

Деструктор класу. Поняття про систему збору «сміття».

2



2







13

Масиви в мові С#. Ініціалізація та використання масивів. Багатовимірні масиви.

2

2

4







14

Робота з рядками в мові С#.

2

1

4







15

Доступ до членів класу, інкапсуляція. Передача об’єктів методам класу.

2

1

4







16

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

2

1

4







17

Структури в мові С#. Перелік в мові С#.

2



2










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










1




18

Підсумки: перелік основних можливостей об’єктів мови С#.

2

2

2










ВСЬОГО

36

18

54

2





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


Змістовний модуль 1: Основи мови С#.

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

Вступ. Про програму курсу та вимоги до студентів. Історія обчислювальної техніки. Мови програмування. Процедурні та об’єктно-орієнтовані мови програмування. Місце мови С# серед сучасних мов програмування. Представлення даних та двійкова арифметика. Необхідність типізації даних.

ПРАКТИЧНЕ ЗАНЯТТЯ 1. Правила техніки безпеки в комп’ютерному класі, поняття про середовище Visual C#. Робота з блок-схемою програми. (2 години)


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

Поняття про алгоритм та блок-схему програми. Три основні елементи блок-схеми. Культура програмування, поняття про ефективність алгоритму. Основні поняття будь-якої мови програмування: константи, змінні та операції з ними; процедури та функції як реалізація принципу модульності, їх параметри та аргументи.

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

Структура програми мовою С#. Перша програма мовою С#. Поняття проекту, консольного прикладення. Компілювання, виконання та налагодження програми.

ПРАКТИЧНЕ ЗАНЯТТЯ 2. (2 години)

Виконання лабораторної роботи №1 – створення консольного прикладення за наведеним зразком.


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

Основні елементи мови С#: вбудовані типи, визначення та ініціалізація змінних, область їх видимості, правила вибору імен змінних; літерали (константи).

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

Основні елементи мови С#: операції та вирази – арифметичні, логічні, відношення, побітові оператори, інкремент та декремент, оператор присвоєння. Зведення типів у виразах, пріоритет операцій. Використання пробілів та дужок у виразах для покращення читання програми.

ПРАКТИЧНЕ ЗАНЯТТЯ 3. (2 години)

Виконання лабораторної роботи №2 – вивчення типів мови С# та операцій з ними.


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

Створення простих консольних прикладень; використання деяких можливостей введення та виведення інформації з допомогою класу System.Console. Засоби форматування.

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

Основні керуючі конструкції мови. Розгалуження та оператор switch. Приклади використання.

ПРАКТИЧНЕ ЗАНЯТТЯ 4. (2 години)

Виконання лабораторної роботи №3 – вивчення типів мови С# та операцій з ними.


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

Основні інструкції керування – цикли for та while. Приклади. Правила структурування коду програми.

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

Основні інструкції керування – цикл do-while. Приклади. Використання інструкцій break, continue, return та goto.


ПРАКТИЧНЕ ЗАНЯТТЯ 5. (2 години)

Виконання лабораторної роботи №4 – робота з циклами.


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

Контрольні запитання.
  1. Назвіть види мов програмування та їх основних представників.
  2. Назвіть основні елементи блок-схем.
  3. Поясніть, що таке процедура та функція. Поясніть, за яких обставин зручно використовувати різні види циклів.
  4. Вкажіть різницю між параметрами та аргументами процедур та функцій.
  5. Поясніть терміни «проект» та «консольне прикладення».
  6. Назвіть основні вбудовані типи мови С#.
  7. Назвіть основні операції мови С#..
  8. Як діють оператори інкременту та декременту?.
  9. Вкажіть основні інструкції, що реалізують розгалуження в мові мови С#.
  10. Які види циклів мови С# вам відомі?
  11. Як діють інструкції break та continue?

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

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

1. Окремі елементи стилю програмування. [6] 17-54; [5] 19-23

2. Принцип модульності в структурному програмуванні. [6] 66-75

3. Ефективність програм та методи їх оптимізації. [6] 23-29

4. Тестування та налагодження програм. [6] 29-36


Література: [1, 2, 3, 5, 6]


Змістовний модуль 2: Поняття про класи в мові С#.

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

Поняття про визначення класу та створення об’єкту. Клас – новий тип даних вказівникового типу. Визначення класу, доступ до даних-членів класу. Створення об’єкту даного класу.

Визначення методів класу. Використання методів класу, що повертають результат.

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

Конструктор класу. Конструктор за замовчуванням та конструктор з параметрами. Створення параметризованих об’єктів класу. Оператор new.

ПРАКТИЧНЕ ЗАНЯТТЯ 6. (2 години)

Виконання лабораторної роботи № 5 – робота з масивами.


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

Деструктор класу. Поняття про систему збору «сміття». Використання службового слова this.

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

Масиви в мові С#. Створення масиву. Ініціалізація та використання масивів. Цикл foreach. Багатовимірні масиви. Приклади ініціалізації та використання багатовимірних масивів.

ПРАКТИЧНЕ ЗАНЯТТЯ 7. (2 години)

Виконання лабораторної роботи № 6 – вивчення можливостей класів.


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

Робота з рядками в мові С#. Методи базового класу System.String. Використання керуючих символів при виводі рядків. Масиви рядків.

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

Управління доступом до членів класу, інкапсуляція. Передача об’єктів методам класу. Правила використання модифікаторів ref- та out- для параметрів методів.

ПРАКТИЧНЕ ЗАНЯТТЯ 8. (2 години)

Продовження виконання лабораторної роботи №6 – вивчення можливостей класів.


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

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

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

Структури в мові С# – це тип-значення. Приклади визначення та використання структур. Перелік в мові С#. Ініціалізація переліку.

ПРАКТИЧНЕ ЗАНЯТТЯ 9. (2 години)

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


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

Підсумки: перелік основних можливостей об’єктів мови С#.


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

Контрольні запитання.
  1. Що таке клас в мові С#?
  2. Як створити об’єкт?
  3. Що таке метод класу? Як відбувається звертання до методу класу?
  4. Що таке конструктор класу?
  5. Що означає «конструктор за замовчуванням»?
  6. Що таке деструктор класу?
  7. Як відбувається утилізація об’єктів, що не використовуються програмою?
  8. Як визначити масив в мові С#? Як його ініціалізувати?
  9. Як працює цикл foreach?
  10. Що вам відомо про тип string в мові С#?
  11. Якими можуть бути параметри методів класу?
  12. Як визначити структуру в мові С#?
  13. Що таке перелік в мові С#?
  14. Що таке перезавантажені методи класу?

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

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

1. Параметри методу Main. [1] 213-215, [2] 76-78

2. Рекурсивні алгоритми та їх використання в мові С#. [1] 215-218

3. Статичні методи класу. [1] 218-223, [2] 112-115


Література: [1, 2, 3, 4, 5, 6]


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


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

Основна.
  1. Г. Шилдт. Полный справочник по С#. – М.: Издательский дом "Вильямс", 2008 г.
  2. Э. Троелсен. С# и платформа .NET. Библиотека программиста. – СПб. : Питер, 2007
  3. Т.А. Павловская. С# . Программирование на языке высокого уровня. – СПб. : Питер, 2007
  4. Т.П. Караванова. Основи алгоритмізації та програмування. 750 задач з рекомендаціями та прикладами. – К.: Форум, 2002.
  5. Б. Керниган, Р. Пайк. Практика программирования – СПб.; М.: «Невский диалект» , 2001
  6. В.О.Грязнова, С.В. Єфіменко. Основи методології програмування. - К.: ВПЦ "Київський університет", 2005 р.

Додаткова.
  1. 1. Г.С.Иванова. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 416 с.
  2. Г.С. Иванова. Технология программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 320 с.
  3. А.Шень. Программирование: теоремы и задачи. – М.:МЦНМО, 2004