From olf at aatal-apotheke.de Wed Sep 7 07:56:09 2022 From: olf at aatal-apotheke.de (Olaf Klinke) Date: Wed, 07 Sep 2022 09:56:09 +0200 Subject: [Haskell & FP in Education] Yesod code teaching app on iOS devices Message-ID: <697898e6ccc2966607e837e25bb411c72dcbbe9a.camel@aatal-apotheke.de> Dear list, I built a compiler in Haskell for a primary school third-grade programming concept. It features in the math workbook the class uses. The language is tiny and its semantics are towers of stacked cubes [*]. The compiler currently has: * a parsec parser * a highlighter for parse errors * a pretty-printer for the language (inverse to the parser) * an SVG generator Education goals are 1. procedural thinking (the language has non-nested loops) 2. abstraction 2a. try to imagine the tower by looking at the source code 2b. identitfy the program whose semantics is a given tower 3. the write code-compile cycle (understand error messages) The target school uses iPads (presumably of the pre-arm generation) whence cross-compiling is probably too much hassle. Therefore I am considering wrapping the compiler in a Yesod webserver, as SVG is natively embeddable in HTML. Is the webserver approach favourable for a class environment? Could I have hacked it together more easily using other education frameworks, e.g. Scratch? Cheers, Olaf [*] The semantics is even a monoid homomorphism from the monoid of sequences of commands to the commutative monoid of cube towers. From michael at snoyman.com Sun Sep 11 06:35:53 2022 From: michael at snoyman.com (Michael Snoyman) Date: Sun, 11 Sep 2022 09:35:53 +0300 Subject: [Haskell & FP in Education] Yesod code teaching app on iOS devices In-Reply-To: <697898e6ccc2966607e837e25bb411c72dcbbe9a.camel@aatal-apotheke.de> References: <697898e6ccc2966607e837e25bb411c72dcbbe9a.camel@aatal-apotheke.de> Message-ID: <6c0160ac-debf-4248-9348-5355502206e5@www.fastmail.com> I can't say that I'm familiar with frameworks around Scratch for development. However, in a general sense, building a backend server that provides a web interface for usage on an iPad seems perfectly reasonable to me. I've never done exactly that for development tools, but I've used Yesod for making mobile-friendly sites plenty of times. On Wed, Sep 7, 2022, at 10:56 AM, Olaf Klinke wrote: > Dear list, > > I built a compiler in Haskell for a primary school third-grade > programming concept. It features in the math workbook the class uses. > The language is tiny and its semantics are towers of stacked cubes [*]. > The compiler currently has: > > * a parsec parser > * a highlighter for parse errors > * a pretty-printer for the language (inverse to the parser) > * an SVG generator > > Education goals are > 1. procedural thinking (the language has non-nested loops) > 2. abstraction > 2a. try to imagine the tower by looking at the source code > 2b. identitfy the program whose semantics is a given tower > 3. the write code-compile cycle (understand error messages) > > The target school uses iPads (presumably of the pre-arm generation) > whence cross-compiling is probably too much hassle. Therefore I am > considering wrapping the compiler in a Yesod webserver, as SVG is > natively embeddable in HTML. Is the webserver approach favourable for a > class environment? Could I have hacked it together more easily using > other education frameworks, e.g. Scratch? > > Cheers, > Olaf > > [*] The semantics is even a monoid homomorphism from the monoid of > sequences of commands to the commutative monoid of cube towers. > > _______________________________________________ > Education mailing list > Education at haskell.org > https://mail.haskell.org/cgi-bin/mailman/listinfo/education > -------------- next part -------------- An HTML attachment was scrubbed... URL: