Как обучить глупых студентов функциональному программированию?

Приветствую.
Давеча просили обучить глупых (нулевой уровень) студентов программированию. Ну так я с дуру включил в план функциональное программирование, которое для учащихся выглядит как сборка атомного реактора в домашних условиях.

Есть ли у вас какой-нибудь опыт или совет по решению проблемы? А может проще из плана удалить этот раздел полностью?
  • Вопрос задан
  • 1310 просмотров
Пригласить эксперта
Ответы на вопрос 7
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Не совсем понимаю проблемы. First class functions, lambda, closure реализованы и активно применяются в большинстве современных mainstream языков. Многие алгоритмы гораздо удобнее выражать рекурсивно, например quicksort классически выражают рекурсивно. То есть отдельные приёмы ФП вполне укладываются в обычную ментальную модель, без подрыва мозга)) Не обязательно ведь учить кодить на Scheme или Haskell.
Ответ написан
@evgeniy_lm
Ну для начала нужно знать что это за студенты. Если из театрального училища то нафиг им програмирование в принципе, но если из физмата какого нибудь, то те для кого ФП "выглядит как сборка атомного реактора" пусть идут в театральное училище.

ЗЫ Занимаюсь прогамированием 40 лет, но до сих пор ФП для меня вещь весьма не понятная. Когда-то пытался разобраться в Haskell, но не понял как его использовать в реальной жизни и бросил.
Ответ написан
FoggyFinder
@FoggyFinder
Возьмите F#. Язык в первую очередь функциональный а не чисто функциональный. Для того чтобы обучить азам нового подхода самое то. За 1-2 занятия начинающим разработчикам больше дать все равно не получится.

Будет несложно показать на простых примерах как можно добиться одного и того-же результата с совершенно разными подходами.

+ не требуйте сразу правильно написанного кода, пусть учатся постепенно - шаг за шагом отказываясь от привычки использовать мутабельность везде где только можно.
Ответ написан
Комментировать
@AVKor
Обучить вначале глупого "преподавателя", как учить.
Ответ написан
sfi0zy
@sfi0zy
Creative frontend developer
Студенты - инженеры... как обучить фп за 1-2 занятия с нуля? Что бы вы сделали?

Ну о серьезном погружении здесь речи не будет, но самые азы за две пары дать вполне можно. Если инженеры - значит умеют в математику. Знают, как сложные формулы со скобочками раскладывать на составляющие и считать. Даже рекурсия для них - понятие знакомое. Если взять условно старый добрый common lisp со скобочками и простейшим интерпретатором, и начать писать простые конструкции с расчетами чего-нибудь - они быстро подхватят идею, как это работает в целом. А дальше уже можно будет по аналогии показать, что это не только с числами можно делать, но и с другими данными, показать какие-то примеры со строками. А в конце можно показать какие-то простые способы организации кода и рассказать что-то для кругозора (откуда ФП взялось, где применяется, что есть языки и без скобочек, но с теми же идеями внутри и.т.д.). Заливать про архитектуру и какие-то паттерны людям, которые не знакомы с программированием - бесполезно, они еще не видели большого объема кода, чтобы понять смысл высказываний. Но поработать с какими-то прикладными вычислениями (у инженеров есть задачи по физике для этого), с каким-то абстрактным анализом данных - за пару пар вполне можно.
Ответ написан
Комментировать
raf_gal
@raf_gal
я думаю тут надо начать с голого лиспа
и там познать дзен

надо полностью отказаться от императивного мышления

надо мысленно побывать в мире "лямбда окраинная" из сказки про языки программирования:
О глубокой философии программирования (серьезный р...
Ответ написан
@potan
Функциональный программист
Я бы попробовал дать им очень простой язык с быстрым циклом разработки, такой как Elm.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы