Josh Dybnis on 13 Sep 2003 04:03:23 -0000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [ALACPP] Advice for a teacher, please |
It's impressive that the school has set up a multi-year curriculum. It sounds like the problem is that most students don't make it past the first year. Now I don't have enough information to know why that is, I would guess that the students are not having much fun. It could be because the way it's taught (the right teacher can make sex education into a boring class for high-school students), but I think your gut feeling is right. Doing a year of C is probably killing their enthusiasm. Kids are motivated by results, and C is so low-level that it takes too much work to get results they will recognize. Give them something they can have fun learning. Find out what they use their computers at home for. Then find the programming tool that makes it easiest to build the kind of software they use. If they all do file sharing, teach them Java and have them build their own file-sharing system. If they play games, teach them a graphics framework like SDL with Python and have them build a game. If all they use on their computers is MS Office, for doing their homework (not too likely, but...), then have them build a word processor. If your students are motivated to spend two years programming, they will have no problem at all picking up everything for the AP in their senior year. Now I'm going to take the position of defending the C class. There are some basic concepts students should get down which apply to both C and C++. Like how the stack works, the difference between stack and heap, pointers, and others. These are hard concepts to get, and there is nothing in C++ that makes them any easier, but there is plenty in C++ that will muddy things. Doing C first and then C++ gives students a chance to see these fundamental concepts in a simpler context first. A big side benefit of doing C then C++ is that it gives them the opportunity to understand a high level system (C++) by mentally translating it into a lower level system (C). C++/C is not the only way to do this. It could be any high-level/low-level combination: C/assembly, Basic/C++, lisp/lisp (but I digress), etc. If they miss out on this, they will be missing out on the big picture in computers and a practical skill. -Josh Dybnis _______________________________________________ alacpp mailing list alacpp@xxxxxxxxxxx http://lists.ellipsis.cx/mailman/listinfo/alacpp