- •Міністерство освіти і науки україни Дніпропетровський національний університет
- •Кафедра математичного забезпечення еом
- •Робоча навчальна програма
- •Дніпропетровськ − 2010
- •Мета та задачі дисципліни
- •Зміст дисципліни
- •1. Навчальна та довідкова література:
- •2.5. Тематичний план дисципліни:
- •2.6. Орієнтований перелік питань, які визначаються як питання Поточного та семестрового контролю.
- •Навчально-методичні матеріали з дисципліни
- •3.2. Нормативна та інструктивна література
- •Елементи контролю за 1 модулем Термін: 25-й тиждень (27.10.08 – 31.10.08)
- •Елементи контролю за 2 модулем Термін: 29-й тиждень (24.11.08 – 28.11.08)
- •Елементи контролю за 3 модулем Термін: 33-й тиждень (22.12.08 – 26.12.08)
- •Підсумковий контроль
Мета та задачі дисципліни
Мета викладання дисципліни
Сформувати теоретичне уявлення про поняття абстрактного типу даних (А.Т.Д.), познайомитись з основними видами структур даних та засвоїти методи та засоби їх специфікації та реалізації у сучасних мовах програмування високого рівня.
Задачі вивчення дисципліни
Головною ціллю є вивчення методів декомпозиції складних програм на базі абстракцій з задачею побудови модулів, що у свою чергу є невеликими програмами, що взаємодіють друг з другом за добре визначеними і простими правилами. Головною структурною одиницею у цій декомпозиції виступає А.Т.Д.
На підставі необхідності створення реальних програмних засобів, необхідно теоретично вивчити та практично відпрацювати на лабораторних роботах методи та засоби рішення наведених нижче задач:
- надбання навичок розробки програмних систем на основі їх декомпозиції на декілька А.Т.Д;
- визначається місце А.Т.Д. серед засобів структуризації даних;
- вивчаються методи специфікації та реалізації А.Т.Д. ;
- вивчаються методи аналізу програм з А.Т.Д.;
- засвоюється технологія реалізації програм з А.Т.Д. у середовищі сучасних мов програмування високого рівня.
В результаті вивчення дисципліни фахівець повинен знати:
- поняття інформації та даних;
- поняття структур даних та їх класифікацію;
- поняття типу даних у сучасних мовах програмування;
- поняття А.Т.Д. та методів їх специфікації та реалізації;
- методи аналізу програм з А.Т.Д.
Підготовлений фахівець повинен вміти:
виконувати декомпозицію складних програм на базі абстракцій;
специфікувати абстракції за допомогою формалізованої мови специфікації;
виконувати реалізацію абстракції, її автономне налагодження та верифікацію;
проводити аналіз реалізації програм на базі абстракцій;
практично застосовувати вивчені методи до реалізації прикладних задач.
Зміст дисципліни
Лекційний курс
|
№ модуля, змістового модуля, теми |
Назва і короткий зміст змістового модуля, теми |
Кількість аудиторних годин |
|
1.1 |
Змістовий модуль І.Введення в структури даних. |
8 |
|
1.1.1 |
Тема 1.Поняття про інформацію і дані. (Вступ: Поняття про інформацію. Кількість та об’єм інформації. Вимірювання інформації. Інформація і невизначеність: поняття ентропії. Кодування інформації.Поняття про предметне середовище. Інформаційна модель предметного середовища. Атрибут. Види атрибутів. Поняття про дані. Логічний та фізичний рівень представлення даних. Теорема про самеощадливесередовище для зберігання даних.). |
2 |
|
1.1.2 |
Тема 2.Поняття про структури даних(Відношення між атрибутами предметного середовища. Властивості відношень. Поняття про абстрактні структури даних (АСД). Характеристики СД: організація, метод доступу, методи розташування і обробки тощо. Метод доступу: метод пошуку, метод адресації, метод ідентифікації. Критерії пошуку. Статичні та динамічні СД. Класифікація СД: послідовні СД, масиви, спискові СД, таблиці, дерева, мережі.). |
2 |
|
1.1.3 |
Тема 3.Поняття про тип даних. . (Поняття типової безпеки. Поняття типу. Класифікація засобів визначення даних у мовах програмування: 1) засоби структурування даних; 2) засоби визначення нового типу; 3) засоби визначення абстрактних типів даних (А.Т.Д).; 4) засоби об’єктно-орієнтованого програмування (ООП). Покоління мов програмування високого рівня. Встроєні та користувацьки типи даних. Властивості вбудованих типів даних. Теорія структурної організації даних Хоара.) |
2 |
|
1.1.4 |
Тема 4. Види та методи абстракції в програмуванні. (Абстракціятадекомпозиція;їх взаємодія у процесі розробки програм. Поняття абстракції. Методи абстракції: абстракція крізь параметрізацію та абстракція крізь специфікацію. Види абстракції: процедурна абстракція, абстракція даних та абстракція крізь ітерацію. |
2 |
|
1.2. |
Змістовий модуль ІI. Теорія А.Т.Д. |
8 |
|
1.2.1 |
Тема 1. Поняття про абстрактні типи даних (А.Т.Д.). Специфікація А.Т.Д. (А.Т.Д. як засіб визначення даних. Історія виникнення поняття А.Т.Д. Чотири частини А.Т.Д,: 1) зовнішність; 2) абстрактний опис; 3) конкретний опис; 4) опис взаємовідносин між конкретним та абстрактним описом. Реалізація А.Т.Д. у мові CLU. Кластер як засіб абстракції даних у мові CLU. Специфікація А.Т.Д.). |
2 |
|
1.2.2 |
Тема 2.Процедурна абстракція. Специфікація процедурної абстракції. |
2 |
|
1.2.3 |
Тема 3. Поняття про виключні ситуації. Виключні ситуації як засіб спілкування програм. . (Поняття про виключну ситуацію. Специфікація виключних ситуацій. Реалізація овиключних ситуацій у мові CLU. Обробка виключних ситуацій. Використання виключних ситуацій для розробки стійких до помилок програм). |
2 |
|
1.2.4 |
Тема 4. Абстракція ітерації. ( Поняття про ітератори. Специфікація ітераторів. Ітератори у мові CLU. Реалізація ітераторів за допомогою генераторів.). |
2 |
|
1.3 |
Змістовий модуль ІII. Реалізація А.Т.Д. |
20 |
|
1.3.1 |
Тема 1 .Реалізація абстракції даних. (Функція абстракції та функція інваріант представлення. Абстрактний тип та тип подання. Функції UP та DOWN. Документування реалізації А.Т.Д.). |
4 |
|
1.3.2 |
Тема 2.Логічні специфікації. (Поняття про логічні специфікації. Вступ до верифікації програм. Поняття інваріанту циклу. Проектування циклів за допомогою інваріантів. Верифікація програм з циклами. Поняття часткової та повної коректності циклу. Функція декременту.). |
4 |
|
1.3.3 |
Тема 3. Аналіз програм з А.Т.Д. (Функція інваріант абстракції. Поняття повноти типу. Операції Equal, Similar та Copy.). |
4 |
|
1.3.4 |
Тема 4. Застосування методології розробки програм на базі А.Т.Д. у сучасних мовах програмування високого рівня. |
4 |
|
1.3.5 |
Тема 5. Специфікації та їх важливість на різних етапах існування програм. |
4 |
Необхідні методичні матеріали додаються.
ТЕМИ ПРАКТИЧНИХ (СЕМІНАРСЬКИХ) ЗАНЯТЬ
|
№ модуля, змістового модуля, теми |
Назва і короткий зміст змістового модуля, теми |
Кількість аудиторних годин |
|
1.1 |
Змістовий модуль І.Специфікація і реалізація розріджених матриць. |
4 |
|
1.1.1 |
Тема 1. Види розріджених матриць. |
2 |
|
1.1.2 |
Тема 2. Реалізація розріджених матриць. |
2 |
|
1.2. |
Змістовий модуль II. Специфікація і реалізація лінійних структур даних. |
4 |
|
1.2.1 |
Тема 1. Класифікаціялінійних структур даних. |
2 |
|
1.2.2 |
Тема 2. Реалізація лінійних структур даних. |
2 |
|
1.3 |
Змістовий модуль ІII. Специфікація і реалізація дерев пошуку. |
10 |
|
1.3.1 |
Тема 1. Класифікація дерев. |
2 |
|
1.3.2 |
Тема 2. Методи подання дерев. |
2 |
|
1.3.3 |
Тема 3. Обходи двійкових дерев. |
2 |
|
1.3.4 |
Тема 4. Реалізація наглядачів над деревами. |
2 |
|
1.3.5 |
Тема 5. Захист лабораторного модуля. |
2 |
Необхідні методичні матеріали додаються.
ТЕМИ ЛАБОРАТОРНИХ ЗАНЯТЬ
|
№ модуля, змістового модуля, теми |
Назва лабораторного заняття і короткий його зміст |
Кількість аудитор- них годин |
|
2.1 |
Специфікація і реалізація розріджених матриць. |
10 |
|
2.2 |
Специфікація і реалізація лінійних структур даних. |
8 |
|
3.1 |
Специфікація і реалізація лінійних дерев пошуку. |
12 |
|
|
Захист лабораторного модуля. |
6 |
Необхідні методичні матеріали до лабораторних робіт додаються.
ПЕРЕЛІК ПИТАНЬ ДЛЯ САМОСТІЙНОГО вивчення та розподіл часу самостійної роботи:
Розробіть подання для нижньої трикутної матиці;
Розробіть функцію абстракції для своєї нижньої трикутної матиці;
Розробіть функцію інваріант подання для своєї нижньої трикутної матиці;
Розробіть алгоритми побудови нижньої трикутної матиці на основі розроблених функцій абстракції та інваріанту подання;
Розробіть алгоритми модифікаторів для вашої нижньої трикутної матиці, що враховують розроблені функції абстракції та інваріант подання;
Розробіть алгоритми наглядачів для вашої трикутної матиці;
Розробіть подання для черги на базі масиву;
Розробіть функцію абстракції для своєї черги;
Розробіть функцію інваріант подання для своєї черги;
Розробіть алгоритми побудови черги на основі розроблених функцій абстракції та інваріанту подання;
Розробіть алгоритми модифікаторів для вашої черги, що враховують розроблені функції абстракції та інваріант подання;
Розробіть алгоритми наглядачів для вашої черги;
Розробіть подання для дерева пошуку на базі вказівників;
Розробіть функцію абстракції для свого дерева;
Розробіть функцію інваріант подання для свого дерева;
Розробіть алгоритми побудови дерева методом додавання у лист на основі розроблених функцій абстракції та інваріанту подання;
Розробіть алгоритми побудови дерева методом додавання у корінь на основі розроблених функцій абстракції та інваріанту подання
Розробіть алгоритми модифікаторів для вашого дерева, що враховують розроблені функції абстракції та інваріант подання;
Розробіть алгоритми наглядачів для вашої черги;
Розрахунок часу самостійної роботи рекомендується здійснювати за такою формою:
|
№ |
Вид роботи |
Кількість годин |
|
|
Види розріджених матриць та схеми їх реалізації. |
20 |
|
|
Класифікація лінійних структур даних та їх реалізація. |
10 |
|
|
Класифікація дерев пошуку та їх реалізація. |
30 |
|
|
Всього |
|
|
|
Підготовка до підсумкового контролю (екзамену) |
30 |
