I am presenting at the BCAMT Fall Conference this year about the new Computing Science Elective courses being offered in grade 11 & 12. Here are the slides I am using:
Today we concluded our unit on sorting algorithms in Computing Science 12. I was very impressed by the work the class did to prepare. Students were responsible to research 2 O(n^2) and 2 O(nlgn) sorting algorithms and 1 wildcard that could be anything they like. The wildcard sort would be with integers so students could learn about sorting algorithms that are not comparison based (Radix, Bucket, Counting, etc.), if they wanted to (not a requirement). You can read more about it here.
Students have to implement an interface (download it here) to “plug” into the competition. I built a skeleton project that looks a little cheesy but you can see visually who’s winning as each round completes. I’m not promising it’s perfect, but it added the dramatic effect that had everyone staying in a lunch to watch the results.
You’ll probably do your own tinkering but here’s a few hints about how to setup the competition:
There are two variables to control the size of the test data generated. Depending on the speed of your computer and number of competitors you will probably want to adjust these.
- public static final int SIZEN2 = 1000;
- public static final int SIZENLGN = 100000;
To add your students to the competition they must load their classes into the project and add a new Object from their class to the loadCompetitors() method.
When you compile the project it will start running immediately. Click on the button at the bottom to determine which algorithm will run during the competition. Then hit the usual Greenfoot “play” button and watch the competition unfold. Once the competition is finished just click the button to indicate what the next one will be and you’re ready to go again.
Points are by placement. In a race with 10 competitors, 1st place gets 10 points, 2nd gets 9, 3rd gets 8, … In the event of a time, everyone in the tie gets the lowest amount of that group. For example if three people finished 2nd the points would be 10 for 1st, 7 for 2nd, 7 for 3rd, 7 for 4th, and 6 for fifth, … The competition checks to see if data is sorted properly (it can be either ascending or descending). When a student’s algorithm did not sort the data they are assigned a time of Integer.MAX_VALUE to place them in last.
I guess I got tired of reading about paint mixture problems in textbooks and decided this would be a lot more fun (and it was). The supplies list is attached in the word document above, but it cost less than $10 and most of it can be reused by our math department.
What I liked about mixing the colors was students get to see how ratios maintain a proportion (otherwise the color does not match). Normally you’d have a question like:
- “Paint is mixed in a ratio 3 parts red : 5 parts blue. How much blue paint should be added to 12L or red paint in order to produce the color?”
Students that lack understanding will typically come up with 14L (add 9L to both Red and Blue). It just doesn’t have the same punch when you try to explain as when they see it first hand.
Students at work:
The “target” colors students were comparing their mixes against:
Success (one of the matches)!
I feel like some feedback on the lab itself might help improve it (reducing the number of questions in the tables or omitting them altogether). If you try it let me know how it goes.
Equivalence is one of the big ideas in Mathematics. In grade 8 we work with fractions, decimals, percentages, and ratios. Basically we work with numbers a lot. Unfortunately students tend to think of these representations as being different rather than equivalent because they are taught in separate sections of a textbook and likely different units during the school year. In fact, they may never revisit the topic again once taught.
This year I have been working with the idea of equivalence since September with the hope that students will develop better number sense and become familiar with equivalence as it becomes more abstract later on (ex. convert 3x2+6x+5 to vertex form).
We looked at percentage of a number recently and students could find their own strategies for dealing with simple cases like:
- 75% of 100 (from definition)
- 10% of 50 (by dividing 10 by 2 or dividing 50 by 10)
Where they started to generalize percentages as a proportion was when I posed the questions like this:
- 50% of 30
- 25% of 80
And asked if they could change the context to something other than percentages. Most made the connection between 50% and 1/2 and then could see that 25% was 1/4 (or 25/100) and that asking for the percent of a number was equivalent to asking for the portion of a number.
The beautiful part about this was I never prompted them to multiply by the percent and divide by 100. They made their own sense of the concept and were able to apply it.
One activity I did recently with equivalence and percentages looked like this: Grouping numbers. There was a lot of excellent conversations about how the numbers were related. Give it a try!