A friend emailed me to get some ideas for his IB Computer Science (IBCS) class. We had recently discussed The Hour of Code, and how it was a good activity, but it was not deep enough to accomplish anything real.
I gave my friend the same advice I always remind myself to take. If you want to meet your curriculum standards and be interesting, teach students how to make their own math.
The example I gave to my friend went like this, and I typed it out in about five minutes, so forgive the loose structure:
- Have students write a simple grade calculator. The calculator needs to tell the student what score or combination of scores need to be earned in order to reach a target grade. For example, I have a an 89% and I want an ‘A’. What grade do I need to get next or over the next few assessments?
- Then, introduce this question, “Are all courses, grades, and the effort put into activities rewarded the same?”. The goal is to get the students to start looking at the work they do at school in degrees of importance, chance and statistics, etc. For example, how much effort should go into earning an ‘A’ for an elective vs earning an ‘A’ for a core IB course? In fact, does my class grade even matter that much compared to my overall IB score?
- Students then revise their work adding more variables and creating metrics to measure aspects of their academic life. They are creating new metrics. They are learning to assign value to things, in a way that is meaningful to them.
- This activity is automatically differentiated. Standard level students in standard level math courses will use different approaches than higher level students. Students who are strong in economics or business, but weak in math, will approach the problem from completely different level as well.
- The assessment is not that difficult. There are always standard IBCS specific benchmarks that need to be considered. They can form 30%-50% of the assessment plan. The remaining percentage could involve creativity, real-world application, ability to reproduce results, etc.
- Students can do this individually at first, and then in teams to refine their solutions. This is an excellent way to simulate the type of collaboration that happens when people decide to make something new. The team will have to compromise, probably choose a leader, etc. Some will fail. Few will actually succeed. Who said IBCS class cannot be the starting point for entrepreneurship?
Encouraging the use of tools and problem solving is great, but unless students can see beyond language constructs, they are not going to ever get away from programming for the sake of programming. Programming is a tool. Excellent programmers are creative and inventive. Unless those last two concepts are nurtured through planning students will never realize their potential. Also, this keeps IBCS from being boring.
If you want some ideas for programming projects for grades 3-12, send me an e-mail: firstname.lastname@example.org