the new system
The goal of OOP is not to teach programming but i really feel that at least there should be something i can do to help my students. so i started the following strategies for class.
The Pilot-Copilot system -- pair programming where one person (the copilot) is not allowed to touch the keyboard. this promotes communication between the pair. if the copilot has a better skill level than the pilot, then the pilot will learn programming startegies and the co-pilot will learn how to explain his code. In the case that the pilot is better... well at least the next meeting their roles will shift. Which brings to the second point.
The 4 meeting system -- Aside from an exercise based from the lesson, there will be drill exercises, problem solving type machine problems to practice their programming skills. The first second meeting will have the pilot-copilot system, swapping roles for the second meeting. The third meeting will be a discussion of the problems solved previously. The final week will be an individual machine exercise session, with each ME scoring 3 times more, as a test of the student's improvement over the last four meetings.
The Free-for-all Machine exercise -- on the third meeting, students are required to submit an open ME, no objectives, just a program showing how much they know about Java and OOP. Bonus points for exemplary FFA ME's, which will be uploaded to a website so that other students could see how the program was done, and thus learn a little bit more.
My students had fun today. There's a psychological support to have someone to argue with over execises.
Today's problems:
ME6:
Enter word: Mississippi
Enter letter: i
There are 4 i's in Mississippi
M_ss_ss_p_ <-- +2 bonus
ME7:
Guess a number between 1-100: 20
Too low, guess again
Guess a number between 1-100: 70
Too high, guess again
Guess a number between 1-100: 60 (+3 if random)
You got it in 3 tries!