what to teach for high school computer science class

Started by
20 comments, last by nilkn 17 years, 10 months ago
Personally, I would go with interactive programs, preferably GUI with something like Visual Basic. Their experience with computers is going to be with GUI's. They will be familar with the elements of a GUI interface. You don't have to get elaborate. You just want to spark their imagination and give them enough to be able to do something practical. Start with a simple calculator, a few edit boxes for entering values, a "calculate" button and display the results.

I would generally follow a theme. As an example I jog so I might do things related to jogging. A starting point might be calculating pace and speed from splits. Expanding upon that might be recording all the splits for a run and getting summary data from it. Expanding even further might be a journal. It doesn't have to be elaborate, just better than a piece of paper.

Basically, if they can do it on a piece of paper then you want them to be able to do it on a computer with a program they wrote. Record keeping need not be all that complex for basic uses. A csv or ini file can do most of what anyone does by hand with a notebook. Once you have that list on the computer you can do all kinds of things with it. That's what you want to show.
Keys to success: Ability, ambition and opportunity.
Advertisement
Quote:Original post by soconne
The class is only 6 weeks long, so I can't delve into too much stuff.

6 weeks is alot of time to teach people programming. I'd say teach them to write a Tetris clone.

Start out with basic C++ for 3-4 days. (Arrays will have to be included).

Introduce them to Allegro, and let them play around drawing circles, lines and squares on the screen using their basic C++ skills for a day or two.
Now simply walk them through the algorithms of the different areas of Tetris:

First let them make a square.
Let them make tetrises of the squares.
Walk them through 90 degree rotation.
Walk them through letting the tetris fall.
Let them figure out if the tetris is falling of screen.
Walk them through making left, right and down arrow work.
Walk them through making collision detection between tetrises.
Let them figure out how to see if a row is filled up.
Let them figure out endgame conditions.
Let them set up a point system.
Let them set up different colors for different tetrises.

The most techincal thing they have to understand here is arrays, it's proberly a tough concept to be introduced to for people with few computer skills, but I bet you it'll catch some of thems interest and if they finish their game, they'll be walking away after 6 weeks with a whole new excitement of computers.
Don't Temp Fate..
Quote:6 weeks is alot of time to teach people programming. I'd say teach them to write a Tetris clone.

Start out with basic C++ for 3-4 days. (Arrays will have to be included).


Holy cow mate! take a look at the audience! they're 10th graders with probably little motivation or interest in computers! A tetris clone??? You give them more credit for intelligence then what they deserve. Not only do they have to understand programming, they also have to know how to do math, inverted cartesian coordinate systems, variables, etc. So many points of failure for such an audience that I'd expect 85% of the class to fail.
From personal experience in tutoring computer illiterate college students, people take a while to learn even the most basic of basic concepts of computers. It once took me 2 weeks to teach someone the idea of nested HTML tables and they still didn't understand it (so frustrating!).
Quote:Original post by slayemin
Holy cow mate! take a look at the audience! they're 10th graders with probably little motivation or interest in computers!

I asume this is a summer school of some sort, meaning that they choose this class themselves? Asuming this, I went on to asuming that making web pages is very very boring if you're from a poor neighbourhood without an internet connection, and that is where the low motivation last year stemmed from. Then I went on thinking that if Soconne walks into a class full of these people put on a tetris game and says "if you all listen to me and work hard - you can make this in the next 6 weeks" they will be motivated

Quote:Original post by slayemin
A tetris clone??? You give them more credit for intelligence then what they deserve. Not only do they have to understand programming, they also have to know how to do math, inverted cartesian coordinate systems, variables, etc.

I don't even know what "inverted cartesian coordinate systems" means, and I've written a couple of tetris clones.

The list I put up distinguises between "walk through" and "let them figure out" where all the hard thinking stuff is left up to the teacher. I might be biassed because I know how tetris works, but is it that hard to figure out if a row in a an array is full?
Don't Temp Fate..
"See, kids. This is a wheel, kids. In two weeks if you work hard, kids, you'll be able to invent wheel just like this one."... very motivating.

