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

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

Закреплена за кафедройКафедра цифровых технологий и бизнес-аналитики
Направление подготовки09.03.03. Прикладная информатика
ПрофильПрикладная информатика в экономике. ФГОС3++
Форма обученияЗаочная
Общая трудоемкость2 ЗЕТ
Учебный планz09_03_03_ПИЭ-2-2020
Часов по учебному плану 72
в том числе:
аудиторные занятия 10
самостоятельная работа 58
контроль 4
Виды контроля по курсам
зачеты: 3

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

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

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

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

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

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

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

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

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

Заведующий кафедрой
к.ф.-м.н., доцент, Юдинцев А.Ю.

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

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

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

Протокол от 14.05.2020 г. № 10
Заведующий кафедрой к.ф.-м.н., доцент, Юдинцев А.Ю.

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

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

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

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

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

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

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

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

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

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

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Сошников Д.В. Функциональное программирование на F#: Научно-популярная литература Издательство "ДМК Пресс", 2011 https://e.lanbook.com/book/1274
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Мол Д. Создание облачных, мобильных и веб-приложений на F#: учебное пособие Москва : ДМК Пресс ЭБС «Лань», 2013 https://e.lanbook.com/book/69948
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Справочник по языку F# https://docs.microsoft.com/ru-ru/dotnet/fsharp/language-reference/
Э2 Руководство по языку C# https://docs.microsoft.com/ru-ru/dotnet/csharp/
Э3 Руководство по языку F# https://docs.microsoft.com/ru-ru/dotnet/fsharp/
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. Методические указания для обучающихся по освоению дисциплины

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

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

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