[Haskell & FP in Education] Welcome and introductions

Николай Кудасов nickolay.kudasov at gmail.com
Mon Dec 17 06:56:34 UTC 2018


Hi everyone!


I am Nickolay Kudasov. I am CTO of GetShop.TV (a small company where we use
Haskell extensively) and a teacher at Innopolis University in Innopolis,
Russia where I teach a Haskell elective course to advanced undergraduates.
I also have a YouTube series of short video-lectures on Haskell in Russian
(these videos were part of a Haskell course at Moscow State University
while I was teaching there).


The way I teach was greatly influenced by Brent's CIS 194 course (and its
later incarnation by Joachim Breitner) as well as my experience with
commercial Haskell. I have also been using CodeWorld lately to introduce
students to Haskell, so big thanks to Chris Smith and everyone else working
on it! I am also very excited about Brent's new functional teaching
language :)


I do not know if I have anything yet to offer to people in this list, but I
hope to learn about teaching materials and techniques others use,
especially concerning university courses. I have slight interest in K-12
education as well, since I have two kids at least one of which is likely to
be inclined towards mathematics and computers in a couple years.


One sort of project I am thinking about periodically is a Haskell or
FP-related educational YouTube-channel (any other platform is fine, it's
format that is interesting to me). There are plenty of math and programming
related channels with great content already (I would like to especially
highlight 3Blue1Brown
<https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw> and Welch Labs
<https://www.youtube.com/user/Taylorns34/> which have series of educational
videos with exercises). I have a few ideas for such an FP-channel, but
unfortunately I have no spare time right now to try this on my own.
However, if anyone is interested in collaborating on such a project I would
definitely try to free up my schedule :)


Kind regards,

Nick

пн, 17 дек. 2018 г. в 09:28, Chris Smith <cdsmith at gmail.com>:

> Hi Brent,
>
> On Sun, Dec 16, 2018 at 10:26 PM Brent Yorgey <byorgey at gmail.com> wrote:
>
>> I'm not aware of any *functional* block-based languages.  If you know of
>> any, please let me know!
>>
>
> I don't suggest you use this with your son, but if you're curious, a few
> years ago, Stefan Jacholke used Blockly to build a block-based front-end
> for CodeWorld, as part of Haskell.org's Summer of Haskell (in one of the
> years that haskell.org was not chosen for Google Summer of Code).  It's
> still available at http://code.world/blocks.  An interesting example is
> https://code.world/blocks#PIHIp7uCWam2t0iuN9w8zXA
>
> That said, though, it's not in great shape.  There's quite a lot of code
> involved, including a significant amount of development on a custom fork
> <https://github.com/stefan-j/blockly> of yet another custom fork
> <https://github.com/awmorp/blockly> of Blockly.  It's also a bit buggy
> <https://github.com/google/codeworld/issues?q=is%3Aopen+is%3Aissue+label%3Afunblocks+label%3Abug>.
> This should be viewed as a proof of concept, from which we learned quite a
> bit about the task.
>
> Some of the lessons we learned:
>
>    1. Type inference in the client is a big deal.  One should pay
>    attention from the beginning to maintaining a correct incremental version
>    of type inference, which should probably be based on something like Erdi's
>    compositional variant of Hindley-Milner.  Retrofitting the client-side
>    implementation to CodeWorld Blocks led to a demoralizing game of
>    whack-a-mole with consistency bugs, which was ultimately abandoned before
>    we won.
>    2. Assuming a new version were again based on Blockly, it would be
>    important to coordinate changes to Blockly with the upstream repository.
>    While this is a challenging cross-team coordination problem made worse by
>    the lack of engineering resources for the core Blockly project, forking
>    Blockly is even more challenging in the long run.
>    3. The usability of Blockly's configuration panels is quite poor
>    indeed; enough so that I found it nearly impossible to teach the portions
>    of CodeWorld Blocks that needed them.  This includes lists and user-defined
>    functions.  One would need to come up with a better approach to this, to
>    have hope of success.  Adding buttons and controls onto the block itself
>    would be much more promising.
>    4. Blockly-based languages desperately need a more compelling
>    compatibility story.  Making a backward-incompatible change in a text-based
>    language can require that programmers update their code, but doing the same
>    in a Blockly-based language can cause the code to fail to load so much that
>    the user may just as well start over and rewrite it entirely.
>    5. Blockly is also quite poor at usability.  Being block-based is no
>    panacea.  It could likely be made much nicer with some intelligent search
>    features.  One could imagine clicking a connector to get a selection of
>    blocks that would fit into that hole, or typing the first few letters of a
>    function name to see a selection of blocks that begin with those letters.
>    As is, though, building anything non-trivial in Blockly feels so tedious as
>    to be off-putting.
>
> Anyway, this is just thoughts that came to mind from that question.  Of
> course, there are deeper answers to how to design a visual functional
> language, too, based on dataflow diagrams and such.  Since a key part of my
> goal in the CodeWorld project is to teach the conventional syntax of
> algebraic expressions and functions, I wasn't actually so interested in
> those more ambitious language designs.  You might be, though.  If so, I
> hope someone else can share some information there.
>
> Thanks,
> Chris
> _______________________________________________
> Education mailing list
> Education at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/education
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/education/attachments/20181217/667e7276/attachment-0001.html>


More information about the Education mailing list