I've been teaching high-school students (12th grade) game programming in the last 2 years. The way I did this till now, was first to give them "half made" classes (for Point, Polygon, etc.) and they've completed them with my help/their friends/themselves, and then they were free to design their models, and write their game logic.

The programming language was C++ and I used GLUT. I gave the students the base class that does all inits for OpenGL so they didn't work on it (except some high-motivated students that wanted to extend their graphics).

My goal was to teach them the fundamentals of C++ using OOP, by implementing their own classes rather than teaching them methods from OpenGL/GLUT API. It's also important to notice that most of those students never programmed in their life and all they knowledge comes from theory in high-school computer science.

I write this post here to get your opinions about the way I handled this class until now, do you think I've done wrong not teaching the OpenGL/GLUT API? do you think I need to utilize OpenGL power to implement basic models, or it's good practice to let them implement models by themselves? Maybe I don't need to use GLUT anymore because there are modern libraries these days that does better work, or it doesn't matter as long as it's for learning purposes?

I really want to give the students motivation by demonstrating what they can do in modern game programming, but I still got my limits which I wrote here, and also time limit (the class is one year, one lesson each week).

Thanks for your help!


closed as primarily opinion-based by Josh Aug 13 '14 at 15:08

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Not to stray too far off-topic, but I'm curious: Why C++/OpenGL, as opposed to higher-abstracting frameworks, say Pygame, Game Maker, Love2D, or XNA? I've only heard first-year university-level computer science courses start with Python or Java (or, more rarely, Haskell or Scheme), never C/++, nevermind OpenGL. Don't you lose anyone? \$\endgroup\$ – Anko Aug 13 '14 at 14:55
  • \$\begingroup\$ Hey, I follow the instructions by the ministry of education, and they only allow using C++, Java, or C# and they suggest OpenGL or DirectX for graphics. Anyway, this project is pretty old and I did it too when I was in high school, I know the it's not modern but that's why I'm asking this question here, to see how can I improve this project, thanks! \$\endgroup\$ – Dor Cohen Aug 13 '14 at 15:28

"My goal was to teach them the fundamentals of C++ using OOP", following this, I think you're making the right choice. I find the OpenGL API doesn't lend itself to OOP( in the programming sense, anyway ) very well. I'm surprised you're even exposing 12th grades to C++ and OpenGL. Most university courses I've seen avoid both of these like the plague.

So, yes, I would suggest keeping the OpenGL API out of learning focused on OOP. The OpenGL way of creating and binding objects really doesn't go well with RAII or many C++ concepts. That should be a course of it's own.

  • 3
    \$\begingroup\$ +1 on this for identifying a narrow scope and goal. Novice programmers have a difficult time understanding the relationship, and boundaries between a language, and libraries, APIs, etc. Minimize time spent learning confusing APIs, and maximize the time spent solving problems using language fundamentals, and design patterns. \$\endgroup\$ – Evan Aug 13 '14 at 14:50

Not the answer you're looking for? Browse other questions tagged or ask your own question.