Jump to content
  • Advertisement
Sign in to follow this  
benutne

If you were to teach a C++ class...?

This topic is 5043 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement
The Waite Group's "C++ Primer Plus".

This is an excellent book in my humble opinion - I began C++ with this book (or an earlier edition), and it's still on my shelf after almost 10 years of service. If you need a 'teach me C++ book', I'd recommend this one.

On the other hand, "The C++ Programming Language" by Stroustrup is great reference material - go with this one if you will be doing the teaching yourself and need a 'textbook' with exercises, examples and so on.

Amazon linkies:
C++ Primer
http://www.amazon.com/exec/obidos/tg/detail/-/1571691626/102-1627549-1484942

C++ Programming Language
http://www.amazon.com/exec/obidos/tg/detail/-/0201700735/ref=pd_sim_b_2/102-1627549-1484942?%5Fencoding=UTF8&v=glance

It may be worth grabbing a copy of each from your local library and reading through a chapter yourself before making a purchase. :)

Share this post


Link to post
Share on other sites
If they are beginners to programming in general i'd say Accelerated C++ (http://www.acceleratedcpp.com) is my favorite.

Share this post


Link to post
Share on other sites
None.

I mean, there'd be reference texts where they could look things up, but for the blow-by-blow language instruction, I'd ditch books entirely. Dumping a "Hello, World" program on a beginner (the international Teach Programming First Step™) isn't particularly helpful.

I'd actually start with a top-down, statement block-optional language like BASIC, Python, PHP or Perl to introduce them to fundamental concepts. PHP is a strong contender because of its "web-iness" (it's strong association with the web, and the ease of configuring a disposable test server for the class). These languages also have the advantage of automatic memory management and no type declarations per se. After a week or two in that, we'd jump into C++ full-bore. Hopefully we'd have written some programs that actually did something in the first two weeks, so our first (one-week) task would be converting all of them to C++.

But that's just me. I think too many contemporary resources focus too much on teaching syntax, and not enough on teaching language or programming.


If I absolutely had to pick a book, though, I'd actually pick How to Think Like a Computer Scientist: Learning with Python.

Share this post


Link to post
Share on other sites
Oluseyi wins.

But if I really had to teach a C++ class...

... I'd probably still play it mostly by ear. A lot of tutorials and books out there are filled with factual inaccuracies and ways of explaining things that really make me want to rip my hair out.

Oh, and I would avoid mentioning "char" at all for as long as possible. Confusing a numeric type with a textual type is bad mojo, and char * is the devil. >_<

If I had to develop a curriculum for computer programming, it would probably start with a semester working in Python, and then a semester of what they call "computer organization" in university. Attack the problem from both ends, you know. Once you understand how the machine works *and* how to develop algorithms, then you're decently prepared for a lower-level language such as C++. Or hell, Java or C# would be ok at that point too. There'd be an opportunity to talk about VM stuff...

Share this post


Link to post
Share on other sites
Oluseyi and Zahlman i guess you both don't know Accelerated C++, it does a lot of the things you are suggesting. Take a closer look, you might like it.

Share this post


Link to post
Share on other sites
Lets just assume they have some small amount of programing experience in other languages for now. But only simple projects. Nothing huge like, say, a game. :D

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!