ПУД_Технологии программированияx

реклама
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего
профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет информационных технологий и вычислительной техники
Программа дисциплины Технологии программирования
для направления 230100.62 «Информатика и вычислительная техника»
специализация «Информационно-коммуникационные технологии»
Автор программы:
Тув А.Л., старший преподаватель кафедры ИКТ
Одобрена на заседании кафедры "Информационнокоммуникационные технологий"
«___»____________ 201 г.
Зав. кафедрой ______________ В.Н. Азаров
Утверждена УС МИЭМ НИУ ВШЭ
«___»_____________201 г.
Ученый секретарь __________ В.П. Симонов
Москва, 2014
Настоящая программа не может быть использована другими подразделениями университета
и другими вузами без разрешения кафедры-разработчика программы.
1
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
1. Область применения и нормативные ссылки
Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и
умениям студента и определяет содержание и виды учебных занятий и отчетности.
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов
и студентов специальности «Информатика и вычислительная техника», обучающихся по
специализаций «Компьютерные мультисреды» и «Сетевые технологии» изучающих дисциплину
«Технологии программирования».
Программа разработана в соответствии с:



ГОС для направления подготовки дипломированного специалиста 654600 "Информатика
и вычислительная техника";
Образовательной программой специальности 230100.62 "Информатика и вычислительная
техника"
Рабочим учебным планом университета по специальности 230100.62 "Информатика и
вычислительная техника".
1. Цели освоения дисциплины
Целями освоения дисциплины «Технологии программирования» являются является получение
студентами знаний по организации решения прикладных задач с применением программирования, о
принципах построения программных систем, о методологиях программирования на языках
высокого уровня, о методах командной проектной разработки программного обеспечения.
2. Компетенции обучающегося, формируемые в результате освоения дисциплины
В результате освоения дисциплины студент должен:
Знать:
основные этапы и методологи разработки программного обеспечения;
базовые алгоритмы и структуры данных, приемы объектно-ориентированного программирования;
языки объектно-ориентированного и структурного программирования.
Методы тестирования разработанных программных средств.
Уметь:
совершать обоснованный выбор технологии программирования для решения прикладных задач;
Иметь навыки (приобрести опыт):
проектирования архитектуры и разработки функциональных модулей программных комплексов;
работы в современных интегрированных инструментальных средах разработки (IDE);
командной разработки программного обеспечения.
В результате освоения дисциплины студент осваивает следующие компетенции:
Компетенция
2
Код по ФГОС/ Дескрипторы
НИУ
признаки
(показатели
результата)
–
основные Формы и методы
освоения обучения,
достижения способствующие
формированию
и
развитию
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
компетенции
Обоснованный выбор ОК-1
технологии
разработки
программного
обеспечения
Даёт
определение Лекции, практические
компилируемым
и занятия
интерпретируемым
программам,
понимает
значение и принципы сборки
мусора, знает технологии
web-разработки,
умеет
выбирать
адекватный
инструмент разработки
Разработка
приложений
ОК-2
Знает принципы построения Лекции, практические
web-страниц с помощью занятия
языков
HTML,
CSS,
JavaScript. Способен создать
web-страницу
с
использованием указанных
технологий.
Способен
разработать
оконное
приложение
на
языке
высокого уровная.
Проектирование
приложений
ОК-3
Способен проанализировать Лекции, практические
предметную
область
и занятия
спроектировать приложение.
3. Место дисциплины в структуре образовательной программы
Настоящая дисциплина относится к циклу общепрофессиональных дисциплин.
Изучение данной дисциплины базируется на следующих дисциплинах:
Проектирование информационных систем, проектирование баз данных, объектно-ориентированное
программирование
4. Тематический план учебной дисциплины
№
1
3
Название раздела
Всего
часов
Аудиторные часы
Самосто
ятельная
работа
Итого
Лекции
Самосто
ятельная
работа
Обеспечение
надежности 8
программных средств – продукт
технологии
программирования.
Источники ошибок программного
4
Семинар Практич
ы
еские
занятия
4
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
средства
2
Общие
принципы
программных средств.
разработки 12
4
8
3
Описание программного средства и 12
методы спецификации семантики
функций.
4
8
4
Архитектура программного средства.
14
4
10
5
Разработка структуры программы и 12
модульное программирование
4
8
6
Тестирование
и
программного средства.
отладка 12
4
8
7
Низкоуровневые и высокоуровневые 14
языки
программирования(
ЯП).
Компилируемые и интерпретируемые
ЯП. Виртуальные машины.
4
10
8
Введение
в
высокоуровневые 28
объектно-ориентированные языки на
примере
языков
C++.
Интегрированные среды быстрой
разработки приложений.
8
10
10
5
Распределённые приложения и Web- 20
разработка.
2
8
10
6
Принципы
и
инструменты 10
индивидуальной
и
командной
разработки. Контроль версий
2
Итого
36
14
18
5. Формы контроля знаний студентов
Тип
контроля
Форма
контроля
Учебный год
Параметры **
1 семестр 2 семестр
Текущий
Домашнее
задание
1
-
4-5 задач по темам лекций
Текущий
Контрольная 1
работа
-
Письменная работа 90 минут
4
90
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
Итоговый
Зачет
1
-
Устный зачет
Критерии оценки знаний, навыков
В ходе выполнения домашних заданий студент должен продемонстровать способность создания
интернет-приложений, используя навыки, полученные на лекциях и практических занятих. На
итоговом зачете студент должен продемонстрировать знание материалов лекций. Оценки по всем
формам текущего контроля выставляются по 10-ти балльной шкале.
Порядок формирования оценок по дисциплине
Преподаватель оценивает работу студентов на практических и лекционных занятиях: оценивается
правильность решения задач на семинаре и выполнение самостоятельных докладов. Оценки за
работу на практических и лекционных занятиях преподаватель выставляет в рабочую ведомость.
Накопленная оценка по 10-ти балльной шкале за работу на практических и лекционных занятиях
определяется перед промежуточным или итоговым контролем - Оаудиторная. За одну правильно
решённую задачу или ответ полагается до 0.3 баллов.
Преподаватель оценивает домашнюю работу студентов. Оценки за домашнюю работу студента
преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за
домашнюю работу определяется перед промежуточным или итоговым контролем – Одз.
Оценка за тему Отема рассчитывается как:
Отема = 1 Одз
Результирующая оценка за дисциплину рассчитывается следующим образом:
Орезульт = min(10, 0.8*Отема+ 0.2*Оэкз/зач+ Оаудиторная)
Способ округления: Результирующая оценки за дисциплину: в пользу студента.
Cтудент имеет возможность пересдать низкие результаты за текущий контроль или работу на
занятиях, самостоятельную работу.
На пересдаче студенту не предоставляется возможность получить дополнительный балл для
компенсации оценки за текущий контроль.
На зачете студент может получить дополнительный вопрос (дополнительную практическую задачу,
решить к пересдаче домашнее задание), ответ на который оценивается в 1 балл.
В диплом выставляет результирующая оценка по учебной дисциплине.
Способ округления результирующей оценки по учебной дисциплине: в пользу студента.
6. Содержание разделов дисциплины
Темы лекционных занятий
№ п/п
Наименование
раздела Ч.
дисциплины
1
Обеспечение
надежности 8
программных
средств.Источники ошибок
программного средства
5
Содержание раздела
Определение
программы,
как
формализованного
процесса
обработки
данных.Понятие
программного
средства.
Неконструктивность понятия «правильная
программа».
Надежность
программного
средства. Неправильный перевод информации
как причина ошибок в программном средстве.
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
2
Общие
разработки
средств.
3
Описание
программного 12
средства
и
методы
спецификации
семантики
функций.
4
Языки
и
среды 9
программирования.
Компилируемые
и
интерпретируемые
ЯП.
Виртуальные машины.
Методологии
9
программирования.
Низкоуровневые
и
высокоуровневые ЯП. ООП.
Декларативнвые языки.
5
4
5
6
7
принципы 12
программных
Введение
в
в 12
высокоуровневые объектноориентированные языки на
примере
языков
C++.
Отличие языков с классами
и прототипами.
Распределённые
12
приложения
и
Webразработка
Паттерны
8
программирования
и
проектирования.
MVC,
MVP, MVVM. Паттерны
GoF. Антипаттерны
Принципы и инструменты 10
индивидуальной
и
командной разработки
8
Введение в параллельное 6
программирование
9
Введение в компьютерное 6
зрение
6
Жизненный цикл программного средства.
Понятие качества программного средства (
ПС).Методы упрощения создаваемого ПС.
Контроль принимаемых решений.
Внешнее
описание
ПС.
Определение
требований к ПС. Спецификация качества
программного
средства.
Функциональная
спецификация
программного
средства.
Основные подходы к спецификации семантики
функций. Операционная, денотационная и
оперативная семантики.
Принципы исполнения компилируемых и
интерпретируемых программ. Виртуальные
машины. Байт-код. Компиляция из командной
строки. IDE
История
языков
программирования.
Низкоуровневые и высокоуровневые языки
программирования.
Императивные,
структурные,
процедурные
ЯП.
ООП.
Декларативные языки: функциональные и
логические. Прочие ЯП: эзотерические,
предметно-ориентированные,
сверхвысокоуровневые.
Введение в C++. Принципы построения
приложения. Реализация ООП в C++. Работа с
параметрами командной строка. Работа с
файлами. Работа с базой данных на примере
ADO.NET.
Многоуровневые приложения. Распределённые
системы.
Архитектура
клиент-сервер.
Трёхзвенная архитектура.Кластер, GRID, cloud
computing. Web-сервер и web-приложение
Паттерны
программирования
и
проектирования.
MVC,
MVP,
MVVM.
Паттерны GoF. Антипаттерны
Участники процесса разработки ПО. Методики
ведения проекта. Совместное написание
программного
кода.
Хранилища
кода.
Контроль качества кода и программы.
Типы
параллельных
вычислений.
Параллельные вычисления с общей памятью
(CPU, GPGPU). Распределённая память Cluster,
LAN, Grid. Облачные платформы
Задачи КЗ. Математические модели камер.
Понятие дальнометрии. Методы стерео-
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
10
Введение в интерактивные 6
системы и системы слабого
ИИ.
съёмки. Методы трёхмерной визуализации.
Библиотека OpenCV
Интерактивные
системы.
Примеры
интерактивных систем. Задачи сильного и
слабого ИИ
Темы практических занятий:
Решение задач с использованием различных средств разработки
UML
Язык C#.
Работа с файлами в C#
Язык JavaScript.
jQuery и HTML5.
Web-приложения
Паттерны программирования и проектирования
Проектная разработка
Параллельное программирование
Компьютерное зрение
Интерактивные системы
Образовательные технологии
Мастер-классы, ролевые игры, разбор практических задач и кейсов.
Оценочные средства для текущего контроля и аттестации студента
Примеры заданий для промежуточного/итогового контроля:
Краткое описание
Требования
Языки и среды программирования. Вы работаете в отделе K, и вам в руки попал md5-хэш
Компилируемые и интерпретируемые букво-циферного пароля злоумышленника.
ЯП. Виртуальные машины.
Вам известно, что его длина не превышает 5
символов. Необходимо подобрать пароль.
021ede32166abc819685235c2bbaa5ca
Введение
в
UML.
применимости языка UML.
7
Границы Составить набор проектной документации,
состоящий из:
○ диаграммы вариантов использования
○ диаграммы основных классов (доменных
сущностей)
○ диаграммы активности для одного любого use-case
(варианта использования) или диаграмма состояние
для одного класса
○ диаграмма компонентов системы и/или диаграмма
развёртывания
Примеры тем:
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
1. Система складского учёта
Введение в высокоуровневые объектно- Игра “жизнь” на таблицах или Canvas
ориентированные языки на примере
языков C# и JavaScript. Отличие языков
с классами и прототипами.
Распределённые приложения и Web- Напишите сервис online-разархивирования.
разработка.
Пользователь загружает архив,
например, 7zip, а ему предоставляется возможность
загрузить файлы из архива. Желателен ajax
Введение
в
параллельное Реализовать преобразование Хафа для поиска
программирование.
Введение
в окружностей на изображении с использованием
параллельное программирование
параллельных вычислений.
Учебно-методическое и информационное обеспечение дисциплины
Базовый учебник
Дональд Кнут. Искусство программирования 1-3 том. Вильямс, 2010.
Основная литература
www.w3.org – Консорциум WWW, технологии и стандарты
parallel.ru – материалы по параллельному программированию
Дино Эспозито. Microsoft ASP.NET 2.0. Углубленное изучение, Питер, 2007
Дино Эспозито: Разработка веб-приложений с использованием ASP.NET и AJAX, Питер, 2012
jquery.com – Фреймворк JQuery
Программные средства
Для успешного освоения дисциплины, студент использует следующие программные средства:
Microsoft Visual Studio 2010, StarUML
Материально-техническое обеспечение дисциплины
Проектор, ноутбук
8
Национальный
исследовательский
университет
«Высшая
школа
экономики»
Программа дисциплины “ Технологии программирования“ для направления 230100.62
«Информатика и вычислительная техника» подготовки бакалавров.
Вопросы к экзамену
Компилируемые, интерпретируемые языки. Виртуальные машины. Байт-код. JIT-компиляция.
Императивное и декларативное программирование. ООП. Прототипный подход в ООП.
UML. Типы диаграмм и их назначение. Нарисовать диаграмму по просьбе преподавателя.
Язык C#. Платформа .NET. Сборщик мусора. Написать приложение, работающее с файлом.
Язык Javascript. Document object model. Пример использования методов объекта document.
Handler’ы и callback’и. Технология ajax. Реализовать страницу с интерактивным интерфейсом по
просьбе преподавателя.
Распределённые и web-приложения. Клиент-серверная и трёхзвенная архитектура. Принцип работы
web-сервера. Разработать приложение по просьбе преподавателя.
Паттерны программирования и проектирования. Назначение. Реализовать паттерн MVC или
Singleton.
Инструменты командной разработки. Системы контроля версий, багтрекеры, билд и тестовые
сервера. Роли в команде разработчиков.
Процессы и потоки. Deadlock. Кластеры. Технологии OpenMP и MPI.
Компьютерное зрение. Примеры практических задач. Алгоритм Хафа. Принципы формирования
стереоизображения.
Системы искусственного интеллекта. Понятие сильного и слабого ИИ. Примеры ИИ в современных
программных системах.
9
Скачать