What about C++ Projects?

I seem to be seeing a lot more interest in C++ is high schools these days. I’m not sure what is bringing it on though. It could be a “back to basics” sort of movement I guess. Or perhaps it is a function of not being able to do “real” pointers in languages like Java, C# and Visual Basic. I know that a lot of systems –level programming is still being done using C++. Frankly I don’t see that changing anytime soon. While applications that are part of the total operating system (system being a key word there) can and are written in languages that use some sort of virtual machine some things call for getting a little closer to the hardware. C++ can really shine there.

This all has me thinking about projects again. What sort of projects are really valuable to a class learning C++? My gut feeling is that people are not learning C++ is a first course. That means that the very basics (this is a loop, this is a conditional) are not that important. Students should know those concepts pretty well and be able to quickly learn the syntax. I suspect that some projects that involve pointers, rather than arrays, and data structures that traditionally are down using pointers (trees, linked lists, circular lists) may be more useful.

In any case I would like to collect a few good C++ projects and write up instructions, common issues with them, and some good coded solutions. If you have a favorite, either that you already use or that you think might be useful, please leave a comment or send me an email. If I can put together a bunch of them by the end of July I’ll share them with everyone.

Comments (2)

  1. Juan says:

    I would think that projects stressing patterns or alorithms would be good. How about teaching some OO basics and then helping enforce that by working on a project that implements the given pattern.

    Would be a shame for students to learn the syntax but learn no design elements.

  2. orcmid says:

    I share Juan’s thinking, but it needs to be tied to running code so the emergence/evocation of the patterns can be experienced.

    My first thought, though, was that anything done here should probably show up on CodePlex and maybe even Coding4Fun.

    My second thought was that designing mazes and maze solvers is also nice.  I think it works without explicit pointers (e.g., refs to objects used as data structures would work), but seeing the invariants for lists structures work under insertion and deletion is always a good demonstration case.  This just came up on John Montgomery’s blog from the Non-Professional Team (NPT): http://blogs.msdn.com/johnmont/archive/2006/06/28/645896.aspx

    And finally, I don’t understand the resurgence in C/C++ interest either.  It would be useful to know what is at the source of that.  (I’m not unhappy about it, just puzzled.)

Skip to main content