So with summer workshops fast approaching and the curriculum writing I am hoping to do for the fall I have been asking myself over and over again “What makes a great example?” and “What makes a great exercise?” I truly believe that there is a difference between the two (example = something you do in front of, or with the students, exercise = something the students do alone).
Examples and Exercises both share certain salient features:
* It must contain content or representations of the topic or idea that is your main learning outcome. (it wouldn’t be helpful to have an example for arrays that didn’t contain an array)
* It should be interesting or engaging in some manner - students should want to follow for the context and/or perceived usefulness as they do for the actual mechanics of the code writing.
* It should be complete. A promise of a really cool ap or example that only gets 1/2 done is not always a motivator.
Examples contain a few different ones:
* It should be representative of the difficulty level for which you expect the students to complete exercises.
In addition I would argue that examples allow you to set up an additional learning concept separate from the code. It gives you a chance to talk about a broader feature in order to satisfy the motivation behind the application.
Heres an example I use. When I teach Arrays and I want to do an example where students need to use the index values to access the array out of order, I generally use the example of “teaching” the computer to play blackjack. The actual program is short. It involves an array which initially contains indexes 0-21 all assigned the value of 0.5, the computer then runs a loop where it randomly draws two card values and based on the value stored in the array for the sum of the two cards it decides to either “hit” or “stay”. If the computer hits and loses, it adjusts the value so that it will be less likely to hit in the future, and so on.
This example is in a very very small way an example of machine learning. It sets up a great 10 minute discussion in class about what is machine learning and how it impacts our lives. While I would not expect my students to be able to code any quality ML programs, they can talk about where it would be useful in a variety of fields.
As the AP Computer Science community looks at the A exam for what to add, I ask - what about these kind of ideas? Why not add content about what the different fields of computer science contain? Its easy to make multiple choice questions out of the content that are computer SCIENCE and not just programming (often peoples complaint about AP) and they can also be used to frame free response questions to provide motivation for the snipits of code that students need to write on the exam.
Any thoughts out there?