Написание контрольных, курсовых, дипломных работ, выполнение задач, тестов, бизнес-планов
  • Не нашли подходящий заказ?
    Заказать в 1 клик:  /contactus
  •  
Главная \ Методичні вказівки \ ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ

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

« Назад

ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ 22.01.2016 18:01

 

НАЦIОНАЛЬНА АКАДЕМIЯ  УПРАВЛIННЯ

 

 

 

 

 

 

 

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

 

 

навчально-методичнІ МАТЕРІАЛИ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КИЇВ-2013

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

Навчально-методичнІ МАТЕРІАЛИ

 

Укладач:

Баклан Ігор Всеволодович

кандидат технічних наук, доцент

 

 

ЗМІСТ

 

 

1. Мета та завдання курсу ……………………………………………...3

 

 

 

2. Навчально-тематичний план. Навчальні модулі…………………..4

 

 

 

3. Регламент викладання та контролю засвоєння навчального матеріалу для студентів денної форми навчання …………………....5

 

3.1. Загальні положення………………………………………………..5

 

3.2. Характеристика складових навчального процесу вивчення 

       курсу та їх оцінювання…………………………………………….6

 

 

 

4. Плани лабораторних робіт…………………………………………..8

 

 

 

5. Тематика контрольних робіт ………………………………………14

 

 

 

6. Питання для підготовки до іспиту…………………………………14

 

 

 

7. Теоретичний матеріал для студентів заочної форми навчання…16

 

8. Література…………………………………………………………...22

 

 


1.  МЕТА  ТА  ЗАВДАННЯ  КУРСУ

 

Об'єктно-орієнтований підхід до програмування являє собою найсучаснішу концепцію створення програмного забезпечення та служить основою для побудови складних програмних систем для будь-якої предметної області. Оволодіння таким підходом означає не просто засвоєння певної мови програмування, а формування сучасного способу мислення для побудови програмних систем. Тому дисципліна “Об'єктно-орієнтоване програмування” є необхідною складовою частиною підготовки спеціалістів та посідає центральне місце в циклі комп'ютерних дисциплін. Об'єктно-орієнтоване програмування ґрунтується на матеріалі всіх вивчених раніше курсів комп'ютерних дисциплін, зокрема “Алгоритмізація та програмування”, та служить основою для подальшого вивчення дисциплін комп'ютерного циклу, наприклад, “Основи баз даних та знань”, “Сучасні технології програмування” а також всіх спеціальних курсів, що потребують комп'ютерного моделювання.

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

Основні задачі дисципліни — ознайомити студентів з ефективними методами об’єктно-орієнтованого проектування, аналізу та програмування, а також існуючим інструментарієм створення складних програмних систем для різноманітних предметних областей, сформувати навички об’єктно-орієнтованого програмування на таких популярних мовах як Ruby та Java та користування стандартними бібліотеками класів.

2. Навчально-тематичний план.

Навчальні модулі

 

(денна форма навчання)

 

Тема

Лекції

Практичні

СРС

(годин)

(годин)

(годин)

Модуль 1 Основи об'єктно-орієнтованого програмування

 

 

 

Тема 1.1. Введення до курсу

2

 

 

Тема 1.2. Критерії об'єктної орієнтації

2

 

 

Тема 1.3. До основ об'єктної технології

2

 

 

Тема 1.4. Статичні структури: класи

2

 

 

Тема 1.5. Динамічні структури: об'єкти

2

 

 

Тема 1.6. Об’єктно-орієнтована мова  RUBY. Основні властивості мови.

2

6

4

Тема 1.7. Комплексне програмування мовою RUBY

2

4

4

Всього за 1-й модуль: 36 годин

14

10

8

 

 

 

 

Модуль 2 Програмування на Java

 

 

 

Тема 2.1. Загальні уявлення про мову Java

2

4

 

Тема 2.2. Об'єктно-орієнтоване проектування на Java

2

4

 

Тема 2.3. Примітивні типи даних і оператори для роботи з ними

2

