Fun Computer Science Tasks

C is a big language with a lot of features, and it’s easy to get lost in how fun it is. But you can’t really appreciate a feature without knowing what it’s like to do without. So do things with limited resources. Make a binary adder using falling dominoes. Make a functional digital clock with neon bulbs, resistors, capacitors, diodes, wires, and a wall plug. Make a Turing machine with LEGO blocks. (Use a crank to run it.) If you’re really ambitious, make some logic using fluidics with a router and some Plexiglas and the nether end of a vacuum cleaner.

At some point, you will just want to program, though. Here are some projects.

  1. Recursive Towers of Hanoi
  2. Recursive descent parser. Start with a four-function algebraic calculator with parentheses and expand to a little scripting language.
  3. Implement Scheme.
  4. A text adventure game.
  5. A board game, like Tic-Tac-Toe or Reversi. Or a card game.
  6. An interactive animated video game, like Space Invaders

I’ve chosen these, partly because they are fun, but also because they have hidden lessons, which you will discover and bang your head on.


Projects to learn CS and appreciate its underlying structures.

Folksonomies: education computer science

/hobbies and interests/games/board games and puzzles (0.630156)
/hobbies and interests/games/card games (0.463094)
/technology and computing/operating systems/unix (0.416176)

Science Tasks Projects (0.992895 (positive:0.758164)), Recursive descent parser (0.979617 (negative:-0.312019)), functional digital clock (0.937189 (positive:0.362225)), animated video game (0.893119 (neutral:0.000000)), four-function algebraic calculator (0.890817 (negative:-0.271904)), little scripting language (0.882769 (negative:-0.271904)), text adventure game (0.880905 (neutral:0.000000)), binary adder (0.753300 (negative:-0.480111)), Recursive Towers (0.753172 (negative:-0.359174)), underlying structures (0.735644 (positive:0.758164)), big language (0.716038 (positive:0.521546)), neon bulbs (0.715314 (positive:0.362225)), nether end (0.714919 (neutral:0.000000)), Turing machine (0.703484 (neutral:0.000000)), wall plug (0.702860 (positive:0.302617)), limited resources (0.702637 (neutral:0.000000)), LEGO blocks (0.693030 (neutral:0.000000)), Space Invaders (0.687192 (negative:-0.208062)), card game (0.666361 (negative:-0.261725)), board game (0.660730 (neutral:0.000000)), fluidics (0.504452 (neutral:0.000000)), resistors (0.485926 (neutral:0.000000)), Plexiglas (0.485623 (neutral:0.000000)), diodes (0.484223 (neutral:0.000000)), parentheses (0.480679 (negative:-0.271904)), crank (0.477151 (neutral:0.000000)), dominoes (0.476460 (negative:-0.480111)), CS (0.472440 (positive:0.758164)), capacitors (0.472041 (neutral:0.000000)), Hanoi (0.471138 (negative:-0.359174))

Computer Science:FieldTerminology (0.821266 (positive:0.758164)), scripting language:FieldTerminology (0.797476 (negative:-0.271904)), Hanoi:City (0.794987 (negative:-0.359174))

Computer (0.952365): dbpedia | freebase | opencyc
Programming language (0.735982): dbpedia | freebase
Adventure game (0.637305): dbpedia | freebase | opencyc | yago
Mathematics (0.612158): dbpedia | freebase | opencyc
Interactive fiction (0.610571): dbpedia | freebase
Logic (0.531037): dbpedia | freebase | opencyc
Alan Turing (0.461685): dbpedia | freebase | opencyc | yago
Game (0.454624): dbpedia | freebase | opencyc

 What Does It Take To Be An Expert In Computer Programming?
Electronic/World Wide Web>Internet Article:  Pepke, Eric (7/08/2013), What Does It Take To Be An Expert In Computer Programming?, Forbes, Retrieved on 2013-07-09
  • Source Material []
  • Folksonomies: computer science


    09 JUL 2013

     Educational Projects for Waygate

    A collection of projects and exercises that will eventually go into the Waygate education application that uses gamification to encourage children to learn.