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

advertisement
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Департамент Прикладной математики
Рабочая программа дисциплины Алгоритмизация и программирование
для образовательной программы Прикладная математика
направления подготовки 01.03.04 «Прикладная математика»
уровень бакалавр
Разработчики программы
Гришкина М.П., к.т.н., mgrishkina@hse.ru
Сластников С.А., к.т.н., sslastnikov@hse.ru
Одобрена на заседании департамента Прикладной математики «___»____________ 2015 г.
Руководитель департамента Белов А.В.________
Рекомендована Академическим советом образовательной программы
«___»____________ 2015 г., № протокола_________________
Утверждена «___»____________ 2015 г.
Академический руководитель образовательной программы
Манита Л.А. _________________
Москва, 2015
Настоящая программа не может быть использована другими подразделениями университета и
другими вузами без разрешения подразделения-разработчика программы.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
1
Область применения и нормативные ссылки
Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 01.03.04 «Прикладная математика» подготовки бакалавра изучающих дисциплину Алгоритмизация и программирование.
Программа разработана в соответствии с:
 ФГОС для направления 01.03.04 «Прикладная математика» подготовки бакалавра.
 Рабочим учебным планом университета по направлению подготовки 01.03.04 «Прикладная математика», утвержденным в 2015 г.
2
Цели освоения дисциплины
Целями освоения дисциплины Алгоритмизация и программирование является ознакомление
студентов с методами решения прикладных задач и их реализации на языке программирования. В
процессе изучения дисциплины студенты приобретают навыки проектирования и программирования компьютерных приложений, которые будут использоваться при выполнении различных заданий и работ по дисциплинам, изучаемым на последующих курсах.
3
Компетенции обучающегося, формируемые в результате освоения дисциплины
В результате освоения дисциплины студент должен:
 Знать:
 Основы информатики.
 Основные структуры данных и методы их обработки.
 Различия между языками программирования высокого и низкого уровня.
 Язык программирования Си.
 Набор функций стандартных библиотек.
 Уметь:
 Формализовать прикладную задачу, выбирать для неё подходящие структуры данных и
алгоритмы обработки.
 Программировать алгоритмы, используя средства языков высокого уровня.
 Разрабатывать тестовые случаи и сценарии.
 Иметь навыки (приобрести опыт)
 В разработке программ для ЭВМ на языке Си.
 В проведении отладки и тестирования разработанных программ.
 В проведении анализа получаемых результатов и оформлении документации на программу.
В результате освоения дисциплины студент осваивает следующие компетенции:
Компетенция
Стремление к саморазвитию, повышению сво-
Код по Дескрипторы – основные признаки
ФГОС/ освоения (показатели достижения
НИУ
результата)
ОК-9
Демонстрирует
Формы и методы обучения,
способствующие формированию и развитию компетенции
Самостоятельная работа,
выполнение лаборатор-
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
Компетенция
Код по Дескрипторы – основные признаки
ФГОС/ освоения (показатели достижения
НИУ
результата)
ей квалификации и мастерства
Использует основные
ОК-12
законы естественнонаучных дисциплин в
профессиональной деятельности, применять
методы математического
анализа и моделирования, теоретического и
экспериментального исследования
Готовность к самостояПК-1
тельной работе
Способен использовать
ПК-2
современные прикладные программные средства и осваивать современные технологии программирования
Способен использовать
ПК-3
стандартные пакеты
прикладных программ
для решения практических задач на ЭВМ, отлаживать, тестировать
прикладное программное обеспечение
Способен и готов деПК-5
монстрировать знания
современных языков
программирования, операционных систем,
офисных приложений,
Интернета, способов и
механизмов управления
данными; принципов
организации, состава и
схемы работы операционных систем.
Знает основные положе- ПК-11
ния, законы и методы
естественных наук; способен выявить естественнонаучную сущность проблем, возни-
Владеет и применяет
Формы и методы обучения,
способствующие формированию и развитию компетенции
ных, домашних и контрольных работ
Самостоятельная работа,
выполнение лабораторных, домашних и контрольных работ
Демонстрирует
Самостоятельная работа
Владеет и применяет
Лекции, лабораторные работы, выполнение контрольных и домашних заданий
Владеет и применяет
Самостоятельная работа,
выполнение лабораторных, домашних и контрольных работ
Владеет, применяет, обосновывает, интерпретирует и оценивает
Лекции, самостоятельная
работа, выполнение лабораторных, домашних и
контрольных работ
Владеет, применяет, обосновывает, интерпретирует и оценивает
Самостоятельная работа,
выполнение лабораторных, домашних и контрольных работ
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
Компетенция
кающих в ходе профессиональной деятельности, готов использовать
для их решения соответствующий естественнонаучный аппарат.
Готов применять математический аппарат для
решения поставленных
задач, способен применить соответствующую
процессу математическую модель и проверить ее адекватность в
исследовательской и
прикладной деятельности
4
Код по Дескрипторы – основные признаки
ФГОС/ освоения (показатели достижения
НИУ
результата)
ПК-12
Владеет, применяет, обосновывает, интерпретирует и оценивает
Формы и методы обучения,
способствующие формированию и развитию компетенции
Самостоятельная работа,
выполнение лабораторных, домашних и контрольных работ
Место дисциплины в структуре образовательной программы
Настоящая дисциплина относится к циклу «Профессиональные дисциплины» и блоку дисциплин, обеспечивающих базовую подготовку.
Изучение данной дисциплины базируется на следующих дисциплинах:
 Основы линейной алгебры;
 Математический анализ;
 Линейная алгебра и аналитическая геометрия;
 Дискретная математика.
Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и
компетенциями:
 знать основы информатики и ИКТ;
 знать основы линейной алгебры;
 знать элементы математической логики;
 уметь использовать программные и аппаратные средства информатики.
