I think one of the problems in introducing CS education in K-12 is the lack of a clear widespread rationale for it.
This question is not unique for this list, but it still matters here. There are different goals we may be pursuing,
such as:
- To introduce "fun activities" so that students get less bored in school
- To replace "old-fashioned" core subjects that are less relevant than computing nowadays
- To teach students "real-world skills" so that they can get better jobs
- To help students learn other subjects because "code makes these subjects easier to understand"
- To do something now, because "we think it will become useful in their future", even if we don't know exactly how
- To help children "understand our technological world" better
I am partially paraphrasing Simon Peyton Jones' excellent talk:
https://www.youtube.com/watch?v=y-xgWLYQc4g
Then, another problem is that to make way for it, something else needs to go, and it is not clear what could be
taken away, especially in high school. Should we have one more core subject and less art and PE?
Finally, depending on what the goal is, we have the question of how to accomplish that goal. In particular, what
exactly should be taught to the children, what the expectations are and how we will assess whether they
learned enough.
My personal interest lies in the intersection of coding and math, and the potential of code to illustrate math concepts
and help develop a mathematical intuition. At the same time, I see mathematics as a very fertile ground for all kinds
of computational problems, with an endless supply of interesting questions at all levels of difficulty. In this context,
a pure functional language is the optimal choice, because it helps the students stay focused on the objectives without
getting distracted (or, rather, seduced, as SPJ mentions) by the infinite possibilities of tweaking the look and feel forever.
While my take is probably shared (at least partially) by most people in this list, it is a minority view in the current CS education community.
The challenge is how to make a case for our goal within the current environment, where the goal seems to be just "learning Python"
for the sake of learning Python (or JavaScript) with no further thoughts beyond that.
Fernando
|
www.researchgate.net
PDF | At McMaster University, we have developed a framework for teaching computer science, including curricula and tools (iPad apps: Image 2 Bits and ElmJr; an open-source library GraphicSVG; and a web-based development environment). ElmJr is a projectional
editor for Elm, with...
|
||
Hi Chris, and others.
Since you asked for it ... I have written an opinion piece
https://www.imn.htwk-leipzig.de/~waldmann/etc/prog-edu/
For professional education: yes, I use Haskell by all means.
Of course, it's complemented by a few more colleagues using Haskell,
and even more colleagues not using it, so it's a fine balance overall.
I am happy to discuss detail, swap exercises and exam questions, etc.
For pre-university education (that's what you mean
by "general" education? At least, it's included?): Don't.
To teach programming early (Haskell or not) is, at best,
misguided, and often actually harmful:
* It tends to detract resources from where they are really needed,
namely, teaching fundamentals.
* It tends to hide the fact that software platforms used in
teaching programming tend to use, or to be,
mechanisms of surveillance capitalism.
Best regards, Johannes.
_______________________________________________
Education mailing list
Education@haskell.org
https://mail.haskell.org/cgi-bin/mailman/listinfo/education