МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Функциональное программирование

рабочая программа дисциплины
Закреплена за кафедройКафедра цифровых технологий и бизнес-аналитики
Направление подготовки09.03.03. Прикладная информатика
ПрофильПрикладная информатика в экономике
Форма обученияОчная
Общая трудоемкость2 ЗЕТ
Учебный план09_03_03_ПИЭ-1-2019
Часов по учебному плану 72
в том числе:
аудиторные занятия 12
самостоятельная работа 60
Виды контроля по семестрам
зачеты: 6

Распределение часов по семестрам

Курс (семестр) 3 (6) Итого
Недель 17
Вид занятий УПРПДУПРПД
Лекции 6 6 6 6
Лабораторные 6 6 6 6
Сам. работа 60 60 60 60
Итого 72 72 72 72

Программу составил(и):
канд.физ.-мат.наук , доцент, Юдинцев А.Ю.

Рецензент(ы):
канд.техн.наук, доцент, Трошкина Г.Н.

Рабочая программа дисциплины
Функциональное программирование

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 09.03.03 Прикладная информатика (уровень бакалавриата) (приказ Минобрнауки России от 20.09.2017г. №922)

составлена на основании учебного плана:
09.03.03 Прикладная информатика: Прикладная информатика в экономике
утвержденного учёным советом вуза от 25.06.2019 протокол № 9.

Рабочая программа одобрена на заседании кафедры
Кафедра цифровых технологий и бизнес-аналитики

Протокол от 10.06.2019 г. № 10
Срок действия программы: 2019-2020 уч. г.

Заведующий кафедрой
д-р техн. наук, профессор Псарев В.И.


Визирование РПД для исполнения в очередном учебном году

Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2019-2020 учебном году на заседании кафедры

Кафедра цифровых технологий и бизнес-аналитики

Протокол от 10.06.2019 г. № 10
Заведующий кафедрой д-р техн. наук, профессор Псарев В.И.


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

1.1.Введение в парадигму функционального программирования. Изучение теоретических основ функционального программирования (лямбда-исчисление, комбинаторная логика, вопросы вычислимости), на примере функционального подхода. Получение практических навыков программирования на функциональных языках. Знакомство с функциональным подходом, совершенствование стиля программирования. Формирование навыков использования языков программирования с более высоким уровнем абстракции, эффективного использования новых возможностей современных императивных языков программирования (LINQ, лямбда-выражения и т.д.).

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: ФТД.В

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

