It's been a while since I mentioned my computer science teaching, so I thought I was due for a post. I am solo teaching a lesson tomorrow, so I think I'll turn my lesson planning into a post. As a brief reminder, I am teaching from the BJC curriculum for the AP Computer Science Principles course. The specific lesson I am teaching is Unit 3: Lab 4.
The first page is a clever way to provide new applications for technology that we've already taught the students. It will provide a good review of concepts that they've already tried, but probably haven't committed to memory yet. The second page will introduce them to some new concepts. The high-level task is they will be building a bar graph of CO2 emissions devided by country. It still surprises me how versatile Snap! can be when it is applied creatively.
Page One
On this page, I am going to start by reviewing the supplied code including constructors, selectors and the custom block for finding the max of a list of numbers. They will then need to implement blocks to write the axis, add labels and finally fill out the blocks. The axis is line drawing with some math for proper placement. The block filling will be much like the previous brick lab. The label is a bit trickier, as there is no built-in Snap! block that just writes text in on the screen. However, they give a basic "Label" block which writes a word of a given size in the direction of the pointer. They will then have to wrap the label block with additional functionality support different locations and rotations. Finally, they have to combine all these new blocks into additional blocks. This may be the most complex project my students have tackled yet. However, if you load the sample Snap! they do a great job of stubbing out functionality and breaking the project into manageble chunks.
I am going to leave page 2 for another post. I am excited to teach this lab. I will try and include an update on how the day went.
Image 1