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

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

рабочая программа дисциплины
Закреплена за кафедройКафедра цифровых технологий и бизнес-аналитики
Направление подготовки09.03.03. Прикладная информатика
ПрофильПрикладная информатика в экономике
Форма обученияОчная
Общая трудоемкость2 ЗЕТ
Учебный план09_03_03_ПИЭ-2-2020
Часов по учебному плану 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 Прикладная информатика (уровень бакалавриата) (приказ Минобрнауки России от 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 Способен разрабатывать и адаптировать прикладное программное обеспечение
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.Принципы функционального программирования. Теоретические основы функционального программирования: лямбда-исчисление, комбинаторную логику, вопросы вычислимости, на примере функционального подхода. Современные платформы для работы с функциональными языками
3.2.Уметь:
3.2.1.Использовать принципы функционального программирования для построения сложных алгоритмов и программ. Работать на современных платформах с функциональными языками. Использовать язык LINQ, лямбда-выражения. Использовать современные платформы для работы с функциональными языками
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.Практические навыки программирования на функциональных языках, использование функционального подхода для построения сложных алгоритмов и программ. Навыки работы с функциональными языками на современных платформах.

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

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

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

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

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