ОПК-1 Способен применять естественнонаучные и общеинженерные знания, методы математического анализа и моделирования, теоретического и экспериментального исследования в профессиональной деятельности;
ОПК-7 Способен разрабатывать алгоритмы и программы, пригодные для практического применения;
ПК-2 Способен разрабатывать и адаптировать прикладное программное обеспечение
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.Принципы функционального программирования. Теоретические основы функционального программирования: лямбда-исчисление, комбинаторную логику, вопросы вычислимости, на примере функционального подхода. Современные платформы для работы с функциональными языками
3.2.Уметь:
3.2.1.Использовать принципы функционального программирования для построения сложных алгоритмов и программ. Работать на современных платформах с функциональными языками. Использовать язык LINQ, лямбда-выражения. Использовать современные платформы для работы с функциональными языками
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.Практические навыки программирования на функциональных языках, использование функционального подхода для построения сложных алгоритмов и программ. Навыки работы с функциональными языками на современных платформах.

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Введение в функциональное программирование
1.1. Определение функционального программирования и его история. Лекции 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
1.2. Определение функционального программирования и его история. Лабораторные 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
1.3. Определение функционального программирования и его история. Сам. работа 6 4 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
1.4. Функциональный подход в C#. Введение в F# Лекции 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
1.5. Функциональный подход в C#. Введение в F# Лабораторные 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
1.6. Функциональный подход в C#. Введение в F# Сам. работа 6 4 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
Раздел 2. Основные принципы функционального программирования
2.1. Введение в лямбда-исчисление. Редукция. Язык функционального программирования как лямбда-редуктор. Лекции 6 2 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
2.2. Введение в лямбда-исчисление. Редукция. Язык функционального программирования как лямбда-редуктор. Лабораторные 6 2 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
2.3. Введение в лямбда-исчисление. Редукция. Язык функционального программирования как лямбда-редуктор. Сам. работа 6 20 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
2.4. Функции нескольких аргументов. Каррирование. Условное выражение. Определение имен. Области видимости. Лекции 6 0 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
2.5. Функции нескольких аргументов. Каррирование. Условное выражение. Определение имен. Области видимости. Лабораторные 6 0 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
2.6. Функции нескольких аргументов. Каррирование. Условное выражение. Определение имен. Области видимости. Сам. работа 6 20 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
Раздел 3. Лямбда-исчисление
3.1. Основные модели вычислений. Синтаксис лямбда-исчисления. Чистое и прикладное лямбда-исчисление. Преобразования лямбда-выражений. Редукция. Бетта-редукция и замена переменной. Лекции 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
3.2. Основные модели вычислений. Синтаксис лямбда-исчисления. Чистое и прикладное лямбда-исчисление. Преобразования лямбда-выражений. Редукция. Бетта-редукция и замена переменной. Лабораторные 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
3.3. Основные модели вычислений. Синтаксис лямбда-исчисления. Чистое и прикладное лямбда-исчисление. Преобразования лямбда-выражений. Редукция. Бетта-редукция и замена переменной. Сам. работа 6 6 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
3.4. Реализация лямбда-исчисления в C# и F# Лекции 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
3.5. Реализация лямбда-исчисления в C# и F# Лабораторные 6 1 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1
3.6. Реализация лямбда-исчисления в C# и F# Сам. работа 6 6 ОПК-1, ОПК-7, ПК-2 Л1.1, Л2.1

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
См. приложение
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
См. приложение
5.3. Фонд оценочных средств для проведения промежуточной аттестации
См. приложение

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Сошников Д.В. Функциональное программирование на F#: Научно-популярная литература Издательство "ДМК Пресс", 2011 e.lanbook.com
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Мол Д. Создание облачных, мобильных и веб-приложений на F#: учебное пособие Москва : ДМК Пресс ЭБС «Лань», 2013 e.lanbook.com
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Справочник по языку F# docs.microsoft.com
Э2 Руководство по языку C# docs.microsoft.com
Э3 Руководство по языку F# docs.microsoft.com
6.3. Перечень программного обеспечения
MS'Visual Studio 2008
Open Office
Office 2010 Professional
Windows 7 Professional
7-Zip
AcrobatReader
6.4. Перечень информационных справочных систем
СПС Гарант (http://www.garant.ru)
СПС КонсультантПлюс (http://www.consultant.ru/)
Электронная база данных "Scopus" (http://www.scopus.com)
Электронная библиотечная система Алтайского государственного университета (http://elibrary.asu.ru)
Научная электронная библиотека elibrary (http://elibrary.ru)

7. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
103С лаборатория информационных технологий - компьютерный класс – учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации; помещение для саостоятельной работы Учебная мебель на 16 посадочных мест; рабочее место преподавателя; доска маркерная; марка ASUSTeK Computer INC модель P8B75-M - 15 единиц; мониторы: марка Asus модель VW224 - 15 единиц
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)

8. Методические указания для обучающихся по освоению дисциплины

Методические указания по изучению курса для студентов

Изучение учебной дисциплины студентами предусматривает два вида работ:
- работа с преподавателем;
- самостоятельная работа.

Работа с преподавателем охватывает два вида учебных занятий: лекционные занятия и практические занятия. Последовательность проведения данных занятия, их содержание определяются настоящей программой. Посещение данных занятий является обязательным для всех студентов. Практическое занятие требует подготовки студентов, предусматривающей изучение теоретического материала по теме занятия с использованием учебной литературы, перечень которой приведен в данной рабочей программе.
Вторым видом работы студента, выполняемым им при изучении курса является самостоятельная работа, которая помимо подготовки к практическим занятиям предусматривает изучение рекомендованной основной и дополнительной литературы, а также выполнение заданий для самостоятельной работы студентов.
Цель заданий для самостоятельной работы - закрепить полученные знания в рамках отдельных тем по учебной дисциплине, сформировать умения и навыки по решению вопросов, составляющих содержание курса.
Работа должна носить самостоятельный, творческий характер. Задания по темам выполняются на лабораторных занятиях в компьютерном классе. В процессе работы над заданием закрепляются и расширяются знания по конкретным вопросам учебной дисциплины. При необходимости в процессе работы над заданием студент может получить индивидуальную консультацию у преподавателя.
Выполненное задание проверяется преподавателем и оценивается по двухбалльной системе - зачтено/не зачтено.
Если лабораторные занятия пропущены по уважительной причине, то соответствующие задания необходимо выполнить самостоятельно и представить результаты преподавателю на очередном занятии или консультации.