3 ms·
I'll defer to your experience on the first portion. I only did a bit of CS tutoring while in college, and sequential logic was one of the big issues I saw in th
by jdmichal 10y ago
I'll defer to your experience on the first portion. I only did a bit of CS tutoring while in college, and sequential logic was one of the big issues I saw in the intro classes. Recursion was, of course, usually the next big hump after that. I definitely understand the point about opaque syntax, and do agree that, in both math and CS, the tendency is to simply throw these things at students. Compare to the approach taken by R6RS [0]; it's very explicit about symbols and locations and values and what operations like assignment mean.
On the second point, however, I still have some dispute. In maths or natural sciences, are you really expecting prior exposure to the subject matter? Or are you expecting a foundation upon which to build further? [1] I think the latter is a more appropriate statement. However, in CS, I feel it's more the former. "You must have experience programming, so that we can teach you how to properly program." If someone already knows how to program, what are they doing in a CS program other than getting a piece of paper that certifies their knowledge? Indeed, this is the argument you see regarding drop-outs or "equivalent experience" in lieu of degrees.
This is why I argue that we should instead find those fundamental building blocks and teach those instead. Basically, extract programming from the domain of computers, and figure out how to teach that. Then learning programming is about how those concepts apply to the domain of computers, much like how aerospace engineering is about learning how physics applies to airframes. [2]
[0] http://docs.racket-lang.org/r6rs/r6rs-std/r6rs-Z-H-2.html#node_toc_start http://docs.racket-lang.org/r6rs/r6rs-std/r6rs-Z-H-2.html#no...
[1] It doesn't help that something like "math" is really more of an umbrella term for a large number of fields across different domains.
[2] This is, I'm sure, a huge simplification. Hopefully you can see the intent of my point and overlook the crude analogy.