Главная
страница 1


Национальный исследовательский университет «Высшая школа экономики»


Программа дисциплины [Введите название дисциплины] для направления/ специальности
[код направления подготовки и «Название направления подготовки» ] подготовки бакалавра/ магистра/ специалиста


Правительство Российской Федерации


Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет информационных технологий и вычислительной техники, кафедра информационно-коммуникационных технологий


Программа дисциплины «Технологии программирования»
для специальности .

Автор программы:

Протасов С.И., stanislav.protasov@gmail.com
Одобрена на заседании кафедры

«30» августа 2012 г.

Зав. кафедрой ______________В.Н.Азаров

Рекомендована секцией УМС «Электроника» «___»____________ 20 г.

Председатель __________________________

Утверждена УС факультета информационных технологий

и вычислительной техники «___»_____________20 г.

Ученый секретарь________________________

Москва, 2012

Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы.




  1. Область применения и нормативные ссылки

Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.

Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов, обучающихся по специальности 230101.65 «Вычислительные машины, комплексы, системы и сети», специализаций «Компьютерные мультисреды» и «Сетевые технологии» изучающих дисциплину «Технологии программирования».
Программа разработана в соответствии с:

;

Образовательной программой .



Рабочим учебным планом университета по специальности 230101.65 «Вычислительные машины, комплексы, системы и сети» специализации «Компьютерные мультисреды» и специализации «Сетевые технологии», утвержденным в 2012г.


  1. Цели освоения дисциплины

Целями освоения дисциплины «технологии программирования» являются является получение студентами знаний по организации решения прикладных задач с применением программирования, о принципах построения программных систем, о методологиях программирования на языках высокого уровня, о методах командной проектной разработки программного обеспечения.




  1. Компетенции обучающегося, формируемые в результате освоения дисциплины

В результате освоения дисциплины студент должен:

Знать:

основные этапы и методологи разработки программного обеспечения;



базовые алгоритмы и структуры данных, приемы объектно-ориентированного программирования;

языки объектно-ориентированного и структурного программирования, языки графической записи и прототипирования систем (UML).

Уметь:

совершать обоснованный выбор технологии программирования для решения прикладных задач;



Иметь навыки (приобрести опыт):

проектирования архитектуры и разработки функциональных модулей программных комплексов;

работы в современных интегрированных инструментальных средах разработки (IDE);

командной разработки программного обеспечения.


В результате освоения дисциплины студент осваивает следующие компетенции:

Компетенция

Код по ФГОС/ НИУ

Дескрипторы – основные признаки освоения (показатели достижения результата)

Формы и методы обучения, способствующие формированию и развитию компетенции

Обоснованный выбор технологии разработки программного обеспечения

ОК-1

Даёт определение компилируемым и интерпретируемым программам, понимает значение и принципы сборки мусора, знает технологии web-разработки, умеет выбирать адекватный инструмент разработки

Лекции, практические занятия

Разработка приложений

ОК-2

Знает принципы построения web-страниц с помощью языков HTML, CSS, JavaScript. Способен создать web-страницу с использованием указанных технологий. Способен разработать оконное приложение на языке высокого уровная.

Лекции, практические занятия

Проектирование приложений

ОК-3

Способен проанализировать предметную область и спроектировать приложение. Способен разработать набор UML диаграмм для описания задачи

Лекции, практические занятия




  1. Место дисциплины в структуре образовательной программы

Настоящая дисциплина относится к циклу общепрофессиональных дисциплин.


Изучение данной дисциплины базируется на следующих дисциплинах:

Проектирование информационных систем, проектирование баз данных, объектно-ориентированное программирование




  1. Тематический план учебной дисциплины





Название раздела

Всего часов

Аудиторные часы

Самостоятельная работа










Лекции

Семинары

Практические занятия




1

Языки и среды программирования. Компилируемые и интерпретируемые ЯП. Виртуальные машины.

9

2




7




2

Методологии программирования. Низкоуровневые и высокоуровневые ЯП. ООП. Декларативные языки.

9

2




7




3

Введение в UML. Границы применимости языка UML. Основные диаграммы, порядок их разработки. Инструментарий.

7

2




5




4

Введение в высокоуровневые объектно-ориентированные языки на примере языков C# и JavaScript. Отличие языков с классами и прототипами.

12

8




4




5

Распределённые приложения и Web-разработка.

12

2




10




6

Паттерны программирования и проектирования. MVC, MVP, MVVM. Паттерны GoF. Антипаттерны.

8

4




4




7

Принципы и инструменты индивидуальной и командной разработки.

10

2




8




8

Введение в параллельное программирование

6

2




4




9

Введение в компьютерное зрение.

6

2




4




10

