4 ms·
Right? The only reason I got hooked on coding was because I was making cool things. Good practice and CS fundamentals came later. If programming was introduced
by icholy 10y ago
Right? The only reason I got hooked on coding was because I was making cool things. Good practice and CS fundamentals came later. If programming was introduced to me in this "bottom up" approach, I would have lost interest. Math education has the same problem.
- dwaynecrooks 10y agoI know exactly what you mean. I got interested in programming because I wanted to build cool things. I just dived right in trying to learn whatever was necessary to help me build games. Unfortunately, plenty people aren't coming to programming with that exploratory and playful mindset. I also agree with you that math, CS and science education is really messed up, especially in my country. Here's an old gem of a talk from a fantastic CS educator, https://www.youtube.com/watch?v=efhh0Cf6sT8 https://www.youtube.com/watch?v=efhh0Cf6sT8, that I found some years ago.
- jpolitz 10y agoPyret (and the Bootstrap curricula in particular, where we use both Scheme and Pyret [http://bootstrapworld.org/] http://bootstrapworld.org/]) really strives to avoid the purely "bottom up" approach. Curricula in Pyret focus on building games using concepts from math, or interactive simulations using concepts from physics, or data analyses using concepts from working with spreadsheets. I agree that a purely "CS concepts"-based approach is dry and ineffective for a huge portion of students. That's why applications are so critical, and why we build things like tables (https://twitter.com/PyretLang/status/773605473824145408 https://twitter.com/PyretLang/status/773605473824145408) into the language, so we can give students real-world tasks to do right away. We happen to also have carefully designed the language to allow us to teach these applications along with a rigorous programming style. Students write _examples_ that get them ready to understand automated testing, they write _contracts_ that teach them about type-based interfaces, they write _data definitions_ that teach them about structured data, and so on. But it's always in service of an application. So I very much agree that a purely "bottom up" CS-concepts-only approach has issues.