4 ms·
At my university the introductory programming was taught using scheme and I found it weird at first as I knew the more traditional approaches (personally I have
by yoz-y 10y ago
At my university the introductory programming was taught using scheme and I found it weird at first as I knew the more traditional approaches (personally I have taught myself programming first in Basic and Pascal).
Later I have been assisting a professor during python classes and I have come to appreciate the benefits of a purely functional language for introductions (our teachers have strategically chosen not to talk about the `begin` keyword in Scheme). Many students have had really hard time grasping the idea of variables and scopes.
- Latty 10y agoBecause so many of us learn imperative programming first, then find functional a big shift, I think we forget that everyone learns maths, which has no mutable state in the traditional maths classroom written style, and so functional actually resonates pretty well with people who have never touched programming at all, provided they've been exposed to enough maths.
- banachtarski 10y agoThe weakness to this approach is that learning the functional approach is all well and good but you can't learn this at the expense of learning what the machine does. Learning a traditional ALGOL like C exposes you to memory access, the stack pointer, and other such concepts. You're also a small hop away from assembly where you learn about RISC/CISC architectures, CPU caches, etc. I wish there was a book as popular as SICP that people would read so that the understanding of what the hardware is doing is better across the industry.
- throwaway7645 10y agoI think the book shown with nand2tetris (maybe called the elements of computing) is pretty good going from logic gates to building Tetris. Also "CODE" and "Computer Architecture with the Raspberry Pi" are great.
- yoz-y 10y agoAll of that comes in but I think it is better to introduce an overview of what a computer can do and later explain how it is done. Motivation has a great influence of how well you can learn something. Swamping people with technicalities is a great way to lose them.
- pg314 10y agoChapter 5 of SICP actually goes into the details of how to implement a register machine to execute Scheme, including a simulator, assembler and compiler.