NewCurriculum
A better curriculum for teaching Computer Programming
Idea
When I was very young (elementary school) one of the ways I first learned about programming was through programming games such as A.I. Wars. I think competitive games could be an excellent tool for teaching computer programming to both children and adults.
There are several freeware or open-source programming games available today which look promising.
- Core Wars - Assembly-like programming language
- RoboWar - Stack-oriented programming language
- Robocode - Java or .Net languages
- Battlecode - Java languages (don't see any source code yet)
What I am proposing is developing a curriculum based on (or inspired by) these games.
Proposed Curriculum
Stage 1: Introduction to programming with RoboWar (teach a very simple programming language)
Stage 2: Introduction to high-level programming with Robocode (teach a higher-level programming language)
Stage 3: TECS Part 1: Assembly language. (Based on the first half of "The Elements of Computing Systems", it would teach how to create a machine to run Core Wars battles.)
Stage 4: TECS Part 2: Higher-level lanaguage. (Based on the second half of "The Elements of Computing Systems", it would teach how to create a game like Robocode or Battlecode.)
This could probably be broken up into 4 single semester courses.