2

 

Тема 2.4. Робота з числами в мові Java

2

2

 

Тема 2.5. Конструкції, що управляють

2

2

 

Тема 2.6. Об'єктне проектування

 

 

12

Тема 2.7. Найважливіші об'єктні типи

2

4

 

Тема 2.8. Спадкоємство: проблеми і альтернативи.

2

2

 

Тема 2.9. Додаткові елементи об'єктного програмування на мові Java

2

2

 

Тема 2.10. Введення в мережеве програмування

2

2

 

Тема 2.11. Вбудовані класи

2

2

 

Всього за 2-й модуль: 58 години

20

26

12

 

 

 

 

Всього за 1-й семестр: 90 години

34

36

20

 

 

3. РЕГЛАМЕНТ ВИКЛАДАННЯ ТА КОНТРОЛЮ

ЗАСВОЄННЯ НАВЧАЛЬНОГО МАТЕРІАЛУ ДЛЯ СТУДЕНТІВ ДЕННОЇ ФОРМИ НАВЧАННЯ

 

     3.1. Загальні положення

 

У перехідний період в Національній академії управління як і в інших навчальних закладах України паралельно існуватимуть дві системи оцінювання, а саме  ЕСТS (Європейська система трансферту кредитів) та національна система  (4-х бальна). З цією метою в НАУ вводиться 100 – бальна шкала оцінювання знань, за допомогою якої здійснюється конвертація оцінок системи ЕСТS в національну систему, що представлено в таблиці 1.

Таблиця 1.

Порядок конвертації оцінок

 

Оцінка за системою ЕСТS

Визначення

Оцінка за

100 – бальною шкалою

Оцінка за національною системою

А

Відмінно – відмінне виконання

85 -100

5 (відмінно)

В

Дуже добре – вище середнього рівня

75 - 84

4 (добре)

С

Добре – загалом хороша робота

60 - 74

4 (добре)

D

Задовільно - непогано

55 - 59

3 (задовільно)

E

Достатньо – виконання відповідає мінімальним критеріям

50-54

3 (задовільно)

FX

Незадовільно – необхідне повторне перескладання

30 - 49

2 (незадовільно)

 з можливістю повторного складання

F

Незадовільно – необхідно повторне вивчення дисципліни

0 - 29

2 (незадовільно )

 з обов’язковим повторним вивченням дисципліни

3.2. Характеристика  складових навчального процесу вивчення курсу та їх оцінювання

Порядок, встановлений відповідним наказом ректора НАУ, передбачає можливість диференційованого підходу до формування 100 - бальної оцінки з окремих дисциплін, що об’єктивно обумовлено специфікою їх викладання. Весь програмний матеріал курсу “Системи автоматизації наукових та інженерних розрахунків ” поділяється на два модулі, які представлені в навчально-тематичному плані дисципліни. Викладання основних питань модулів та контроль за їх опануванням студентами денної форми навчання включають такі складові: 1) лекції; 2) лабораторні роботи; 3)тести; 4) фінальний іспит.

Лекції та лабораторні роботи проводяться за загальноакадемічними правилами в аудиторний час за розкладом. Відвідування лекцій та лабораторних робіт є обов’язковим, що контролюється викладачами та куратором курсу, які по завершенню семестру оцінюють дану складову максимально 10 балами. Якщо студент з будь-яких обставин мав пропуски, його оцінки розраховуються за простою пропорцією, виходячи із сумарної кількості лекцій та семінарських занять. Так, якщо під час семестру було 12 лекцій і 14 семінарів (разом 26), а студент відвідав 8 лекцій і 10 семінарів (разом 18), то його оцінка відвідування складає 6,8 (26-10; 18 – х); результат за загальноарифметичними правилами округлюється до цілої цифри і дорівнює 7 балам.

