Monday, October 31, 2016

Teaching Programming

We are coming to the end of our first mini-programming unit.

  • Don't let students get too far ahead.  Another teacher gave me this advice.  Letting students work ahead just makes the gap between students' knowledge greater.  Despite my best attempts to keep students together, I just am struggling to do that.  Students will come in to class and say, I did all of the unit last night at home.  In part, I am excited that they are loving the work... BUT that just crates a big problem for me as a teacher.  Which, I know is selfish.  I think I need to be more explicit about why I want them to work together or not work ahead.  I also might start out the unit with some pair programming.  I anticipate some complaints from students, but... we will see how it works.  Especially since the second unit is much longer and without as many hard stops - I need to have a plan to control student work flow. 
  • For students who finish early, I am having students choose from the following:
    • CSS or HTML in codecademy.com - this is the most user friendly option for students
    • A student showed me http://projecteuler.net/ which has a few different problems that students can think through
    • Start working through CS50
    • Look into the Nature of Code and do problems from there (for students who have physics experiences)
    • Processing/p5
  • I feel like some students who know enough programming just don't get that excited about the visual pieces of programming. For these students, I am thinking of having them do CS50.  To me, CS50 requires a lot more scaffolding for most students, but I am hoping that these students can handle it.
  • I know I am going to finish this curriculum early which means I will have lots of extra time... SO... I am going to have to make some adjustments.  I am thinking about doing a web development extension for students in addition to doing the arduino programming.

Wednesday, October 12, 2016

Encoding Data - With interactive notebooks!

I think it's official, Unit 2 (chapter 1) is maybe my favorite part of code.org's AP CSP curriculum!

I cannot imagine a better way to get students actually excited to compress text than with their text compression widget!  Students would have done that all week had I let them!

I also love the favicon project that students do at the end of the chapter.  I used padlet to show the students' work as they finished and to let other hours see what they were doing.  That strategy worked really well since students put a lot more work/creativity into their projects when they saw others' work and knew it was going to be displayed.  You can find the padlet link here.  I am hoping I can print these out and make a quilt of sorts to display in class.  I just need to find time to do that.  Overall, I am really happy with the level of creativity students had - sometimes I feel like the down side of teaching rule followers is that they don't know how to think outside the box, but after seeing this, I am REALLY excited to see what they do during programming.

This unit I also continued my trend with interactive notebooks.   I've gotta say that these were lower on the "interactive" side of things BUT I think doing these is helping students document their learning.

Here is my pages from this unit.
Here is the table of contents - thanks to Sarah Hagen!

I wish I could have put all my number systems items together in the notebook but students weren't ready to hear about hex until now.  They all follow the same set-up with the hopes of showing students that different base number systems are not scary.


The two above go together - this is probably the most important page.  I should have probably talked about abstraction here too... next year! 


A little mnemonic device for remembering file sizes.  Students were a little grossed out about Billy Bob.

We recapped talking about pictures here... I honestly would love to maybe do one more page where they practice identifying colors and hex.  I don't think that will be a huge part of the AP exam but it definitely shows their understanding of the concept.

AND... sometimes you just need a page to throw in those "extras" - I tried relating it back to the code.org videos where ever possible.  I should probably give examples on this page too. Otherwise, all of this information is from EKs in the curriculum framework.

Since I believe that sharing is caring, you can find all the google docs in this file


I surveyed students on their thoughts about interactive notebooks and got mostly positive results - about 20% are kinda disinterested in them after our first unit, I am hoping that for the AP test they are going to be more enthusiastic about them.

Here is what I asked them:

Inline image 1

Here are the results... they go in order of the questions asked above.

Inline image 2

I will take those results.  I think the real test will come in May to determine how helpful these notes were.

Next I am skipping ahead to Unit 3 - Intro to programming.  I have NO idea what those pages will look like.  I might use some vocabulary pages or maybe do some examples with reading code examples.  I think for the programming unit, daily reflections might be more important than the notes I actually give students since we are building skills more than we are building an "information knowledge" base.