I decided not to use tiles because i made this from a tutorial perspective. Introducing tiles i would wait until much later. Although there is a tile-background function in Brutus, but that would make the tutorial a Brutus-only. In my "path" i suggest introducing tiles when making a platformer, although a non-scrolling example would come just before in Pacman. The concept of lining up tiles though comes from the Memory game where the cards have to be laid out and lined up. Anyway, that's the reason for the "crappy" background graphics.
You will notice also i avoided complex types (objects) as well as user defined function calls. Even the collision detection is so basic that it doesn't need attention. Most game programming languages have calls for collision detection between sprites.
At later stages i would introduce more collision detection focus, e.g. with a snake game where i would manually checked at the model level. The snake game i made used a 2D array and detection is basically looking at a given position in the array. Tetris would then suite nicely with a more complex 2D array lookup, because Tetris pieces are of complex shape. This could be followed nicely with an asteroids clone, where collision could be done on graphics level, or as i would prefer, on a model level with circles, triangles and other primitives. (I guess i'm not a big fan of using pixel-perfect collision detection :S). Anyway, the focus on collision detection works well with Asteroids as one can work also with collision response, i.e. in what direction the asteroids explode.
(All trademarks acknowledged;)