Основные положения дисциплины должны быть использованы в дальнейшем при изучении
следующих дисциплин:
 Дискретная математика
 Численные методы
 Методы оптимизации
 Операционные системы
 Базы данных
 Учебная и производственная практики
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
5
Тематический план учебной дисциплины
Аудиторные часы
Всего
часов
№
Название раздела
1
Парадигмы программирования. Общие
принципы разработки программного обеспечения.
Базовые понятия императивного программирования. Основы программирования на
языке Си.
Массивы в языке Си. Строки и их обработка.
Указатели и динамическая память.
Структурные типы данных в языке Си.
Ссылочные и древовидные типы данных.
2
3
4
5
6
7
Лабораторные
Лекции работы
21
10
11
48
10
8
30
68
12
16
40
35
6
4
25
58
18
43
8
31
8
304
72
10
Организация ввода/вывода в языке Си. Потоки. Файлы.
30
10
Абстрактные типы данных. Графы
25
3
Всего
6
20
51
Формы контроля знаний студентов
Тип контроля
Текущий
(2 неделя)
Текущий
(3 неделя)
Текущий
(3 неделя)
Текущий
(3 неделя)
Промежуточный
Форма контроля
Домашнее
задание
Домашнее
задание
Домашнее
задание
Домашнее
задание
Экзамен
Промежуточный
Экзамен
1
*
Самостоятельная
работа
1 год
2 3
Параметры
4
*
*
*
*
*
Срок выполнения 2 недели
Срок выполнения 3 недели
Срок выполнения 3 недели
Срок выполнения 2 недели
Устный экзамен с решением задач
Устный экзамен с решением задач
181
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
6.1
Критерии оценки знаний, навыков
Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале.
Для формирования практических навыков программирования проводятся лабораторные работы, семинары и выполняются домашние задания. При этом студент должен продемонстрировать
не только уровень знаний, но и результаты самостоятельной работы: стремление к выполнению
профессиональной деятельности (ОК-9), способность к поиску информации (ПК-1), использование
для выполнения заданий знаний законов естественнонаучных дисциплин и компьютерных технологий (ОК-12).
Основной целью проведения лабораторных работ и семинаров является знакомство студентов с архитектурой современных ЭВМ, а также приобретение опыта практической разработки программ на языке Си (ПК-2, ПК-3, ПК-5). При выполнении лабораторных работ закрепляются навыки
проектирования, программирования и документирования решений прикладных, в том числе математических, задач с помощью ЭВМ (ПК-11, ПК-12).
С целью текущего контроля успеваемости предусмотрена защита лабораторных работ.
Оценка за лабораторную работу учитывает:
 Насколько точно студент выполнил задание, сформулированное в лабораторной работе;
 Степень и полноту усвоенных навыков работы со средствами разработки и отладки программ;
 Насколько слушатель правильно и аргументировано ответил на все вопросы при обсуждении
выполненного задания;
 Качество оформления документации к программе и/или отчета по решению поставленной задачи.