Введение в интерактивные системы и системы слабого ИИ

6

2




4






  1. Формы контроля знаний студентов




Тип контроля

Форма контроля

1 год

Параметры **







1

2

3

4




Текущий

(неделя)


Домашнее задание

*

*

*

*

4-5 задач по темам лекций

Итоговый

Зачет




*







Вопросы по пройденному материалу.




Итоговый экзамен










*

Экзамен в очной устно-практической форме

Критерии оценки знаний, навыков

В ходе выполнения домашних заданий студент должен продемонстровать способность создания интернет-приложений, используя навыки, полученные на лекциях и практических занятих. На итоговом зачете студент должен продемонстрировать знание материалов лекций. Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале.
Порядок формирования оценок по дисциплине

Преподаватель оценивает работу студентов на практических и лекционных занятиях: оценивается правильность решения задач на семинаре и выполнение самостоятельных докладов. Оценки за работу на практических и лекционных занятиях преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за работу на практических и лекционных занятиях определяется перед промежуточным или итоговым контролем - Оаудиторная. За одну правильно решённую задачу или ответ полагается до 0.3 баллов.

Преподаватель оценивает домашнюю работу студентов. Оценки за домашнюю работу студента преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за домашнюю работу определяется перед промежуточным или итоговым контролем – Одз.
Оценка за тему Отема рассчитывается как:

Отема = 1 Одз

Результирующая оценка за дисциплину рассчитывается следующим образом:

Орезульт = min(10, 0.8*Отема+ 0.2*Оэкз/зач+ Оаудиторная)


Способ округления: Результирующая оценки за дисциплину: в пользу студента.

Cтудент имеет возможность пересдать низкие результаты за текущий контроль или работу на занятиях, самостоятельную работу.

На пересдаче студенту не предоставляется возможность получить дополнительный балл для компенсации оценки за текущий контроль.

На зачете студент может получить дополнительный вопрос (дополнительную практическую задачу, решить к пересдаче домашнее задание), ответ на который оценивается в 1 балл.

В диплом выставляет результирующая оценка по учебной дисциплине.

Способ округления результирующей оценки по учебной дисциплине: в пользу студента.




  1. Содержание дисциплины

Темы лекционных занятий



№ п/п

Наименование раздела дисциплины

Ч.

Содержание раздела

1

Языки и среды программирования. Компилируемые и интерпретируемые ЯП. Виртуальные машины.

9

Принципы исполнения компилируемых и интерпретируемых программ. Виртуальные машины. Байт-код. Компиляция из командной строки. IDE

2

Методологии программирования. Низкоуровневые и высокоуровневые ЯП. ООП. Декларативные языки.

9

История языков программирования. Низкоуровневые и высокоуровневые языки программирования. Императивные, структурные, процедурные ЯП. ООП. Декларативные языки: функциональные и логические. Прочие ЯП: эзотерические, предметно-ориентированные, сверх-высокоуровневые.

3

Введение в UML. Границы применимости языка UML. Основные диаграммы, порядок из разработки. Инструментарий

7

История UML. Стандарты. Типы диаграмм. Генерация кода. UML и проектная документация. Инструменты создания диаграмм

4

Введение в высокоуровневые объектно-ориентированные языки на примере языков C# и JavaScript. Отличие языков с классами и прототипами.

12

Введение в C#. Принципы построения приложения. Реализация ООП в C#. Работа с параметрами командной строка. Работа с файлами. Работа с базой данных на примере ADO.NET. Введение в JavaScript. Принципы построения HTML-документа. DOM-модель. Включение JavaScript-кода. библиотека jQuery. Ajax.

5

Распределённые приложения и Web-разработка

12

Многоуровневые приложения. Распределённые системы. Архитектура клиент-сервер. Трёхзвенная архитектура.Кластер, GRID, cloud computing. Web-сервер и web-приложение

6

Паттерны программирования и проектирования. MVC, MVP, MVVM. Паттерны GoF. Антипаттерны

8

Паттерны программирования и проектирования. MVC, MVP, MVVM. Паттерны GoF. Антипаттерны

7

Принципы и инструменты индивидуальной и командной разработки

10

Участники процесса разработки ПО. Методики ведения проекта. Совместное написание программного кода. Хранилища кода. Контроль качества кода и программы.

8

Введение в параллельное программирование

6

Типы параллельных вычислений. Параллельные вычисления с общей памятью (CPU, GPGPU). Распределённая память Cluster, LAN, Grid. Облачные платформы

9

Введение в компьютерное зрение

6

Задачи КЗ. Математические модели камер. Понятие дальнометрии. Методы стерео-съёмки. Методы трёхмерной визуализации. Библиотека OpenCV

10