Другою складовою комплексної оцінки студента є його активність на лабораторних заняттях, під час яких впродовж семестру він може отримати максимально 30 балів. Результати роботи кожного студента визначаються викладачем на лабораторних роботах індивідуально. Тобто після будь-якого заняття кожен студент має в журналі оцінку від 0 до 3 балів за вдале виконання лабораторної роботи та наданий студентом звіт про виконання лабораторної роботи.

Третьою складової семестрової комплексної оцінки є тести, які проводяться по завершенню вивчення Модулів 2, по кожному з яких студент може отримати максимально по 15 балів, тобто - 30 загалом. Тести проводяться у комп’ютерному класі за спеціально розробленою програмою. Час і аудиторія для тестування визначаються додатково. Технологія тестування передбачає наступне: 1) викладач заздалегідь готує 30-50 тестових завдань, що охоплюють програмний матеріал тем модулів. Під час тестування методом випадкової вибірки студент отримує 10 завдань, кожне з яких має від 3 до 10 варіантів відповідей. Студент обирає, на його думку, одну або декілька вірних, для чого дається 2 хвилини на кожне питання. Загальний час на одне тестування – 20 хвилин (10 х 2).

Після завершення тестування студент за комп’ютерною програмою безпосередньо на місці отримує оцінку, що відповідає кількості правильних відповідей, а саме: 7 вірних відповідей – 7 балів, 3 – 3 бали відповідно. Повторне тестування не проводиться. Якщо деякі студенти не були присутніми на плановому тестуванні з поважних обставин, вони мають можливість пройти тестування у додатково визначений час. Студенти, що не з’явилися на планове тестування без поважних причин, як і ті, що не були присутніми на додатковому, матимуть нульову оцінку.

Останнім четвертим елементом комплексної оцінки є результат фінального заліку, що складається згідно графіку залікової сесії. Білет містить 10 питань кожне з яких оцінюється максимально у 3 бали, тобто (3х10=30 балів разом). Питання білетів до студентів не доводяться. При підготовці до заліку потрібно користуватися програмою курсу (див.п.п.4.1.1., 4.2.2 та 4.3.1.) та навичками, отриманими під час виконання лабораторних робіт.

Увага! Студенти, які впродовж семестру набрали менш 30 балів за усіма складовими, до заліку НЕ ДОПУСКАЮТЬСЯ, автоматично отримують оцінку «незадовільно» - F і мають складати залік наступного разу тільки після повторного вивчення дисципліни.

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

1. Відвідування

- 10

2. Лабораторні роботи

- 30

3. Тести

- 30

4. Іспит

- 30

Разом:

100

4. Плани ЛАБОРАТОРНИХ РОБІТ

ЦИКЛ "ПРОГРАМУВАННЯ НА RUBY"

ЛАБОРАТОРНА РОБОТА 1. ОБ'ЄКТНО-ОРІЄНТОВАНА МОВА RUBY. ОСНОВНІ ВЛАСТИВОСТІ МОВИ.

Приклад індивідуального завдання:

Завдання 1.

1. Написати програми, що обчислюють середнє арифметичне чисел x, y та z;

2. Написати програму друкуючу першу цифру в дробовому записі позитивного дробового числа (напр., для 32,567 відповідь 5).

Завдання 2.

Внести такі зміни в програми із завдання 1, щоб вихідні дані запитувались з клавіатури.

Завдання 3.

Написати програму, що обчислює периметр і площу

правильного 25-кутника, вписаного в окружність радіуса R.

Що потрібно змінити, щоб програма обчислювала периметр й

площу 17-кутника?

ЛАБОРАТОРНА РОБОТА 2. ОБ'ЄКТНО-ОРІЄНТОВАНА МОВА RUBY. ОСНОВНІ ВЛАСТИВОСТІ МОВИ (ПРОДОВЖЕННЯ)

Завдання

Напишіть програму, що обчислює суму всіх парних натуральних чисел, що не перевершують 1000.

Напишіть програму, що визначає максимальний елемент масиву чисел.

ЛАБОРАТОРНА РОБОТА 3. КОМПЛЕКСНЕ ПРОГРАМУВАННЯ МОВОЮ RUBY