С целью промежуточного контроля успеваемости предусмотрено выполнение и защита курсовой работы. Оценка за эту работу учитывает:
 Насколько точно студент выполнил задание, сформулированное в задании;
 Степень и полноту усвоенных навыков работы со средствами разработки и отладки программ;
 Степень освоения разделов курса, необходимых для выполнения задания;
 Насколько слушатель правильно и аргументировано ответил на все вопросы при обсуждении
выполненного задания;
 Качество оформления документации к программе и/или отчета по решению поставленной задачи.
6.2
Порядок формирования оценок по дисциплине
Ниже приведена таблица формирования оценки по курсу:
Промежуточная оценка 1 модуль:
Опромежуточная1 = 0,5*Онакопленная1+ 0,5*Оэкзамен
где накопленная оценка за 1 модуль – среднее арифметическое оценок за все выполненные
лабораторные работы (N=4), контрольную работу и домашнее задание
Онакопленная1= ( Оi лабораторная работа+Ок/р +Одз)/(N+2)
Промежуточная оценка 2 модуль:
Опромежуточная2 = 0,5*Онакопленная2+ 0,5*Оэкзамен
где накопленная оценка за 2 модуль – среднее арифметическое оценок за все выполненные
лабораторные работы (N=3), контрольную работу и домашнее задание
Онакопленная2= ( Оi лабораторная работа+Ок/р +Одз)/(N+2)
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
Промежуточная оценка 3 модуль:
Опромежуточная3 = Окурсовая работв
Оценка 4 модуль:
Опромежуточная4 = 0,5*Онакопленная4+ 0,5*Оэкзамен
где накопленная оценка за 4 модуль – среднее арифметическое оценок за все выполненные
лабораторные работы (N=6), контрольные работы и домашнее задание на протяжении 3 и 4
модулей
Онакопленная1= ( Оi лабораторная работа+Ок/р +Одз)/(N+4)
7
Содержание дисциплины
Модуль № 1
№ не- Тема лекционных занятий
дели
1
Раздел 2
Сведения о лексемах и алфавите,
идентификаторах, ключевых
словах языка Си. Операторы
объявления переменных. Стандартные функции консольного
ввода/вывода. Операции и выражения
2
Раздел 2
Структура программы на языке
Си. Оператор присваивания,
условный оператор, составной
оператор. Логические операции.
3
4
5
Лабораторная работа
Раздел 2
Создание и отладка
программы вычисления
математического выражения.
Форматный
ввод/вывод (2 часа)
Раздел 2
Программа определения
принадлежности
точки заданной области
(2 часа)
Домашнее задание
Определить и нарисовать график функции
y=f(x) по фрагменту
программы, содержащей вложенные условные операторы.
Раздел 2
Раздел 2
Операторы цикла (параметризо- Организация вычислеванный цикл, циклы с предусло- ний по рекуррентным
вием, постусловием). Операторы формулам с помощью
continue и break, оператор switch. различных циклов
(4 часа)
Раздел 2
Назначение функций, виды
функций, описание и определение функций. Формальные и
фактические параметры. Рекурсия
Раздел 3
Раздел 3
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
6
7
Одномерные массивы. Определение. Поиск информации. Обработка
Раздел 3
Модификация одномерных массивов
Раздел 3
Сортировка массивов, построение новых массивов из исходных
Обработка данных в
одномерном массиве.
Поиск информации (4
часа)
Раздел 2
Контрольная работа
Базовые понятия языка
Си. Операторы. Функции (2 часа)
Модуль № 2
№ не- Тема лекционных занятий
дели
1
Раздел 3
Двумерные массивы
2
Раздел 3
Модификация двумерных
массивов
3
Раздел 4
Связь между именами, адресами и значениями переменных. Указатели, адресная арифметика. Динамическая память
4
Раздел 4
Массивы и указатели.
Динамические массивы
5
6
7
8
Раздел 1
Компиляторы и интерпретаторы. Этапы трансляции.
Препроцессорные средства
Раздел 1
Парадигмы и языки программирования
Раздел 3
Одномерные массивы символов. Библиотеки стандартных функций обработки строк.
Раздел 5
Структуры данных в Си.
Операция уточнения.
Модуль № 3
Лабораторная работа
Раздел 3
Модификация одномерных массивов (4 часа)
Раздел 3
Операции с мультимножествами, представленными одномерными массивами (4 часа)
Домашнее задание
Динамические двумерные массивы. Удаление/добавление
строк/столбцов
Раздел 3
Обработка и поиск данных в двумерном массиве
(4 часа)
Раздел 3
Контрольная работа
Массивы
Раздел 3
Проверка и защита домашних заданий
(2 часа)
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
№ не- Тема лекционных занятий
дели
1
Раздел 6
Потоки. Форматный и неформатный
ввод/вывод. Файловые потоки
2
Раздел 6
Доступ к файлам, управление ошибками
открытия файла, функции считывания и
записи информации из файла и в файл
3
Раздел 6
Доступ к текстовым файлам, управление
ошибками открытия файла, функции считывания и записи символов из файла и в
файл
4
Раздел 6
Файлы. Структурные типы данных.
5
Раздел 1
Принципы структурного программирования. Нисходящее проектирование. Модульность программ
6
Раздел 2
Переменные. Время жизни. Видимость.
Спецификаторы.
7
Раздел 5
Объединения, перечисления, битовые поля.
8
Раздел 5
Ссылочные типы данных
9
Раздел 7
Абстрактные типы данных.
10
Раздел 4
Указатели на функции. Применение
Лабораторная работа
Раздел 3
Обработка строк (2 часа)
Раздел 4
Контрольная работа
Базовые типы данных. Указатели
Раздел 6
Работа с текстовыми файлами. Обработка и поиск информации. (4 часа)
Раздел 6
Работа с бинарными файлами. Обработка и поиск информации. (4 часа)
Раздел 6
Создание файла с структурами. Организация в виде меню основных
действий с записями базы: добавление, удаление, поиск информации и
сортировка (4 часа)
Раздел 6
Контрольная работа
Строки и файлы
Раздел 6
Защита курсовой работы
Модуль № 4
№ не- Тема лекционных занятий
дели
1
Раздел 5
Односвязные списки
2
Раздел 5
Двусвязные списки
Лабораторная работа
Раздел 5
Односвязные списки (4 часа)
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
3
4
5
6
7
8
9
10
8
Раздел 5
Кольца
Раздел 5
Деревья. Построение. Поиск
Раздел 5
Различные способы обхода дерева
Раздел 5
Алгоритмы обработки деревьев. Рекурсия
по данным
Раздел 7
Графы. Основные понятия. Способы представления
Раздел 7
Алгоритмы обработки графов
Раздел 1
Жизненный цикл программного обеспечения.
Раздел 1
Информатика. История и перспективы.
Раздел 5
Двусвязные списки и кольца
(4 часа)
Домашнее задание
Решение задачи с использованием
абстрактных типов данных
Раздел 5
Использование деревьев для решения задач. Различные способы обхода дерева (6 часов)
Раздел 7
Контрольная работа
Абстрактные типы данных
Раздел 7
Абстрактные типы данных.
Защита домашних заданий (4 часа)
Образовательные технологии
В учебном процессе, помимо чтения лекций, которые составляют 50% аудиторных занятий,
широко используются интерактивные формы (обсуждение отдельных разделов дисциплины, защита
домашних заданий и курсовой и лабораторных работ). В сочетании с внеаудиторной самостоятельной работой это способствует формированию и развитию как общекультурных, так и профессиональных компетенций.
Для закрепления и проверки знаний студентов по наиболее важным разделам курса проводятся контрольные работы.
При проведении промежуточного и итогового контроля особое внимание обращается на
умение решать задачи, поэтому билеты содержат не только теоретические вопросы, но и задачи.
Важное место отводится для выполнения и защиты курсовой работы, которая должна продемонстрировать компетенции студентов, основанные на полученных к этому моменту теоретических
знаниях и практических навыках.
9
Оценочные средства для текущего контроля и аттестации студента
9.1
Тематика заданий текущего контроля
Текущий контроль складывается из оценивания выполнения и защиты контрольных и лабораторных работ. Перечень тем лабораторных и контрольных работ приведен в разделе 7 данной
программы.
9.2
Вопросы для оценки качества освоения дисциплины
1. Парадигмы и языки программирования
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
2. Информатика. История информатики. Научные направления информатики.
3. Жизненный цикл программного обеспечения.
4. Этапы процесса разработки прикладной программы в рамках структурного программирования.
5. Понятие алгоритма. Свойства алгоритма. Основные алгоритмические структуры. Способы представления алгоритма.
6. Структура программы на Си. Реализация принципа декомпозиции и модульности
программ в языке Си.
7. Концепция типов для данных в рамках структурного программирования. Классификация данных.
8. Стандартные скалярные типы данных, операции над ними и их представление в памяти
ЭВМ.
9. Массивы. Описание в программе и представление в памяти ЭВМ. Алгоритмы обработки и модификации массивов.
10. Представление строк в памяти ЭВМ. Библиотеки стандартных функций обработки
символьных массивов.
11. Функции. Отличие между определением и описанием. Формальные и фактические параметры. Указатели на функции.
12. Рекурсия. Рекурсивные функции. Рекуррентные соотношения.
13. Препроцессорные средства.
14. Файлы. Сходство и различие массива и файла. Классификация файлов по типу и по
способу доступа.
15. Основные приемы и функции работы с бинарными файлами.
16. Текстовые файлы и их особенности.
17. Стеки и очереди. Способы их преставления на Си.
18. Связные списки и их структура.
19. Создать связный список, начиная с первого элемента списка.
20. Создать связный список, начиная с последнего элемента списка.
21. Печать элементов связанного списка (односвязного и двусвязного).
22. Добавить
у.
23. Удалить
х.
элемент
в список (односвязный и двусвязный) после заданного значения
элемент из списка (односвязного и двусвязного) по заданному значению
24. Рекурсия по данным. Бинарное дерево. Способ представления его на Си. Создание
упорядоченного бинарного дерева.
25. Печать вершин бинарного дерева в глубину с использованием стека.
26. Печать вершин бинарного дерева в ширину с использованием очереди.
27. Рекурсивный обход бинарных деревьев.
28. Поиск значения в связном списке.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
29. Последовательный и бинарный поиск в массиве.
30. Связь между именами, адресами и значениями переменных. Указатели, адресная
арифметика Динамическая память, библиотечные функции для работы с ней: распределения и освобождение памяти.
31. Рекурсия. Рекурсивные функции. Рекуррентные соотношения. Вычисление членов ряда
Фибоначчи с помощью рекурсии и с помощью итерации.
32. Массивы и указатели. Использование указателей при обработке массивов. Динамические массивы.
33. Локальные и глобальные переменные программы. Способы обмена данными между
программой и функциями.
34. Графы. Основные определения. Способы представления графов. Алгоритмы обработки
графов.
10 Учебно-методическое и информационное обеспечение дисциплины
10.1 Основная литература
1. Брайан Керниган, Деннис Ритчи Язык программирования C. — М.: Вильямс, 2015
2. Вирт Н. Алгоритмы и структуры данных. ДМК Трест. 2013.
3. Подбельский В. В. Практикум по программированию на языке Си. — М.: Финансы и статистика, 2004
4. Подбельский В. В., Фомин С. С. Курс программирования на языке Си. — М.: Финансы и статистика, 2013
5. Подбельский В. В., Фомин С. С. Программирование на языке Си. — М.: Финансы и статистика, 2005
10.2 Дополнительная литература
1. Дейтел Х. М., Дейтел П. Дж. Как программировать на С. — М.: Бином-Пресс, 2009
2. Демидович Е. М. Основы алгоритмизации и программирования. Язык Си. — СПб.: БХВПетребург, 2008
3. Культин Н. С/С++ в задачах и примерах. — СПб.: БХВ-Петребург, 2009
4. Подбельский В. В. ЯзыкСи++. — М.: Финансы и статистика, 2013
5. Р. Седжвик. Фундаментальные алгоритмы на Си. — СПб:ООО «ДиаСофтЮП», 2003, – 672 с
6. Самюел П. Харбисон, Гай Л. Стил Язык С с примерами. — М.: Бином, 2011
7. Стивен Прат Язык программирования С. Лекции и упражнения. – СПб:ООО «ДиаСофтЮП»,
2002
8. Хусаинов. Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си. — М.:
Финансы и статистика, 2004
10.3 Программные средства
Для успешного освоения дисциплины, студент использует следующие программные средства:
 Visual Studio 2010
 Windows 7
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Алгоритмизация и программирование» для направления 01.03.04
«Прикладная математика» подготовки бакалавра
11 Материально-техническое обеспечение дисциплины
Для успешного освоения дисциплины необходимо следующее материально-техническое
обеспечение:
 Дисплейный класс, оборудованный современными персональными компьютерами
 Интерактивная доска и/или проектор с экраном.
Download