Введение в интерактивные системы и системы слабого ИИ.

6

Интерактивные системы. Примеры интерактивных систем. Задачи сильного и слабого ИИ


Темы практических занятий:

Решение задач с использованием различных средств разработки

UML

Язык C#.


Работа с файлами в C#

Язык JavaScript.

jQuery и HTML5.

Web-приложения

Паттерны программирования и проектирования

Проектная разработка

Параллельное программирование

Компьютерное зрение

Интерактивные системы

Образовательные технологии

Мастер-классы, ролевые игры, разбор практических задач и кейсов.

Оценочные средства для текущего контроля и аттестации студента

Примеры заданий для промежуточного/итогового контроля:




Краткое описание

Требования

Языки и среды программирования. Компилируемые и интерпретируемые ЯП. Виртуальные машины.

Вы работаете в отделе K, и вам в руки попал md5-хэш букво-циферного пароля злоумышленника.

Вам известно, что его длина не превышает 5 символов. Необходимо подобрать пароль.

021ede32166abc819685235c2bbaa5ca


Введение в UML. Границы применимости языка UML.

Составить набор проектной документации, состоящий из:

○ диаграммы вариантов использования

○ диаграммы основных классов (доменных сущностей)

○ диаграммы активности для одного любого use-case

(варианта использования) или диаграмма состояние для

одного класса

○ диаграмма компонентов системы и/или диаграмма

развёртывания

Примеры тем

1. Система складского учёта



Введение в высокоуровневые объектно-ориентированные языки на примере языков C# и JavaScript. Отличие языков с классами и прототипами.

Игра “жизнь” на таблицах или Canvas

Распределённые приложения и 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
Материально-техническое обеспечение дисциплины

Проектор, ноутбук


Вопросы к экзамену
Компилируемые, интерпретируемые языки. Виртуальные машины. Байт-код. JIT-компиляция.

Императивное и декларативное программирование. ООП. Прототипный подход в ООП.

UML. Типы диаграмм и их назначение. Нарисовать диаграмму по просьбе преподавателя.

Язык C#. Платформа .NET. Сборщик мусора. Написать приложение, работающее с файлом.

Язык Javascript. Document object model. Пример использования методов объекта document. Handler’ы и callback’и. Технология ajax. Реализовать страницу с интерактивным интерфейсом по просьбе преподавателя.

Распределённые и web-приложения. Клиент-серверная и трёхзвенная архитектура. Принцип работы web-сервера. Разработать приложение по просьбе преподавателя.

Паттерны программирования и проектирования. Назначение. Реализовать паттерн MVC или Singleton.

Инструменты командной разработки. Системы контроля версий, багтрекеры, билд и тестовые сервера. Роли в команде разработчиков.

Процессы и потоки. Deadlock. Кластеры. Технологии OpenMP и MPI.

Компьютерное зрение. Примеры практических задач. Алгоритм Хафа. Принципы формирования стереоизображения.



Системы искусственного интеллекта. Понятие сильного и слабого ИИ. Примеры ИИ в современных программных системах.



Смотрите также:
Программа дисциплины "Крупная корпорация как субъект публичной политики. Корпоративное гражданство"  для направления
365.99kb.
4 стр.
Программа дисциплины [Введите название дисциплины] для направления/ специальности [код направления подготовки и «Название направления подготовки»
202.33kb.
1 стр.
Программа дисциплины [Введите название дисциплины] для направления/ специальности [код направления подготовки и «Название направления подготовки»
169.34kb.
1 стр.
Программа дисциплины [Введите название дисциплины] для направления/ специальности [код направления подготовки и «Название направления подготовки»
362.03kb.
1 стр.
Программа дисциплины [Введите название дисциплины] для направления/ специальности [код направления подготовки и «Название направления подготовки»
805.63kb.
4 стр.
Программа дисциплины [Введите название дисциплины] для направления/ специальности [код направления подготовки и «Название направления подготовки»
129.88kb.
1 стр.
Программа дисциплины для направления/ специальности подготовки бакалавра/ магистра/ специалиста
198.75kb.
1 стр.
Программа дисциплины для направления/ специальности подготовки бакалавра/ магистра/ специалиста
163.49kb.
1 стр.
Программа дисциплины Итальянский язык для направления подготовки 080100. 62
386.12kb.
5 стр.
Программа дисциплины Китайский язык для направления подготовки 080100. 62
419.9kb.
5 стр.
Программа дисциплины Теория японского языка для направления/ специальности 032100. 62 Востоковедение, африканистика подготовки бакалавра
156.26kb.
1 стр.
Программа дисциплины Теория японского языка для направления/ специальности 032100. 62 Востоковедение, африканистика подготовки бакалавра
153.69kb.
1 стр.