3 ms·
It sounds to me like you haven't spent much time trying to teach a class to program. Most introductory courses these days focus on trying to teach students to u
by marcelluspye 11y ago
It sounds to me like you haven't spent much time trying to teach a class to program. Most introductory courses these days focus on trying to teach students to understand how to solve problems (usually to some degree agnostic of language) and then how to turn their solution into code. The largest mental leap seems to be with the former, and using C as a starting language makes the latter unnecessarily difficult compared to, say, python (which is why it's gaining such popularity among intro. courses
I can understand if one is a) very motivated and b) has the right mindset to properly frame their ideas at the low level c operates at, C could be a good starting language. But this is not the case for many beginners.
- vram22 11y ago>Most introductory courses these days focus on trying to teach students to understand how to solve problems (usually to some degree agnostic of language) and then how to turn their solution into code. The "to some degree agnostic of language" part has been available for a long time in computers, initially as flowcharts and later as pseudocode. >and b) has the right mindset to properly frame their ideas at the low level c operates at, C could be a good starting language That requires prior knowledge and practice more than a mindset, IMO.
- Cpoll 11y agoI agree with this sentiment. In my experience, it's hard enough for a novice to learn to reason through basic control flow (loops, functions, variable assignment). Over a few years of working as a teaching assistant, I saw two types of students: those that had some prior knowledge and effortlessly picked up the concepts, and first-timers that had to put in serious effort to stay afloat. If you were in the former camp, it's hard to envision how the latter might feel, and why every bit of additional complexity is a menace to someone who's already struggling with frustration over internalizing the basics. If you add too much complexity, the novice becomes discouraged, gives up trying to understand, and simply tries to memorize - this is always catastrophic for them. As an example, I'm taking about students that write code like: if(x == true){ y = true } else if (x == false){ y = false }