I propose doing original things with simple turtle graphics and such. It does work well for getting people interested in programming. I know that. I remember days in computer club where we were doing such stuff. It was back in days of pentium 1. (at that time, though, i had 286 12mhz at home and were mostly doing graphics with turbo pascal)

[You can do nice graphics on zx spectrum 3mhz (not giga, but mega) b.t.w.]
I'd say grab a program like Game Factory and get them to play around with it. It's easy, fun and teaches basic stuff like file formats, the logic behind animation and movement, and even some algorithmic thinking. You can even start them with the free demo games that come with the package, and tell them to make a few changes. Then, if you have the time, make a small game from scratch.
Quote:I asume this is a summer school of some sort, meaning that they choose this class themselves? Asuming this, I went on to asuming that making web pages is very very boring if you're from a poor neighbourhood without an internet connection, and that is where the low motivation last year stemmed from. Then I went on thinking that if Soconne walks into a class full of these people put on a tetris game and says "if you all listen to me and work hard - you can make this in the next 6 weeks" they will be motivated

My point is that they need a lot more time then 6 weeks of computer classes if you're expecting them to create a tetris game. Even if they did create a tetris game, it wouldn't give them anything valuable to take away from the class. If they learn basic HTML, it gives them a foundation and understanding of how webpages work, how to edit a webpage or customize their own personal websites, and gives them a really simple taste of what code is like.

Quote:I don't even know what "inverted cartesian coordinate systems" means, and I've written a couple of tetris clones.

The list I put up distinguises between "walk through" and "let them figure out" where all the hard thinking stuff is left up to the teacher. I might be biassed because I know how tetris works, but is it that hard to figure out if a row in a an array is full?

standard cartesian coordinate system with an X-Axis and Y-Axis, with X-Axis values increasing from left to right and Y-Axis values values increasing from bottom to top.
With inverted cartesian coordinate system, Y-Axis values increase from top to bottom which happens on a monitor. the pixel (0,0) is the top left most pixel instead of the bottom left most pixel.

The difference between us and the 10th grade students is we both already know how to write programs & code and writing a tetris game sounds pretty simple to us, but would be nearly an impossible task for people who barely even understand what a computer is and what it does and how it does it.
I think this ( http://www.kidsprogramminglanguage.com/ ) could be of great help for teaching a 6 week class. The language is very simple, yet can be used to teach the basic fundamentals of any language. Lots of example games and tutorials exist and best of all, it's free.

Hope it helps!
Quote:Original post by astralvoid
I think this ( http://www.kidsprogramminglanguage.com/ ) could be of great help for teaching a 6 week class. The language is very simple, yet can be used to teach the basic fundamentals of any language. Lots of example games and tutorials exist and best of all, it's free.

Hope it helps!


From a freshman in college, no 10th grade male with want to use a product called the "kid's programming language". They are all 15-16 and are fuly matured adults in their own mind.

From experience, you are going to want something simple and visual. Some thing with an intuitive syntax such as BASIC, or python is a must. It is completely stupid trying to explain pointers and templates in a 6-week class. Use graphics libraries to get visual results.

I personally like the tetris idea. Maybe you could take it a step further and let them choose between a couple types of games (pong, tetris, etc.). Teach the very basic syntax in the first week or two, and let the rest be a lab type environment.

From the sounds of it, you are already giving up on the students. Since it is a summer class and sounds fairly specific, I can only assume this is a voluntary class. If they truely are computer illiterate, you may need to spend a week introducing them (it doesn't take much to learn to login in and double click the "Visual Basic" icon).
Sean Henley [C++ Tutor]Rensselaer Polytechnic Institute
Game Maker, BlitzBasic?

Beginner in Game Development?  Read here. And read here.

 

This topic is closed to new replies.

Advertisement