3 ms·
The first year computer science course that I’m currently assisting at my university has followed a curriculum and philosophy based on the book HtDP by Felleise
by chongli 6y ago
The first year computer science course that I’m currently assisting at my university has followed a curriculum and philosophy based on the book HtDP by Felleisen et al [1]. The model we follow is called the “design recipe” which teaches students to write the documentation for a function as well as some basic examples and tests, all before writing a single line of code for the function itself. The very first of all these steps is to write the purpose statement which serves to document what a function does. As a teaching tool, it helps the students to organize their thoughts and plan their function before they start.
This book is almost 20 years old. It derives from earlier works such as SICP. The concept of writing a purpose statement before you write any code is not a new idea at all. But it seems to be a very good idea. If you can’t write one sentence describing what problem your function solves then you’re probably not ready to start writing it.
[1] https://en.wikipedia.org/wiki/How_to_Design_Programs https://en.wikipedia.org/wiki/How_to_Design_Programs
- ilmariku 6y agoThe approach you're explaining makes logical sense, but that's a really boring way to learn programming. It could work for CS-students, which are pre-selected in a way, but I still wouldn't teach students that methodically. There's just no fun there. For example, I'm an adult-ADHD developer in my 30's and really good at my work. I started programming, by just doing fun things and it's only been after few years as a developer, that I've become interested learning more about CS-theory. It's hard to be interested in such topics unless you have insight on why such things matter.
- chongli 6y agoYeah, so what we've found in the course is that the students hate doing it and tend to mess around a lot instead of following the rigorous procedure, at least with the early assignments. Later on in the course the problem sets get difficult and the students start to gain an appreciation for the process. It stops being this boring thing they're required to do and starts being a powerful tool for them to organize their thoughts instead of muddling around without making any progress.