functional languages - pretty good for students!

I've been doing computer science tutoring for a few years in languages like Java and Python. I started teaching a 10th grade student Elm recently. I'd like to use Haskell at some point, but because he likes websites and games, Elm seemed more apropos. What I'm discovering is that a functional language like Elm is fairly natural to him and he's learning quickly! Our lessons prior to Elm (including Python, Java, and JavaScript at this point) are extracurricular and he hasn't put much study in-between lessons, so his progress has been slow. I don't think he's developed many "programming muscles." But now, his progress in Elm is faster. One factor, I think, is how concise functional code is. He hasn't developed much "programmer's eye" up to now (by which I mean scanning a lot of code quickly) but Elm, being much shorter, is easier for him to grasp at a glance. He also thinks the algebraic data model is cool. He sees how it's related to classes and subclasses, but he appreciates how relatively simple it is. Mike

What I'm discovering is that a functional language like Elm is fairly natural to him and he's learning quickly!
This is something I've wondered about a lot and is very interesting to hear actual results on (despite it just being in regards to one student) Despite the connections often drawn between programming and mathematics, imperative programming requires a fairly different model of thinking than most mathematics I'd argue, so I've always believed that if properly presented, functional programming would be simpler to pick up and possibly even lead to more understandable code down the line even when working in imperative languages. Of course, the mathematical density of Haskell concepts themselves is a problem, but it's interesting to hear how easily your student has picked up a "beginner-focused" functional language like Elm as opposed to other "easy languages" that are more imperative. Ashlynn
participants (2)
-
Ashlynn Anderson
-
Dennis Raddle