Teaching Programming

Started by
34 comments, last by MaulingMonkey 19 years, 6 months ago
Not to advocate Qbasic for this course necesarily, but it bothers be greatly that people are spouting off all these things about it that are not true or are common misconceptions.

1: QBasic does not require line-numbering. In fact, it supports both functions and subroutines (which are functions not returning a value.) I NEVER used a line-number in QB, and infact have only used GOTO where it made sense, which is just as rare as when it makes sense in c/c++.

2: QBasic does, in fact, have structs. You define them using the TYPE keyword.

3: QBasic, when properly structuring your code (using functions, structs, etc.) is just as managable as any procedural programming language. I made alot of software in QB back in the day: 2 full-featured 256 color image editors, Map editors, tileset editors, 2 rpgs (one of which reached over 100k of source code!) and even a GTA1/GTA2 style overhead 3D engine complete with texture mapping. There are many capable graphics and game libraries available for QB.

4: Its a common misconception that QB won't run on WinXP, which I have not found to be the case. In fact, while updating my website recently I decided to pull down some of my old programs and run them. They all worked fine, even the ones using EMS/XMS memory.

Now, all that said, is QB a good choice for this course? In the right hands, it could be. But I think C or maybe even Python or Flash would be a better, more modern approach.

One of my personal goals is to create a QBasic-like language for .NET that supports classes and other OOP features. But I suppose I'll tell you all more in the "Announcements" forum when the time comes :)

throw table_exception("(? ???)? ? ???");

Advertisement
Perhaps you need to consider what sort of students would take a game programming class - how many of them are likely to have no previous coding experience.

Even if you cannot put pre-reqs on the course, maybe you can put an advisory in the course description.

Or it might be more work, but you could come up with what you want to do (a game over the length of the course, like someone suggested) and prepare it in qbasic/python and C. Then see what level of experience they have on the first day & use the one that best matches the level.
As a 4th year BEng student, I'll throw in my 2pence worth.

Design and concept is more important than what language you use. For example, software engineers (in training at least) are given a problem domain, then you pick an appropriate language. However usually serveral languages can be appropriate.

If however you design a game well, then it should be simple enough to produce the design using any langauge.

For example in second year we wrote a time table system using Ada95. Now Ada95 is actually more suited to real time systems, however as we had designed the system well, there was no problem implmenting it with Ada. Although we could easly have implemented the design in java or C++.

As far as picking a language, I would recommend C++. It is one of the most popular choices, so plenty of documentation, information and tools exist to aid C++ development. It's also similair to other langauges, so anyone who has studied C or Java should be able to easily pick it up. It will also stand by the students much better when they go for a job, rather than saying "we used qbasic"

I would recommend doing a basics of java course and then if they want to move on from there they can.

As for the teachers who are frustrated, realize that not all of the students coming into your course have been programming for the past 10+ years.

I can't stand teachers who've been doing something for years and expect a student to pick it up in a week or can't seem to realize how they're having trouble with a portion of the material.

Remember your job is to TEACH, not to belittle.

I had one teacher who teached a new concept just about everyday and when I asked him for help on something he responded with, "Why can't you get this? This is so easy!" and would rant about how easy it was and not actually teach me. Then the next day he would move on to something else, while 75% of the class still didn't understand the prior days work.

The result? The majority of the people in the class failed.

You call that a good teacher? A teacher, TEACHES. If you're having such a high failure rate in your class it's not the students that are the problem, it's you.

Now I'm not accusing anyone of being like this, but just some comments rub me the wrong way.

Everybody views things differently and from different angles, so all because a student asks a question that seems simple to you doesn't mean that he didn't spend his entire weekend trying to figure it out.

To end this long rant, I retook the course with a different teacher and did awesome in it and the new teacher I had actually *gasp* helped me when I had a problem instead of ranting about how easy it was to program when he has been doing it for his entire life and I was just beginning.


So please, for the sake of people who actually want to learn even though you don't know it. Have patience, and remember your job is to TEACH. If you're there just for the money and don't care whether your students pass or fail, then you're not a very good teacher.
Stop banging on about Python! You must use Logo!
Quote:Original post by Anonymous Poster
Quote:Original post by PlutoWarrior
Thanks guys, I'll definetly look into all of those options. I can't put any prerequisites on the course so I wanted a porgramming language that I could teach to newbie programmers relativly quickly, I could teach them c++ except I only know how to set up opengl in visual c++. I've never done it in any free compilers like Dev c++. Mostly cause i've never had to, think any of you could tell me how to set it up or where to go to find out?


And you honostly think your qualified to teach this course? I don't think so. Sorry.


Then all of my teachers (including myself, for a decent amount of time) have been underqualified. Seriously, why bother to learn something if you're not going to use it? And why learn how to use it before you actually need to?

And you honestly think your qualified to determine wheither or not someone else is qualified to teach an entry level programming course? I don't think so. Sorry.

This topic is closed to new replies.

Advertisement