“The programmers of tomorrow are the wizards of the future. You’re gonna look like you had magic powers compared to everybody else”
– Gabe Newell
President and Founder, Valve Corp
What is Karel?
Karel is a little robot that lives in a grid; sometimes this grid has walls or, maybe, the cells of the grid might have stacks of one or more tokens that Karel can collect.
Karel got lost and needs to get home? He wants to pick up the strawberries from his garden? Get out of a maze? Succeed in a winter olympics event? How can he do all that when all he knows are these four measly commands:
move() # take one step forward
turn_left() # do a 90° military turn to the left
take() # take an object from the floor
put() # put on object on the floor
Well.. Karel is enthusiastic, driven, energetic and very very obedient. What he is not is smart. Fortunately, he has us who, with a little practice and patience, can make his life easier and full of joy. Thus, let’s begin to master the power to help Karel.
In each level we acquire a new ability, a new skill, that let us help Karel deal with the world. Each level takes 2 sessions of 1-1/2 hours, i.e., every two weeks we move to the next level.
- Youngling (weeks 1-4)
We start learning a bit of Karel’s language, i.e., Python, by checking Strings and integers.
- Padawan (weeks 5-7)
We look at the robot simulator, and then work on functions.
- Knight (Weeks 8-10)
Booleans and conditionals (if/else), i.e., we teach Karel how to make decisions.
- Master (Weeks 11-14)
Recursion and iteration, i.e., we learn two problem-solving strategies.