Приклад завдання:

Напишіть програму, що за допомогою датчика випадкових чисел вибирає натуральне число, менше 100, і пропонує ввести з клавіатури загадане число. Після введення числа повідомляється більше або менше уведене число, ніж задумане. Якщо число вгадане, то програма поздоровляє гравця з виграшем, якщо ж за 7 ходів не вдалося відгадати задумане число, то програма повинна припинити гру, повідомивши про програш. Припустимо, що програма "загадала" число 38. У цьому випадку діалог може виглядати, наприклад, так: Введіть число: 64 Число велике, спробуйте ще раз: 21 Число мале, спробуйте ще раз: 44 Число велике, спробуйте ще раз: 40 Число велике, спробуйте ще раз: 30  ...

 

 

ЦИКЛ "ПРОГРАМУВАННЯ НА JAVA"

ЛАБОРАТОРНА РОБОТА 1.Встановлення та запуск Eclipse

Ціль роботи:

Eclipse - програмне забезпечення з відкритим кодом, яке в цілому використовується як Інтегроване Середовище Розробки (IDE) і як основа для програмних продуктів.

В цій лабораторній роботі ви будете інсталювати та запускати Eclipse. Перш, ніж ви почнете встановлювати його, продукт повинен бути завантажений із сайту www.eclipse.org. Після того, як ви завантажите файл, ви можете приступати до інсталяції. Коли інсталяція завершиться, ви можете запустити Eclipse.

 

ЛАБОРАТОРНА РОБОТА 2: Об'єктно-орієнтована концепція. Гра життя

Ціль роботи:

У цій роботі ви вивчите предметну область, у якій ви будете працювати всю іншу частину лабораторного практикуму. У цій роботі пояснюються правила Гри життя, яку ви спробуєте моделювати. Гра життя - одна з найбільш відомих 2-мірних моделей клітинної структури. Це не дійсна гра, тому що в ній немає гравців, немає переможців і переможених. Це гра, у якій початкова позиція й правила визначають усе, що трапиться після цього. Більше інформації про гру і її обґрунтування див. по посиланнях http://www.math.com/students/wonders/life/life.html і http://mathworld.wolfram.com/CellularAutomaton.html.

 

 

ЛАБОРАТОРНА РОБОТА 3.Огляд Java

Ціль роботи:

В цій роботі ви будете використовувати Scrapbook для обчислення деякого Java-коду. Scrapbook використовується в Eclipse для інспектування та обчислення коду. Спочатку вам потрібно створити проект, а в проекті - новий Scrapbook. Це вправа ближче познайомить вас із середовищем Eclipse, а також з основним синтаксисом і правилами мови Java.

 

ЛАБОРАТОРНА РОБОТА 4.Побудова класів Java

Ціль роботи:

У цій роботі ви ближче познайомитеся з Java Development Tools в Eclipse. Фактично, ви побудуєте основні класи гри. Після того, як ви закінчите цю роботу, ви повинні бути знайомі зі створенням класів за допомогою Eclipse, а також з використанням інструментів рефакторинга Java в Eclipse.

 

ЛАБОРАТОРНА РОБОТА 5.Використання відладчика

Ціль роботи:

В цій роботі ви ближче познайомитеся з Java Development Tools в Eclipse, оскільки ви будете застосовувати деякі з найчастіше використовуваних інструментів, а саме, Debugger, знову Scrapbook та Inspector. Ці інструменти досить корисні при розробці Java-коду. У цій роботі ви по кроках пройдете через виконання конструктора Board і постараєтеся визначити та виправити неправильне поводження.

 

ЛАБОРАТОРНА РОБОТА 6.  Оператори керування

Ціль роботи:

У цій роботі ви будете використовувати оператори керування для реалізації деякого поводження класів гри. Зокрема, ви реалізуєте шаблон Singleton для класу Game та метод toString() класу Board.

 

ЛАБОРАТОРНА РОБОТА 7.  Спадкування

Ціль роботи:

У цій роботі ви будете використовувати спадкування для поліпшення проекту, підвищення гнучкості й можливостей супроводу системи.

Спадкування допомагає при рефакторинзі коду, а також при правильному поданні об'єктів (тобто воно робить об'єкт більше близьким до реального життя). Досить часто деякі загальні властивості схожих класів абстрагуються в абстрактному суперкласі й повторно використовуються в підкласах. Абстрактний клас - це клас, що не може мати екземплярів. Інтерфейси використовуються в мові Java для більшого абстрагування, оскільки вони визначають тільки об'єктний протокол. Інтерфейси також використовуються для крос-ієрархічного поліморфізму (перехресного спадкування). У цій роботі ви будете використовувати й абстрактні класи, і інтерфейси. У цих роботах ви зосередитесь на 2-мірному моделюванні клітинної структури в Грі життя. Конкретно в цій роботі ви будете робити систему гнучкою для обробки різних версій ігор моделювання кліток.

 

ЛАБОРАТОРНА РОБОТА 8.Колекції

Ціль роботи:

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

 

ЛАБОРАТОРНА РОБОТА 9. ОБробка виключень

Ціль роботи:

Ціль цієї роботи складається в роботі з виключеннями. В цій роботі ви вивчите, як викидати та виловлювати виключення.

 

ЛАБОРАТОРНА РОБОТА 10.Потоки

Ціль роботи:

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

 

ЛАБОРАТОРНА РОБОТА 11.  Генерація Javadoc в Eclipse

Ціль роботи:

Ціль цієї роботи - познайомити вас із документуванням вашого Java-коду за допомогою коментарів Javadoc і тегів і з використанням інструмента Javadoc в Eclipse для вироблення Javadoc-виходу в стандартному доклеті.

 

ЛАБОРАТОРНА РОБОТА 12.  Використання Ant в Eclipse

Ціль роботи:

Ціль цієї роботи - познайомити вас із діями, які ви повинні виконати, щоб використати Ant в Eclipse. Ці дії містять у собі написання файлу build.xml, а потім запуск різних задач, які ви повинні включити у файл. Другою метою є представлення вам деяких головних задач, які забезпечує Ant.

 

ЛАБОРАТОРНА РОБОТА 13.  Побудова графічного інтерфейсу користувача за допомогою SWT

Ціль роботи:

Ціль цієї роботи - познайомити вас із Standard Widget Toolket (SWT) в Eclipse. Точніше, ця робота допоможе вам вивчити, як використовувати один з найпопулярніших менеджерів розкладки: FormLayout, багато елементів (widgets) SWT, як будувати графічні користувальницькі інтерфейси, використовуючи елементи SWT і два шаблони, які обговорюються в слайдах: View Event Handler Pattern й Complete Update Pattern.

 

5. Тематика контрольних робіт

Тестова контрольна робота “Програмування на Ruby”.

Тестова контрольна робота “Програмування на Java”.

 

6.  Питання для підготовки до іспиту

1

Які твердження правильні?(виберіть 2)

1

Java підтримує циклічне спадкування

2

 Java підтримує множинне спадкування класів

3

В Java можна використовувати оператор goto

4

Java підтримує багатопотоковість

5

В Java не можна перевантажити оператори

 

6

В Java можна створювати методи, що не належать жодному класу

2

Дано код:

class First {

     private static void main (String a) {

                  System.out.print("Java 2 ");    

     }  }

Скільки помилок у цьому найпростішому додатку на Java?

1

1 помилка

2

2 помилки

3

3 помилки

4

4 помилки

5

немає помилок

3

Дано код:

class Quest3{

    public void my(String a[]) {

        System.out.println(a);

        System.out.println(a[0]);

    }

        public static void main(String[] s) {

        my(s);

    } }

Що буде виведено в результаті компіляції й запуску?

1

Помилка: тіло методу my() некоректно

2

Помилка: розбіжність типів при виклику my(args)

3

Помилка: метод my() повинен оголошуватися з параметром типу String[]

4

