DEV Community

Discussion on: To C/C++ Or Not to C/C++

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

Starting with C/C++ is like starting in the middle and is not an optimum approach to a curriculum IMO.

If you want to build someone up from the basics, the curriculum should probably start with computer architecture (which was a 3rd or 4th year class when I was in college), then assembly, then C, C++, and so on. This kind of approach shows you the progression of abstraction and how we got to where we are now.

But if you want to start with problem-solving, the curriculum should start at a higher level, like python. Then drill down into the details. Like an assignment which purposely leads the student to cause a stack overflow exception. That paves the way for future topics on hardware constraints and language design.

Starting with C/C++ attacks the student from both spheres at once. I believe an incremental approach (from either direction) would better accomplish the goal of educating students.

My own college curriculum started with C/C++, but supports my hypothesis above. I had the benefit of taking Pascal in high school, which was a higher-level approach to structured programming. In my first college programming class (which was C), the professor stated it would be a weeding out class where 50%+ would fail or drop. I showed up exactly 3 times to lecture - first day, midterm, and final - and was an unofficial lab assistant because people asked me to help when I finished early. I made an A, but not because it came naturally to me. It was because I already had a foothold on the problem solving from a higher level language.