|
|||||||
|
|
Автор: Д.В. Сошников
Microsoft Dreamspark
Бесплатные лицензионные версии программ для студентов и преподавателей.
Специальное предложение для студентов Интуит.ру. подробнее »
Информация о курсе
Курс знакомит слушателей с парадигмой функционального программирования, в которой решение задач сводится к описанию функций, перерабатывающих некоторые входные данные в выходные и строящихся из более простых функций на основе принципов функциональной абстракции и аппликации. Рассматриваются теоретические основы функционального программирования (лямбда-исчисление, комбинаторная логика, вопросы вычислимости), на примере функционального подхода дается представление о некоторых теоретических разделах компьютерных наук (семантика языков программирования, доказательство программ). С другой стороны курс содержит значительную практическую составляющую, основанную на промышленном языке программирования F# (входит в состав Microsoft Visual Studio 2010), рассматриваются вопросы использования функциональных языков для построения компиляторов, грамматического разбора и т.д. Курс будет интересен как практикующим программистам и студентам, изучившим основы компьютерных наук, так и математикам. Для программистов на императивных языках знакомство с функциональным подходом позволит расширить сознание, перейти на более чистый (свободный от побочных эффектов) стиль программирования с более высоким уровнем абстракции, научиться эффективно использовать новые возможности современных императивных языков (LINQ, лямбда-выражения и т.д.). Для математиков, функциональное программирование может служить безболезненным введением в компьютерные науки, поскольку в рамках курса мы практически «с нуля» строим (начиная от математических основ, вплоть до реализации интерпретатора/компилятора и описания формальной семантики) язык программирования на базе лямбда-исчисления – раздела дискретной математики.
Цель
Познакомить слушателя с основами функционального программирования как дисциплины, находящейся на стыке программирования и дискретной математики; дать, с одной стороны, практические навыки функционального программирования на используемом на практике языке F#, а с другой – показать связь между теоретическими главами computer science и программированием, осветив некоторые теоретические проблемы информатики (вычислимость, семантика языков программирования, доказательство программ) и показав, как они решаются в функциональном подходе.
Предварительные знания
Строго говоря, предварительных знаний для курса не требуется – возможно изучение программирования, начиная с функционального подхода. Однако более традиционным подходом является изучение основ программирования на базе императивного языка, и затем изучение функционального программирования как альтернативной парадигмы. Курс в большей степени ориентирован именно на такой подход.
Дополнительные курсы
Записаться на обучение
просмотров: 0
|
загрузок: 0
1.
просмотров: 0
|
загрузок: 0
2.
Абстракция и декомпозиция при функциональном подходе. Декларативное программирование. Плюсы и минусы.
просмотров: 0
|
загрузок: 0
3.
просмотров: 0
|
загрузок: 0
4.
Построение множества Мандельброта. Функциональное программирование в реальной жизни. Пример визуализации на F#. Рекомендуемая литература. Информация о курсе.
просмотров: 0
|
загрузок: 0
5.
Введение в лямбда-исчисление. Редукция. Язык функционального программирования как лямбда-редуктор. Функции нескольких аргументов. Каррирование. Условное выражение. Определение имен. Области видимости.
просмотров: 0
|
загрузок: 0
6.
просмотров: 0
|
загрузок: 0
7.
просмотров: 0
|
загрузок: 0
8.
просмотров: 0
|
загрузок: 0
9.
Примеры работы со списками. Перестановки. Вычисление простых чисел. Работа с изображениями. Синтаксис порождения списка list comprehension.
просмотров: 0
|
загрузок: 0
10.
просмотров: 0
|
загрузок: 0
11.
просмотров: 0
|
загрузок: 0
12.
Деревья общего вида и двоичные деревья. Обход дерева. Реализация обхода с помощью функции с отложенным вычислением.
просмотров: 0
|
загрузок: 0
13.
просмотров: 0
|
загрузок: 0
14.
Основные модели вычислений. Синтаксис л-исчисления. Чистое и прикладное л-исчисление. Преобразования л-выражений. Редукция. Бетта-редукция и замена переменной.
просмотров: 0
|
загрузок: 0
15.
Нормальный и аппликативный порядок редукции. Ленивые и энергичные вычисления. Механизмы вызова и проблема разделения. Теорема Чёрча-Россера и теорема стандартизации. Экстенсиональность. Слабая заголовочная нормальная форма.
просмотров: 0
|
загрузок: 0
16.
просмотров: 0
|
загрузок: 0
17.
Представление условных выражений, списков и натуральных чисел в лямбда исчислении.Вычислимость.Эквивалентность алгоритмических моделей.
просмотров: 0
|
загрузок: 0
18.
Переопределение имен. Замыкания. Генераторы - как способ работы с бесконечными последовательностями, отложенные вычисления.
просмотров: 0
|
загрузок: 0
19.
просмотров: 0
|
загрузок: 0
20.
просмотров: 0
|
загрузок: 0
21.
Классификация языков программирования по видам типизации. Типизированное лямбда исчисление. Вывод типов.
просмотров: 0
|
загрузок: 0
22.
Классификация формальных семантик.Теория доменов. Теорема о неподвижной точке. Семантика для простейшего языка.
просмотров: 0
|
загрузок: 0
23.
просмотров: 0
|
загрузок: 0
24.
просмотров: 0
|
загрузок: 0
25.
просмотров: 0
|
загрузок: 0
26.
просмотров: 0
|
загрузок: 0
27.
просмотров: 0
|
загрузок: 0
28.
просмотров: 0
|
загрузок: 0
29.
просмотров: 0
|
загрузок: 0
30.
|
![]() |
|
|||||||||||||||||||||||||||||||||||||||||
|
|||
|
|||
|
Курсы |
Учебные программы |
Учебники |
Вопросы и Ответы |
Форум |
Новости |
Помощь
Телефон: +7 (499) 253-9312, 253-9313, факс: +7 (499) 253-9310, email: info@intuit.ru © INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование, 2003-2011 |
|
Проект Издательства "Открытые Системы". Партнеры: РМ Телеком, KRAFTWAY COMPUTERS. |
|