Помилка: не можна викликати нестатичний метод my()

4

Дано код:

public class Quest4{

        public static void main(String[] args) {

        byte b[]=new byte[80];

        System.in.read(b);

System.out.print(“Ok”);

        } }

Що буде виведено в результаті компіляції й запуску?

1

Помилка компіляції: через те, що метод read() може породжувати виняткову ситуацію типу IOException

2

Помилка компіляції: через те, що довжина масиву b може не сова^-падати з довжиною зчитувальних даних

 

3

Помилка часу виконання: через те, що вводять данные, що, куди не зчитуються

4

Ok

5

Дано код:

public class Quest5{

        public static void main(){

                System.out.print("(No) ");      }

        public static void main(String args){

                System.out.print("(String args) ");     }

        public static void main(String[] args){

                System.out.print("(String[] args)");    }

}

Що буде виведено в результаті компіляції й запуску?

1

Виведено: (No)

2

Виведено: (String args)

3

Виведено: (String[] args)

4

Виведено: (No) (String args) (String[] args)

5

Помилка часу компіляції

 

 

7. Теоретичний матеріал ДЛЯ СТУДЕНТІВ ЗАОЧНОЇ ФОРМИ НАВЧАННЯ

Тема 1. Введення до курсу

Якість - це мета інженерної діяльності; побудова якісного ПО (software) - мета програмної інженерії (software engineering). У даній книзі розглядаються засоби і технічні прийоми, що дозволяють значно поліпшити якість ПО. Перш ніж приступити до вивчення цих засобів і прийомів, слід добре представляти нашу мету. Якість ПО найкраще описується комбінацією ряду чинників. У цій темі ми постараємося проаналізувати деякі з них, покажемо, де необхідні поліпшення, і вкажемо дорогу в подальшій подорожі по лекціях цього курсу.

Тема 2. Критерії об'єктної орієнтації

В попередній темі досліджувалися меті ОО-методу. Готуючись до читання технічних деталей методу в наступних лекціях, корисно швидко, але з широких позицій розглянути ключові аспекти ОО-розробки ПО. Така мета цієї темі. Перш за все, тут буде дано лаконічне пояснення того, що робить систему об'єктно-орієнтованої. Вже в цьому є певна користь, оскільки цей термін використовується так нерозбірливо, що необхідний список точних властивостей; маючи їх, ми зможемо оцінити метод, мову або інструмент, що претендують на звання об'єктно-орієнтованих.

Тема 3. До основ об'єктної технології

Розширюваність, можливість повторного використання і надійність - наші головні цілі - вимагають виконання ряду умов, визначених в попередніх лекціях. Для їх досягнення потрібний систематичний метод декомпозиції системи на модулі. У цій темі представлені основні елементи такого методу, заснованого на простій, але ідеї, що далеко йде: будувати кожен модуль на базі деякого типа об'єктів. Тут ця ідея пояснюється, логічно обгрунтовується і з неї виводяться деякі следствія.

Тема 4. Статичні структури: класи

Аналізуючи основи програмної інженерії, ми зрозуміли причини, що вимагають вдосконалення модульного підходу - повторне використання і розширюваність коди. Ми усвідомили, що традиційні методи вичерпали себе, - централізована архітектура обмежує гнучкість. Ми виявили хорошу теоретичну основу ОО-підходу - абстрактних типів даних. Тепер, коли проблемам приділено досить уваги, вперед до їх рішення! Розділ містить введення у фундаментальні методи ОО-аналізу, проектування і програмування. Необхідні позначення (елементи опису) вводитимуться в міру необхідності. Спочатку необхідно розглянути базові будівельні блоки - класи.

Тема 5. Динамічні структури: об'єкти

