Чему вы научитесь
Цель курса: освоение функциональной парадигмы программирования. Задачи, которые предстоит решить в течение курса:
- Научиться программировать без переменных, в которых запоминается состояние алгоритма.
- Научиться писать рекурсивные алгоритмы, использующие рекурсивные структуры данных.
- Освоить принципы написания программ при помощи библиотек рекурсивных алгоритмов.
- Освоить основные приёмы функционального программирования.
- *Коснуться теории, лежащей в основе функциональной парадигмы.
Достигать поставленной цели мы будем при помощи языка F#, который является частью экосистемы средств разработки программного обеспечения фирмы Microsoft.
В результате успешного прохождения курса предполагается получение следующих результатов у учащихся:
- Приобретение способности описывать различные математические объекты и способы манипулирования ими
- Умение концептуализировать (выделять в отдельные концепции) части составляемого алгоритма. То есть брать совершенно абстрактные понятия и строить для них вполне конкретные реализации.
- Вероятно, сможете составлять вычислимые выражения, превращающие алгоритм в целостную логическую цепочку вычислений.
- Получение знаний о предметно-ориентированных языках.
Исходно курс ориентировался исключительно на функциональные методы программирования. Однако в ходе развития стало ясно, что ограничиваться только этим аспектом недостаточно для понимания того что происходит. В результате были добавлены дополнительные темы, которые раскрывают важные возможности языка, такие как объектно-ориентированное программирование (ООП), методы отладки, тестирование и другие. Эти темы считаются неотъемлемой частью общей картины языка программирования, и их введение призвано обеспечить более полное понимание его функциональности.
Некоторые разделы курса, помеченные символом звездочки (*), выходят за пределы основного материала. Они обладают своим уникальным стилем и содержанием, что может выделять их среди прочего учебного материала. Эти разделы не являются обязательными для изучения в рамках данного курса и могут быть отложены на потом или пропущены, если студент считает это необходимым.
К сожалению, (хотя может быть то и к лучшему) данная платформа не предоставляет возможностей автоматической проверки заданий. Отнеситесь внимательно к процессу отправки решений. Любой ответ засчитывается как правильный. К некоторым задачам опубликованы тесты для самопроверки, но всегда можно опубликовать решение для ручной проверки и обсуждения. Можно без стеснения писать комментарии, задавать вопросы и делиться своими идеями публикуя решения. Отвечаю, где-то в течение суток.
О курсе
Для кого этот курс
Начальные требования
Требования к учебному курсу включают в себя необходимость обладания определенными базовыми навыками программирования в более общем смысле, так как контент курса ориентирован на сравнение и противопоставление императивному стилю программирования. Участники курса должны обладать фундаментальными умениями в области программирования для более эффективного усвоения предлагаемого материала.
Преподаватели курса
Как проходит обучение
Обучение в рамках учебного курса представляет собой структурированный материал, организованный в форме непрерывного текста, подразделенного на различные темы. Каждая из этих тем включает в себя задачи по программированию, которые подлежат ручной проверке. Важно отметить, что использование языка программирования F# в последующей трудовой деятельности может быть маловероятным, поскольку данный навык не является востребованным на рынке IT. В связи с этим отсутствует проведение экзаменов, выполнение проектов или выдача сертификатов после завершения курса. Вместо этого акцент делается на практическом освоении материала и развитии программистских навыков без стремления к получению формальных удостоверений.