Онлайн-курс по Хаскелю
Sep. 11th, 2015 01:39 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Через неделю запускаем на stepic.org вводный онлайн-курс по Хаскелю Функциональное программирование на языке Haskell.
Когда начинал записывать лекции, обнаружил, что говорить без аудитории - отдельный скилл, так что первую треть курса произношу довольно скованно. Потом ничего, разошелся, руками стал размахивать. Еще, конечно, угнетало, что надо стоять на месте, обычно я бегаю вдоль доски туда-сюда.
В день, когда я закончил записываться, вышла новая версия Haskell Platform. C реализованными Functor-Applicative-Monad proposal и Foldable/Traversable in Prelude proposal. Очень своевременно. Типы кучи функций над списками в Prelude поменялись на более общие, Applicative я вообще не рассказывал, иначе в формат не уложиться было. Включил рекомендацию ставить прошлую версию Haskell Platform, либо пользоваться последней на свой страх и риск.
Организационно в CS Center все как всегда замечательно. Отдельное спасибо Кристине и Леше! Во всех вузах надо разогнать весь административно-бюрократический аппарат к чертям собачьим, на учебном и научно-исследовательском процессах это скажется немедленно и самым благотворным образом.
no subject
Date: 2015-09-23 05:05 am (UTC)По поводу Haskell Platform идут дебаты, нужна ли она. Для Windows рекомендуют ставить MinGHC. Он по объёму меньше и в нём правильная среда для сборки программ, требующих Unix (bash встроен ) Ещё там находится stack, которым теперь собирают пакеты, чтобы не иметь проблем с зависимостями, как в cabal. С помощью stack можно даже версию ghc поменять. Вообще автор stack говорит, что только его ставьте, а уже через него всё остальное :)
no subject
Date: 2015-09-23 06:15 am (UTC)no subject
Date: 2015-09-24 12:32 am (UTC)А вот сборка под Haskell Platform может закончиться неудачей -- Windows, похоже, всё более и более маргинализируется среди разработчиков.
Впрочем, с Платформой гораздо проще указать, что откуда скачать и поставить :))
no subject
Date: 2015-09-24 08:38 am (UTC)no subject
Date: 2015-09-24 08:40 am (UTC)no subject
Date: 2015-09-25 11:51 am (UTC)no subject
Date: 2015-09-24 01:40 am (UTC)1. Почему вы сами пользуетесь ghc-7.6.3? :)
2. Почему не пользуетесь и не рассказываете про клавишу Tab в командной строке? Очень жизнь облегчает.
3. Местами приходится жалеть, что нет слайдов к видео. Приходится крутить ролик и набирать руками код. А может слайды и не нужны, вполне хватит исходника с комментариями, в которых и набираемые в ghci команды будут.
4. Одного тестового случая для задач всё-таки мало, хотя бы парочку. Наверняка, например, в задаче про сумму цифр и их количество большинство валятся на числе 0, но сообщение об ошибке, что некий Test #1 failed им ничего не говорит и лишь вгоняет во фрустрацию. На всех же остальных числах работает! Впрочем, студенты могут и в комментах делиться тестовыми случаями, уже начали. Кстати, идеально загрузка кода и тестирование устроены на codewars.com. Можно вообще прямо туда задачи решать отправлять :)
5. Насчёт фрустраций, опять же. Математика в задачах пугает :) Я с трудом пересилил страх, посмотрел в Википедию и узнал, что интегрировать методом трапеций позволяет довольно простая формула. Так что в итоге мне даже понравилось, вспомнил школу, машинное время и что программирование было нужно народному хозяйству для расчётов советской военной техники. Но теперь, вы же сами говорите, курс про язык, а не про численные методы :) В общем я, что пережил, вам рассказал, а там посмотрим, что статистика по решившим задачу скажет :))
Всё, спасибо за первую неделю, пойду ждать следующую.
no subject
Date: 2015-09-24 08:26 am (UTC)2. Про Tab собирался рассказать, но забыл :( Или где-то позже говорю, не помню уже.
3. Комментированные исходники у меня есть, но они совершенно непричесанные и слегка отличающиеся в худшую сторону - по ходу записи возникали идеи как рассказать что-то лучше и точнее, которые нигде не фиксировались.
4. Мы просто не успели написать содержательное сообщение на каждый test case. Это было в планах, но на самом деле делать такой курс - это очень большой объем работы. К тому же не хотелось писать на бестиповом питоне, на котором написан Stepic (в том числе и интерфейс подсистемы тестирования), поэтому мы перетащили большую часть обработки тестов на Haskell. Ну и уткнулись в то, что степик сам развивается, и если корректность работы визуальных инструментов поддерживается, то изменения в API иногда портят дело. В частности, загадочное test #1 failed: Haskell test #4 failed состоит из неубираемой части подсистемы тестирования Stepic и нашего сообщения.
5. Эта задачка вроде бы из SICP взята.
no subject
Date: 2015-10-20 05:11 pm (UTC)no subject
Date: 2015-11-08 02:05 am (UTC)no subject
Date: 2015-11-08 07:35 am (UTC)А какие недостатки у платформы?
no subject
Date: 2015-11-14 08:33 pm (UTC)В вашем курсе тоже есть кое-какие недочёты, но они не столь существенны. Список я намеревался отправить по почте, когда несколько раз пересмотрю.