В попередній темі наголошувалося, що екземпляри класів називають об'єктами. Настав час перемкнути увагу на ці об'єкти, і в загальному сенсі - на модель ОО-обчислень часу виконання. У попередніх лекціях розглядалися в основному концептуальні питання. Тепер необхідно звернутися до аспектів реалізації. Зокрема, розглянути питання використання пам'яті (обговорення буде продовжено в наступній темі у зв'язку із збіркою сміття). Неодноразово наголошувалося, що однією з переваг об'єктної технології розробки ПО є облік в повному об'ємі деталей реалізації. Тому екскурсія в область реалізації буде корисною, навіть якщо сфера ваших інтересів пов'язана в основному з питаннями аналізу і проектування. Неможливо зрозуміти метод, не розглядаючи його вплив на структури часу виконання.

Тема 6. Загальні уявлення про мову Java

Java і інші мови програмування. Системне і прикладне програмування. Віртуальна java-машина, байт-код, jit-компіляція. Категорії програм, написаних на мові Java. Алфавіт мови Java. Десяткові і шістнадцятиричні цифри і цілі числа. Зарезервовані слова. Алфавіт мови Java. Десяткові і шістнадцятиричні цифри і цілі числа. Зарезервовані слова мови Java. Послідовності, що управляють. Символи Unicode. Спеціальні символи. Послідовності, що управляють. Прості спеціальні символи. Складені спеціальні символи. Ідентифікатори. Змінні і типи. Примітивні і посилальні типи.

 

 

Тема 7. Об'єктно-орієнтоване проектування на Java

Процедурне і об'єктно-орієнтоване програмування. Інкапсуляція. Робота з посилальними змінними. Збірка сміття. Проекти Netbeans. Пакети. Рівні видимості класів. Імпорт класів. Базові пакети і класи Java. Створення в Netbeans простого додатка Java. Компіляція файлів проекту і запуск додатка. Структура проекту Netbeans. Створення в Netbeans додатка Java з графічним інтерфейсом. Редактор екранних форм. Зовнішній вигляд додатка. Ведення проектів. Редагування меню екранної форми. Створення нового класу. Документування вихідної коди в Java. Основні компоненти пакетів swing і awt. Технології Java і .Net..

Тема 8. Примітивні типи даних і оператори для роботи з ними

Булевий (логічний) тип. Цілі типи, змінні, константи. Основні оператори для роботи з цілочисельними величинами. Речові типи і клас Math. Правила явного і автоматичного перетворення типа при роботі з числовими величинами. Оболонкові класи. Упаковка (boxing) і розпаковування (unboxing). Пріоритет операторів. Типи-перерахування (enum).

Тема 9. Робота з числами в мові Java

Двійкове представлення цілих чисел. Позиційні і непозиційні системи числення. Двійкове представлення позитивних цілих чисел. Двійкове представлення негативних цілих чисел. Додатковий код. Проблеми цілочисельної машинної арифметики. Шістнадцятиричне представлення цілих чисел і переведення з однієї системи числення в іншу. Побітові маски і зрушення. Двійкове представлення дійсних чисел. Двійкові дроби. Мантиса і порядок числа.

 

Тема 10. Конструкції, що управляють

Складений оператор. Умовний оператор if. Оператор вибору switch.Операторы інкремента ++ і декремента --. Оператор циклу for. Оператор циклу while - цикл з передумовою. Оператор циклу do...while - цикл з умовою поста. Оператори переривання continue, break, return, System.exit.

Тема 11. Об'єктне проектування

Спадкоємство і поліморфізм. Uml-діаграмі. Функції. Модифікатори. Передача примітивних типів у функції. Локальні і глобальні змінні. Модифікатори доступу і правила видимості. Заслання this. Передача посилальних типів у функції. Проблема зміни заслання усередині підпрограми. Спадкоємство. Суперкласи і підкласи. Перевизначення методів. Спадкоємство і правила видимості. Зарезервоване слово super. Статичне і динамічне скріплення методів. Поліморфізм. Базовий клас Object. Конструктори. Зарезервовані слова super і this. Блоки ініціалізації. Видалення невживаних об'єктів і метод finalize. Проблема деструкцій для складно влаштованих об'єктів. Перевантаження методів. Правила сумісності посилальних типів як основа використання поліморфної коди. Приведення і перевірка типів. Рефакторінг. Reverse engineering - побудова uml-діаграм по розроблених класах.

