РОБОЧА ПРОГРАМА НАВЧАЛЬНОЇ ДИСЦИПЛІНИ
_______CK12_Алгоритмізація та програмування, частина 2_________________
/код і назва навчальної дисципліни/
________________Перший (бакалаврський)______________________________
/рівень вищої освіти/
галузь знань_______________12 «Інформаційні технології»__________________
/шифр і назва/
спеціальність _______122 «Комп’ютерні науки та інформаційні технології»____
/шифр і назва /
спеціалізація__________________________________________________________
/шифр і назва /
вид дисципліни____обов’язкова___________________________________________________
(обов’язкова / за вибором)
мова викладання___українська____________________________________________________
Львів – 2016 рік
Робоча програма з навчальної дисципліни «Алгоритмізація та програмування, частина 2» для студентів Інституту комп’ютерних наук та інформаційних технологій.
Розробник:
_доцент кафедри ІСМ, к.т.н._____ __________________ /___В.А. Висоцька____/
/посада, науковий ступінь та вчене звання/ /підпис/ /ініціали та прізвище/
Робоча програма розглянута та схвалена на засіданні кафедри «Інформаційні системи та мережі»
Протокол від «25» серпня 2016 року № 1
Завідувач кафедри _____ІСМ_______ ____________________ /___В.В. Литвин_____/
/назва / /підпис/ /ініціали та прізвище /
Робоча програма розглянута та схвалена НМК спеціальності____________________
/шифр і назва/
Протокол від «____»________________2016 року № _____
Секретар НМК ___________________ /_____________________/
/підпис/ /ініціали та прізвище /
1. Структура навчальної дисципліни
Найменування показників |
Всього годин |
|
Денна форма навчання |
Заочна форма навчання |
|
Кількість кредитів/год. |
6/180 |
|
Усього годин аудиторної роботи, у т.ч.: |
96 |
|
|
48 |
|
|
– |
|
|
16 |
|
|
32 |
|
Усього годин самостійної роботи, у т.ч.: |
84 |
|
|
– |
|
|
1/42 |
|
|
– |
|
|
42 |
|
Екзамен |
1 |
|
Залік |
– |
|
Частка аудиторного навчального часу студента у відсотковому вимірі:
денної форми навчання – ____53%_________; заочної форми навчання – ___________
2. Мета та завдання навчальної дисципліни
2.1. Мета вивчення навчальної дисципліни
Дисципліна "Алгоритмізація та програмування, частина 2" призначена для вивчення методів та засобів програмування на основі мов Python, JavaScript та PHP згідно з новітніми принципами і тенденціями створення програмних продуктів.
Для досягнення необхідного рівня знань в навчальній дисципліні використовуються основні засоби впливу при засвоєнні навчального матеріалу, коли в процесі викладання дисципліни вирішуються задачі подання знань на інформаційних засадах у сукупності з елементами зворотного зв’язку та контролем за опануванням знань.
Основною метою викладання дисципліни є надання майбутнім фахівцям основ науково – теоретичних знань та практичних навичок з програмування сучасними алгоритмічними мовами високого рівня. В системі підготовки фахівця дисципліна займає особливе місце, оскільки засвоєння курсу складає перший найважливіший крок, абсолютно необхідний для успішного засвоєння подальших фахових дисциплін.
Набуття навичок роботи з основними об’єктами інформатики. Вивчення теоретичних основ і практичних алгоритмів дискретної математики, що застосовуються при побудові комп’ютерних програм. Отримання базових знань з комп’ютерних наук та інформаційних технологій.
2.2. Завдання навчальної дисципліни
Внаслідок вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати навчання:
- студент повинен знати та розуміти основні означення, твердження та теореми, способи доведення тверджень, галузі та способи застосування набутих знань з таких розділів:
- Базові поняття програмування на мові Python. Вступ до програмування на Python. Комп‘ютерна арифметика та робота на Python в консольному режимі. Керування логічною послідовністю виконання програми. Цикли while. Процедури та функції в Python. Складні структури даних : рядок, кортеж, список. Оператор for.
- Вивчення основ програмування на Python з застосуванням понять об‘єктно - орієнтовного програмування. Базові поняття об‘єктно - орієнтовного програмування та особливості ООП в Python. Застосування ООП в Python: файли, потоки, серіалізація об‘єктів.
- Основи комп‘ютерної графіки на Python. Базова віконна графіка Python. Векторна та растрова графіка. Базові поняття.
- Базові поняття програмування на С. Цілі числа як основний тип С. Базові поняття алгоритмічної мови програмування С. Базові поняття використання покажчиків.
- Обробка структурованих даних та послідовні файли в С. Символьні та строкові дані. Структуровані та динамічні типи в С. Робота з файловими структурами в С.
- Структури даних та алгоритми їх обробки. Послідовності: однозв‘язні та двозв‘язані списки. Графові структури даних: дерева.
- Алгоритми сортування та пошуку. Пошук. Основні алгоритми. Сортування. Основні алгоритми. Алгоритми пошуку в строках.
- Веб-програмування. HPML, XML, CSS, JavaScript, PHP, CMS.
- підготовлений фахівець повинен вміти застосовувати набуті знання для
- формулювання і розв’язування задач в галузі комп’ютерних наук,
- конструювання алгоритмів розв’язування прикладних задач,
- вивчення нових інформаційних технологій,
- побудови математичного опису прикладних проблем,
- аналізу результатів розв’язування задач.
- алгоритмізувати автоматичні процеси та аналізувати великі масиви даних
- застосовувати відомі методи та алгоритми вищої та дискртеної математики для дослідження предметної області
- розуміти математичні викладки супутніх та наступних навчальних дисциплін як бази даних, криптографія, основи програмування, чисельні методи, дослідження операцій, математична лінгвістика тощо.
- будувати власні алгоритми для аналізу даних, в тому числі Big Data, DataMining та систем штучного інтелекту.
Вивчення навчальної дисципліни передбачає формування та розвиток у студентів компетентностей:
Здатність використовувати теоретичні та фундаментальні знання, уміння і навички для успішного розв’язування складних спеціалізованих задач та практичних проблем під час професійної діяльності у галузі комп’ютерних наук та інформаційних технологій, ком’ютерної техніки та сучасних технологій проектування та програмування інформаційних систем, володіння навичками роботи з комп'ютером для вирішення задач спеціальності.
загальних:
- здатність навчатися;
- уміння спілкуватися усно та в письмовій формі українською мовою;
- здатність здійснювати пошук та аналізувати інформацію з різних джерел;
- уміння застосовувати знання в практичних ситуаціях;
- уміння приймати обґрунтовані рішення.
фахових:
- здатність застосовувати базові знання з фундаментальних наук: математики, фізики, електроніки для вирішення типових задач спеціальності;
- здатність застосовувати базові знання основних нормативно-правових актів та довідкових матеріалів, чинних стандартів і технічних умов, інструкцій та інших нормативно-розпорядчих документів в галузі інформаційних технологій;
- здатність використовувати методології та технології проектування, застосування та супроводу програмного забезпечення, підтримка їхнього життєвого циклу;
- здатність застосовувати знання математичних методів аналізу та синтезу складних об’єктів та систем із застосуванням сучасних методів інформаційних технологій;
- здатність застосовувати знання методів збору, обробки, аналізу, систематизації та зберігання науково-технічної інформації;
- здатність використовувати знання теоретичних основ управління та вміння використовувати їх для розроблення систем управління та їх компонентів, здатність оцінити та розрахувати надійність системи;
- здатність використовувати знання методів математичного моделювання та вміння використовувати їх для автоматизованого проектування складних об’єктів та систем.
- здатність адмініструвати системи автоматизованого проектування та вміти розробляти технічну документацію на об’єкт, який проектується.
- здатність використовувати знання особливостей технології виробництва мікросистемних пристроїв і вміння застосувати їх для проектування мікросистем;
- здатність ефективно вибирати належні напрями і відповідні методи для розв’язування задач в області інформаційних технологій та штучного інтелекту;
- здатність ефективно здійснювати вибір концептуальної моделі середовища інформаційної системи на основі методології штучного інтелекту,
- здатність ефективно здійснювати параметризацію компонентів середовища інформаційної системи, формувати вимоги відповідності інформаційної системи технічному завданню.
- здатність вивчати та критично оцінювати нові методології управлінні ІТ-проектами, ґрунтуючись на фахових у цих областях наукових літературних джерелах.
Результати навчання даної дисципліни деталізують такі програмні результати навчання:
- здатність продемонструвати знання і розуміння наукових і математичних принципів, що лежать в основі інформаційних технологій;
- здатність продемонструвати знання основ професійно-орієнтованих дисциплін спеціальності: методів та засобів сучасних інформаційних технологій, комп’ютерної техніки та сучасних технологій проектування та програмування інформаційних систем, математичних методів аналізу та синтезу складних об’єктів, методів збору, обробки, аналізу, систематизації та зберігання науково-технічної інформації, методів та засобів розподілених систем та паралельних обчислень, принципів і методів побудови та застосування комп’ютерних мереж, принципів web-технологій та методів і засобів їх використання для вирішення задач спеціальності;
- здатність продемонструвати поглиблені знання принаймні в одній з областей інформаційних технологій;
- здатність продемонструвати знання та навики щодо проведення експериментів, збору даних та моделювання у предметній області;
- здатність продемонструвати знання та розуміння методологій проектування інформаційних систем;
- здатність продемонструвати знання сучасного стану справ та новітніх технологій в галузі інформаційних технологій;
- здатність продемонструвати розуміння впливу технічних рішень в суспільному, економічному, соціальному і екологічному контексті;
- здатність продемонструвати знання основ економіки та управління проектами.
- здатність розробляти математичні моделі і алгоритми розпізнавання образів і класифікації об’єктів в інтелектуальних інформаційних системах в умовах проектування систем розпізнавання образів за допомогою відповідного математичного забезпечення, використовуючи процедури формального уявлення про систему;
- здатність розробляти бази знань в умовах проектування інтелектуальних систем за допомогою відповідного програмного забезпечення, використовуючи результати обстеження, запити, особливості обраного способу подання знань;
- здатність будувати моделі інформаційних потоків, проектувати сховища і простори даних, бази знань, використовуючи діаграмну техніку і стандарти розроблення інформаційних систем;
- здатність створювати математичні моделі і алгоритми прийняття рішень за допомогою алгоритмічного та програмного забезпечення, використовуючи машинне навчання, штучні нейронні мережі, еволюційне моделювання, генетичні методи оптимізації, метод індуктивного моделювання та математичний апарат нечіткої логіки.
2.3. Перелік попередніх та супутніх і наступних навчальних дисциплін
№ з/п |
Попередні навчальні дисципліни |
Супутні і наступні навчальні дисципліни |
1. |
|
Алгоритмізація та програмування, частина 1 |
2 |
|
Дискретна математика |
3 |
|
Чисельні методи |
3. Анотація навчальної дисципліни
Задача вивчення дисципліни полягає в тому, щоб навчити студента:
- на основі аналізу поставленої задачі розробляти необхідний механізм (алгоритм) функціонування програмної моделі задачі;
- визначати структуру даних для забезпечення інформаційних потреб цієї моделі;
- розробляти програмний код комп‘ютерної програми реалізації та налагоджувати розроблену програму.
В наслідок вивчення курсу студенти повинні:
- набути теоретичних знань та практичних навичок по розробці автономних комп‘ютерних програм з застосування мови Python та C;
- знати синтаксис мови Python та C, оператори керування ходом виконання програми, характеристики простих та складних типів даних в Python та C, базові принципи алгоритмізації задач, основи (елементи) об‘єктно орієнтованого програмування та його застосування, методи побудови багатомодульних програм та їх від налагодження.
- володіти навичками роботи з програмними оболонками розробки (проектування) програм на Python та C;
- вміти розробляти програми на мові Python та C, в тому числі програми ведення простих баз даних з застосуванням вбудованих механізмів роботи з даними системи Python та віконних додатків.
Програма курсу крім лекцій включає виконання циклу лабораторних робіт і курсову роботу. Метою лабораторних робіт є опанування технікою розробки та тестування простих програм з застосуванням мови Python та C, самостійна розробка і створення програм, які реалізують різні засоби використання типів даних високого рівня та сучасних методів керування програмним процесом. Метою курсової роботи є закріплення знань, набутих під час вивчення курсу та набуття практичних навичок в самостійному проектуванні та розробці програмного продукту з застосуванням мови Python та C.
В результаті вивчення дисципліни студеним повинні уміти:
- встановлювати системи Python та C на комп‘ютері та налаштовувати конфігурації операційної системи;
- здійснювати розробку програмного забезпечення на основі застосуванням систем розробки Python: IDLE, LCC, Visual C++;
- розробляти програми ведення простих баз даних з застосуванням вбудованих механізмів роботи з даними системи Python та розроблених систем керування даними користувача на мові C.
Зазначена дисципліна включена до циклу "Обов‘язкові дисципліни".
Матеріал курсу базується на знаннях, які отримали студенти під час вивченні основ інформатики в середньому навчальному закладі.
Для вивчення курсу "Алгоритмізація та програмування" студент повинен мати певні знання, вміння та навички роботи на ПК, а саме:
- мати практичний досвід роботи користувача з операційною системою MS Windows;
- вміти самостійно встановлювати програмне забезпечення;
- мати навички роботи з пакетом MS Office або аналогічним.
Матеріал курсу є базовим при подальшому вивченні студентами фахових дисциплін навчального плану. Отримані знання дозволять студентам використовувати методи програмування задач різного плану (чисельних методів, програмування задач оптимізації, побудови інформаційних систем, імітаційного моделювання, тощо) при вивченні інших інженерних дисциплін, виконанні курсових і дипломних робіт. У структурно-логічній схемі навчання зазначена дисципліна розміщена у 1 та 2 семестрах. Набуті студентами знання можуть бути використані у під час дипломного проектування.
Додатковою метою викладання дисципліни є надання майбутнім фахівцям основ веб-дизайну, веб-верстки та веб-програмування в інтернет, теоретичних знань та практичних навичок в кожній з цих областей. В системі підготовки фахівця дисципліна займає особливе місце, оскільки вона формує найважливіші практичні вміння з сучасного підходу до розробки програмних web - орієнтованих засобів в різних галузях сучасного постіндустріального суспільства. Матеріал дисципліни є фундаментом для отримання подальших знань студентами при вивченні курсів з основ алгоритмів та структур даних, об'єктно - орієнтованого програмування, а також “Проектування складних інформаційних об'єктів та систем”. Під час викладання дисципліни розглядаються механізми використання можливостей проектування інформаційних систем з використанням засобів web - серверів, мережевих серверів баз даних, сучасних програмних продуктів та технологій обміну між розгалуженими програмно - апаратними системами. Задача вивчення дисципліни полягає в тому, щоб навчити студента проектувати web - орієнтовані програмні продукти на сучасному рівні. Для цього в курсі викладаються наступні питання:
Детально розглядаються питання інформаційної архітектури, художнього оформлення сторінок їх верстки та програмування, використовуючи сучасні засоби проектівання. Розглядаються властивості сучасних версій мов розмітки HTML, XML, XHTML, технології каскадних таблиць стилів CSS, та використання їх можливостей в сучасному web - дизайні. Вивчаються основи мови програмування клієнтської частини JavaScript та фреймворку jQuery. Надаються базові знання та навички програмування серверної частин на базі мови програмування PHP та основні поняття і навички при проектуванні системи керування контентом (CMS). Отримані знання дозволять студентам використати сучасні методи проектування web-додатків. Програма курсу включає крім лекційного матеріалу виконання циклу лабораторних робіт. В результаті вивчення дисципліни студент повинен ЗНАТИ:
- теоретичні основи:
- інформаційної архітектури в інтернет,
- формування композиції сторінки
- мов розмітки HTML, XHTML XML, технології CSS
- мов програмування JavaScript та PHP
- фреймворку jQuery.
- проектування системи керування контентом
- мови запитів SQL.
- принципи побудови динамічних web-додатків;
В результаті вивчення дисципліни студент повинен УМІТИ:
- Розробляти структуру та дизайн web-сайтів;
- Створювати графічні шаблони сторінок в графічному редакторі.
- Оптимізувати графіку в графічному редакторі.
- Кодувати шаблони мовою HTML.
- Інсталювати і настроювати серверне ПО.
- Розробляти БД і систему керування контентом сайту.
- Програмувати на стороні сервера і клієнта.
4. Опис навчальної дисципліни
4.1. Лекційні заняття
№ з/п |
Назви тем |
Кількість годин |
|
ДФН |
ЗФН |
||
1. |
Базові поняття програмування в системі Python. Загальні відомості про програмування. Особливості програмування в системі Python. Версії мови Python. Встановлення системи Python на комп‘ютері. Діалоговий режим роботи Python. |
2 |
|
2. |
Комп‘ютерна арифметика та робота на Python в діалоговому режимі. Загальні поняття комп‘ютерної арифметики. Цілі числа та числа з "плаваючою крапкою". Консольна робота з арифметичними виразами в Python. Поняття змінної та операції присвоювання в Python. Значення None в Python. |
2 |
|
3. |
Керування логічною послідовністю виконання програми. Тип "логічний" та операції над даними цього типу. Таблиці істинності базових логічних операцій. Логічні операції в керуванні процесу виконання програми, оператори if-elif-else. Діаграми дії (UML) як засоби відображення механізму роботи програми. Початкові поняття циклів роботи програми за допомогою оператора while. |
2 |
|
4. |
Організація циклів за допомогою оператора while. Види циклів: перевірка закінчення циклу в кінці циклу, на початку циклу, безпосередньо в умовній частині оператору while. Прямі та зворотні відношення порядку та особливості їх застосування при організації циклу. Поняття верифікації програми та псевдокоду програми. |
2 |
|
5. |
Поняття "процедура" та "процедурно - орієнтоване" програмування. Поняття "процедура". Синтаксис об‘явлення та виклику процедур. Початкові поняття простору імен в Python. Особливості використання глобальних та локальних імен в Python. Розміщення аргументів по порядку та по імені при виклику процедури, завдання значення аргументу "по замовчуванню". Поняття про "процедурно - орієнтоване" програмування. |
2 |
|
6. |
Поняття "функція" та "функціональне програмування". Різниця понять "функція" в математиці та програмуванні. Поняття "функціонально - орієнтоване" програмування. Базові поняття рекурсії. Процедурна рекурсія, функціональна рекурсія. Lambda - визначення функції в Python. Генератори функцій та функціональні аргументи. |
2 |
|
7. |
Складні структури даних : рядок, кортеж, список. Базові поняття складних структур даних (послідовності): рядок, кортеж, список. Незмінні та змінні типи даних в Python. Базові методи доступу до складових складних типів даних. Базові операції з складними типами даних. Основні функції роботи з послідовностями та функції перетворення типів. |
2 |
|
8. |
Оператор for в Python. Побудова циклів в Python за допомогою оператора for. Генератори списків та генерація списків за допомогою оператора for. Особливості використання змінної циклу при роботі з списками. Перевірка типу даних змінної в Python. Основні вбудовані функціонали Python: map, filter. |
2 |
|
9. |
Базові поняття об‘єктно - орієнтовного програмування. Історія розвитку ООП. Особливості об‘єктно - орієнтовного підходу в середовищі Python: відмінності та схожість з іншими системами програмування. Діаграми класів UML. Позначення атрибутів екземплярів, методів екземплярів, основні поняття наслідування. |
2 |
|
10 |
Особливості та додаткові можливості ООП в Python. Визначення атрибутів екземплярів та атрибутів класів динамічно під час роботи програми. Вбудовані складні типи даних Python, як класи та змінні цих типів - як екземпляри класів. Вирази try-except try-finnaly. |
2 |
|
11. |
Вбудовані складні типи даних в Python як класи та об‘єкти. Основні методи рядків, списків та кортежів. Приклади використання методів вбудованих типів даних в практичному програмуванні. Тип даних "словник". Використання словників та списків для побудови баз даних. Програмне визначення типу змінної. Сортування даних. |
2 |
|
12. |
Системи введення виведення інформації в Python. Система файлового обміну даними в Python. Файли як об‘єкти. Поняття потоку даних. Використання потокового програмування для організації тестування програм. Принципи побудови програм на основі технології "розробка через тестування". Системи кодування символів та особливості використання різних систем кодування в Python. |
2 |
|
13. |
Поняття "серіалізація" в програмуванні. Поняття "серіалізація" в програмуванні: модуль pickle. Розробка простих баз даних на основі використання списків, словників, набору класів та модулю pickle. Загальні принципи побудови інформаційно - довідкових систем. Поняття про таблиці прецедентів, модель предметної області та діаграми послідовності. |
2 |
|
14. |
Основи системи віконної графіки на Python. Базова система графіки Tkl (Tkinter). Проста форма та основний цикл стеження за подіями віконного інтерфейсу. Основні графічні елементи: мітки, кнопки, поля введення та виведення тексту. Поняття менеджеру розміщення. |
2 |
|
15. |
Керування вікнами. Керування вікнами в Python. Варіанти компоновки графічного вікна. Діалогові вікна. Незалежні і модальні вікна. |
2 |
|
16. |
Розширення базової віконної графіки. Використання бібліотеки PMW. Використання базових елементів цієї бібліотеки для побудови віконних додатків. Розробка програм на основі передачі повідомлень. |
2 |
|
17. |
Поняття векторної графіки. Базові поняття комп'ютерної графіки. Елемент Canvas. Векторна графіка. Прийоми малювання і поняття графічного файлу і графічної об'єктної структури даних. |
2 |
|
18. |
Процес розробки веб-проекту. Веб-сайт, веб-додаток та типи сайтів. Класифікація сайтів за інтерактивністю та методиці проектування. Визначення проекту. Розробка структури сайту. Візуальне оформлення. Виробництво і контроль якості. Запуск і супроводження |
2 |
|
19. |
Інформаційна архітектура в web. Визначення і застосування ІА. Потреби користувачів та їх дії. Основні принципи. Анатомія ІА. Системи навігації, пошуку, організації, предметизацій та іменування. Тезауруси, керовані словники та метадані. Процес і методологія створення ІА. Дослідження, стратегія і проектування. |
2 |
|
20 |
Дизайн в web. Засоби вираження художнього образу. Форма, колір, текстура. Шрифт. Текст. Організація композиції, засоби гармонізації композиції. Рівновага, єдність та супідрядність. Ритм, контраст, нюанс, тотожність. Види композиції. Створення логотипів. |
2 |
|
21. |
Мови розмітки HTML, XHTML та XML. Техонологія CSS. Структура HTML-документа. Теги та їх атрибути. Блочні і строкові теги. HTML і XHTML. XML. СSS і документи. Селектори. Структура і каскад. Шрифт. Властивості тексту. Основи моделі візуального форматування. Відступи рамки і поля. Колір і фон. Вільне переміщення і позиціонування. |
2 |
|
22. |
JavaScript та фреймворк jQuery. Основи JavaScript. Лексична структура. Типи даних і значення. Змінні, вирази, оператори, інструкції. Об’єкти, масиви, функції, класи. Втуп до jQuery, селектори. Ефекти та події в jQuery. Маніпулюванням деревом DOM в jQuery. |
2 |
|
23. |
Веб-програмування. Принципи роботи інтернет. Адресування в інтернет. Сервер. Вузол. Порт. Домен. Хост. Віртуальний хост. Інтерфейс CGI і протокол HTTP. Основи мови PHP. Змінні, константи, типи даних. Вирази та операції. Робота з даними форми. Оператори. Асоціативні масиви. |
2 |
|
24. |
Системи управління контентом. CMS Joomla!. Функції і області видимості. Стандартні функції мови PHP. Строкові функції. Робота з файлами, каталогами та масивами. Сесії. Робота з СУБД MySQL. Робота з зображеннями. |
2 |
|
Усього годин |
48 |
|
4.2.1. Практичні заняття
№ з/п |
Назви тем |
Кількість годин |
|
ДФН |
ЗФН |
||
1. |
Базові поняття алгоритмічної мови програмування та покажчиків. Історичні відомості та місце мови С в сучасному програмуванні. Особливості синтаксису мови, процес побудови програми на С. Цілі числа. Директива #include. Базові оператори керування програмою. Масиви. Покажчики та зв‘язок покажчиків та масивів. |
2 |
|
2. |
Особливості передачі аргументів процедур та функцій. Динамічне визначення даних. Процедури та функції в С. Особливості передачі аргументів процедур та функцій. Модулі в С. Макрогенератор С та його використання. Динамічне визначення даних в С. Визначення типу "динамічний масив" та робота з цим типом. |
2 |
|
3. |
Символьні дані. Структури, об‘єднання, переліки. Символьні ані та їх опрацювання. Особливості використання символьних даних в С. Структуровані дані в С. Особливості визначення та використання. |
2 |
|
4. |
Особливості файлової структури в С. Файли з довільним доступом. Стандартні пристрої введення - виведення. Поняття файлу та потоку даних. Послідовні файли та особливості роботи з ними. Файли з довільним доступом. Побудова простих баз даних на основі файлів з довільним доступом |
2 |
|
5. |
Послідовності. Однозв'язні списки. Двозв‘язані списки. Загальне поняття послідовності. Розвинуті структури даних. Однозв'язні списки та варіанти їх реалізації. Двозв‘язані списки. Особливості використання та варіанти їх реалізації. |
2 |
|
6. |
Графові структури. Двійкові дерева. Нормування двійкових дерев. Інші типи дерев. Важливість графових структур в процесі організації даних. Поняття дерева. Двійкові дерева. Приклади їх застосування. Алгоритми роботи з двійковими деревами. Нормування двійкових дерев. |
2 |
|
7. |
Пошук. Основні алгоритми. Сортування. Основні алгоритми. Особливості використання алгоритмів сортування. Пошук в роботі комп‘ютерних систем. Основі алгоритми пошуку: послідовний, двійковий. Особливості застосування алгоритмів пошуку. Базові алгоритми сортування: вставкою, вилученням, бульбочкове, варіанти цих алгоритмів. Розвинуті алгоритми сортування: швидке сортування, топологічне сортування. Пряме сортування та сортування за допомогою ключів. |
2 |
|
8. |
Алгоритми пошуку в строках. Прискорені алгоритми пошуку в строках. Особливості пошуку в строках в порівнянні з пошуком в інших типах структур. Прості алгоритми пошуку. Розвинуті алгоритми пошуку в строках. Регулярні вирази (основні поняття). |
2 |
|
Усього годин |
16 |
|
4.2.2. Лабораторні заняття
№ з/п |
Назви тем |
Кількість годин |
|
ДФН |
ЗФН |
||
1. |
Інсталяція системи PortablePython_1.1_py2.5.4. Побудова лінійної програми формування таблиці множення за допомогою інструкції print. |
2 |
|
2. |
Побудова простої циклічної програми та програми з різними типами циклів |
2 |
|
3. |
Використання процедур та функцій |
2 |
|
4. |
Використання складних структур Python та оператора for |
2 |
|
5. |
Елементи ООП. Використання словників та потоків даних |
2 |
|
6. |
Використання модуля підтримки серіалізації. |
2 |
|
7. |
Освоєння віконної графіки. Керування вікнами. |
2 |
|
8. |
Використання розширеної віконної графіки. Векторна графіка в Python. |
2 |
|
9. |
Проста програма на С. Робота з одномірними масивами цілих. Робота з одномірними масивами цілих за допомогою покажчиків. |
2 |
|
10. |
Програма перекодування ср1251 - ср866 |
2 |
|
11. |
Робота з строковими даними. Робота з динамічними структурами. Послідовні файли. |
2 |
|
12. |
Однозв'язні списки. Двозв‘язані списки |
2 |
|
13. |
Дерева. Дерева - нормування. Розробка програми введення даних студентів групи (прізвище, ім‘я, по батькові), формування словника студентів в вигляді дійкового дерева. Організація збереження та відновлення структури дерева в зовнішньому файлі |
2 |
|
14. |
Пошук. Розробка програми формування послідовності цілих псевдо випадкових чисел та пошуку заданого числа в цій послідовності. Розробити два варіанту реалізації даних: за допомогою динамічних структур та масивів. |
2 |
|
15 |
Сортування. Розробка програми визначення частоти входження окремих букв в текстовий файл, сортування результатів за заданим алгоритмом та виведення їх на консоль. |
2 |
|
16. |
Пошук в строках. Побудова програми пошуку заданої строки в текстовому файлі. |
2 |
|
Усього годин |
32 |
|
4.3. Самостійна робота
№ з/п |
Найменування робіт |
Кількість годин |
|
ДФН |
ЗФН |
||
1. |
Підготовка до практичних та лабораторних занять |
10 |
10 |
2. |
Вивчення лекційного матеріалу |
10 |
10 |
3. |
Виконання індивідуальних домашніх завдань, заданих на практичних заняттях |
10 |
10 |
4. |
Виконання розрахункових та контрольних робіт, передбачених навчальним планом |
42 |
100 |
5. |
Підготовка до навчальних занять та контрольних заходів |
12 |
22 |
Усього годин |
84 |
152 |
5. Методи діагностики знань
- Проведення опитування на практичних заняттях
- Перевірка знань та виконаних робіт на лабораторних заняттях
- Проведення контрольних робіт за графіком та згідно робочої програми
- Перевірка індивідуальних розрахунково-графічних робіт за графіком та згідно робочої програми
- Проведення письмово екзамену згідно розкладу та перевірка робіт
- Проведення усної компоненти екзамену з додатковим опитуванням
6. Критерії оцінювання результатів навчання студентів
Розподіл балів для ДФН
Максимальна оцінка в балах |
||||
Поточний контроль (ПК) |
Екзаменаційний контроль |
Разом за дисципліну |
||
- розрахункова робота – 20 - робота на практичних заняттях – 10 - виконання лабораторних завдань – 20 |
Разом за ПК |
письмова компонента |
усна компонента |
|
50 |
40 |
10 |
100 |
|
50 |
40 |
10 |
100 |
7. Навчально-методичне забезпечення
- Дискретна математика в середовищі ВНС НУ «Львівська політехніка» http://vns.lp.edu.ua/course/index.php?categoryid=852
- Методичні вказівки до виконання лабораторних робіт.
- Методичні вказівки до виконання практичних робіт.
- Індивідуальні завдання до виконання розрахункової роботи.
- Індивідуальні завдання для виконання контрольних робіт.
8. Рекомендована література
Базова
- Бизли Девид М. Язык программирования Python. Справочник: Пер. с англ./ - К.: Издательство "ДиаСофт". 2000. - 336 с.
- Дональд Кнут Искусство программирования, том 1. Основные алгоритмы = The Art of Computer Programming, vol.1. Fundamental Algorithms. — 3-е изд. — М.: «Вильямс», 2006. — С. 720. — ISBN 0-201-89683-4
- Дональд Кнут, Роналд Грэхем, Орен Паташник Конкретная математика. Основание информатики. = Concrete Mathematics. A Foundation for Computer Science. — М.: Мир; Бином. Лаборатория знаний, 2006. — С. 703. — ISBN 5-94774-560-7
- Лесса Андре. Python. Руководство разработчика: Пер. с англ.: СпБ.: 2001. - 688 с.
- Лутц М. Программирование на Python. - Пер. с англ. - СПб: Символ-Плюс, 2002. - 1136 с, ил.
- Лутц М. Изучаем Python, 3-е издание - Пер. с англ. - СПб.: Символ-Плюс, 2009. - 848 с, ил.
- Россум Г., Дрейк Дж. и др. Язык программирования Python, / 2001 - 454 с.
- Хэзфилд Ричард, Кирби Лоуренс и др. Искусство программирования на С. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста: Пер. с англ. -К.: Издательство "Диасофт", 2001. -736с.
- Чаплыгин А.Н. Учимся программировать вместе с Питоном (Интернет - проект http://www.python.ru/2004-05/127.html ).
- Фаулер М. UML. Основы. 3-е издание. - Пер. с англ. - СПб: Символ-Плюс, 2009.
- Нікольський Ю.В. Дискретна математика / Ю.В. Нікольський, В.В. Пасічник, Ю.М. Щербина. – Львів.: Видавництво "Магнолія-2006", 2011. – 432 с.
- Луис Розенфельд, Питер Морвиль «Информационная архитектура в Интернете», 2-е изд.
- Дмитрий Кирсанов. «Web-design»
- Эрик Мейер «CSS - Каскадные таблицы стилей. Подробное руководство»
- Чак Муссиано, Билл Кеннеди «HTML и XHTML. Подробное руководство»
- Дэвид Флэнаган «JavaScript Подробное руководство»
- Чаффер, Шведберг – «Изучаем jQuery 1.3.»
- Д.В.Котеров,А.Ф.Костарев «PHP 5 в подлиннике», 2-е издание
- Мишель Е. Дэвис и Джон А. Филлипс «Изучаем PHP и MySQL», 2-е изд.
Допоміжна
- Брайан У. Керниган, Роб Пайк Практика программирования, 1996.
- Голуб Ален И. ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ… ВЫСТРЕЛИТЬ СЕБЕ В НОГУ. Правила программирования на Си и Си++. М. 2001.
- Мейер Б., Бодуэн К. Методы программирования: т.1,2. –М.: Мир, 1982.
- Сибуя М., Ямамото Т. Алгоритмы обработки данных. Пер. с анг. – М.: МИР, 1989.
- Ньюмен У., Спрулл Р. Основы интерактивной машинной графики. –М.: Издательство "Мир", 1976
- Э.Таненбаум. Многоуровневая организация ЭВМ. "Мир". 1979
- Форсайт Р. Паскаль для всех. Пер. с анг. – М.: Машиностроение, 1986. 288 с.
- Хэзфилд Ричард, Кирби Лоуренс и др. Искусство программирования на С. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста: Пер. с англ. -К.: Издательство "Диасофт", 2001. -736с.
- Фьюэр А. Задачи по языку Си. – М.: Финансы и статистика, 1985.
- О.Л. Голубева «Основы композиции»
- Григорян Е.А. «Основы композиции в прикладной графике»
- Виталий Устин «Композиция в дизайне»
- Марта Гилл «Гармония цвета. Естественные цвета»
- Марта Гилл «Гармония цвета. Пастельные тона»
- Йоханнес Иттен «Искуство цвета»
- Шпикерман «О шрифте»
- Александра Королькова «Живая типографика»
- Брингхерст Р. «Основы стиля в типографике»
- Тина Саттон, Брайз Вилен «Гармония цвета. Полное руководство по созданию цветовых комбинаций»
- Победин В. «Знаки в графическом дизайне»
- Сергей Макельский «Как создать и продать логотип»
- Adams Morioka «Logo Design WorkBook»
- Leslie Gabarga «Logo, Font and Lettring Bibble»
- Чак Муссиано, Билл Кеннеди «HTML и XHTML. Подробное руководство», 6-е издание
- Ши Хольцшлаг «Философия CSS-дизайна»
- Jon Duckett «Accessible XHTML and CSS Web Sites Problem Design Solution»
- Квентин Зервас – «Web 2.0. Создание приложений на PHP»
- М. Кузнецов «PHP5 практика разработки web-сайтов», 2-е изд.
- Дж. Флосснейгл «Профессиональное программирование на PHP»
- Л. Веллинг, Л. Томпсон «Разработка web-приложений с помощью PHP и MySQL», 3-е изд.
- Денис Колисниченко «Профессиональное программирование на PHP»
- Дополнительная литература
- Тим Конверс «PHP 5 и MySQL. Библия пользователя»
- Э. Гутманс, С. Баккен, Д. Ретанс «PHP 5 Профессиональное программирование»
- Мэтт Зандстра «Php Объекты, шаблоны и методики программирования» 2-е изд.
- Л. Аргерих, В Чой, Д. Коггсхол и др. «Профессиональное PHP4 программирование»
9. Інформаційні ресурси
- Дискретна математика в середовищі ВНС НУ «Львівська політехніка» http://vns.lp.edu.ua/course/index.php?categoryid=852
- Дискретна математика на інформаційному ресурсі Висоцької В.А. http://victana.lviv.ua/biblioteka/120-diskretna-matematika.
- Дискретна математика в КПІ (осінній семестр) http://oim.asu.kpi.ua/courses/discrete-math/#lectures
- Дискретна математика в КПІ (весняний семестр) http://oim.asu.kpi.ua/discrete-math-spring/
10. Узгодження з іншими навчальними дисциплінами
№ з/п |
Назва навчальної дисципліни, щодо якої проводиться узгодження |
Прізвище та ініціали викладача |
Підпис |
1. |
Алгоритмізація та програмування, частина 1 |
Висоцька В.А. |
|
2. |
Дискртена математика |
Висоцька В.А. |
|
3. |
Чисельні методи |
Висоцька В.А. |
|
4. |
|
|
|
5. |
|
|
|
6. |
|
|
|
11. Зміни та доповнення до робочої програми навчальної дисципліни
№ з/п |
Зміст внесених змін (доповнень) |
Дата і № протоколу засідання кафедри |
Примітки |
1. |
|
|
|
2. |
|
|
|
3. |
|
|
|
(Для ознайомлення з повним текстом статті необхідно залогінитись)