Тема 12. Найважливіші об'єктні типи

Масиви. Колекції, списки, ітератори. Робота з рядками в Java. Рядки як об'єкти. Класи String, Stringbuffer і Stringbuilder. Робота з графікою. Виняткові ситуації. Обробка виняткових ситуацій. Ієрархія виняткових ситуацій. Оголошення типа винятковій ситуації і оператор throw. Оголошення методу, який може збуджувати виняткову ситуацію. Зарезервоване слово throws. Робота з файлами і теками.

Тема 13. Спадкоємство: проблеми і альтернативи.

Інтерфейси. Композиція Проблеми множинного спадкоємства класів. Інтерфейси. Відмінності інтерфейсів від класів. Проблеми спадкоємства інтерфейсів. Приклад на використання інтерфейсів. Композиція як альтернатива множинному спадкоємству.

Тема 14. Додаткові елементи об'єктного програмування на мові Java

Потоки виконання (threads) і синхронізація. Переваги і проблеми при роботі з потоками виконання. Синхронізація по ресурсах і подіях. Клас Thread і інтерфейс Runnable. Створення і запуск потоку виконання. Поля і методи, задані в класі Thread. Підключення зовнішніх бібліотек DLL."Рідні" (native) методи.

Тема 15. Введення в мережеве програмування

Коротка довідка по мові HTML. Аплети. Сервлети. Технологія JSP - Java Server Pages.

Тема 16. Вбудовані класи

Віди вбудованих класів. Вкладені (nested) класи і інтерфейси. Внутрішні (inner) класи. Локальні (local) класи. Анонімні (anonimous) класи і обробники подій. Анонімні (anonimous) класи і слухачі подій (listeners).

 

 

 
8. ЛІТЕРАТУРА

Базові підручники та навчальні посібники

Основними навчальними посібниками, якими бібліотека академії 100-відсотково забезпечує студентів як денної, так і заочної форм навчання (в тому числі в елекртонному вигляді) є:

  1. Основи програмування на Java/ Укл. Баклан І.В. - К.: НАУ, 2007. - 258 с.
  2. Об’єктно-орієнтоване програмування. Частина 1. Програмування на мові RUBY. Навчально методичні матеріали / Укл. Баклан І.В., Степанкова Г.А. - К.: НАУ, 2009, 164 с.
  3. Методичні вказівки щодо виконання лабораторних робіт з курсу “Об'єктно-орієнтоване програмування”. Частина 2. Мова програмування JAVA / Укл. Баклан І.В., Степанкова Г.А. - К.: НАУ, 2009. - 52 с.

Нижче наведені інші аналогічні джерела, які також можна прочитати в системі Internet:

  1. Материалы курсов, поддержанных в рамках программы Sun Microsystems Teaching Grants - http://ru.sun.com/research/teachingmaterials.jsp
  2. Программирование на Java - http://www.intuit.ru/department/pl/javapl/
  3. Учебник по Ruby: Крис Пайн "Учись программировать" - http://www.shokhirev.com/mikhail/ruby/ltp/title.html/

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

  1. К.Арнольд, Дж.Гослинг. Язык программирования Java. - СПб: Питер, 1997
  2. П.Нотон. Java. Справочное руководство. М.: Восточная книжная Компания, 1996
  3. Б.Эккель. Философия Java.Библиотека программиста. - СПб: Питер, 2001

10. Вязовик Н.А. Программирование на Java. - Интернет-университет информационных технологий - ИНТУИТ.ру, 2003

11. Иванов А.М. Использование и расширение Eclipse. - Интернет-университет информационных технологий - ИНТУИТ.ру, 2009

 

 


Комментарии


Комментариев пока нет

Пожалуйста, авторизуйтесь, чтобы оставить комментарий.

Авторизация
Введите Ваш логин или e-mail:

Пароль :
запомнить