AP Computer Science Principles Blog List

If you teach and blog about AP CSP, please fill out this form so I can link to your blog here too.

This is my first year teaching AP Computer Science Principles. I am super excited to bring the first AP class to my tiny alternative high school. I attended AP training through code.org’s TeacherCon in Phoenix, AZ in July 2017. It was very helpful and so far, I am enjoying using their curriculum.

I created a new blog to use to post a short daily post for each day of my AP CSP class. You can access that site here.

I know other teachers who also decided to blog about their AP CSP classes. I want to learn from you, so I am linking to those here.

Daniel Schneider normally blogs here and has an AP CSP blog here.

Matt Owen normally blogs here and has an AP CSP 180 blog here.

Kaitie O’Brian blogs about both AP CSP and AP CSA here

David Griswold blogs about AP CSP here

Steve Svetlik blogs about AP CSP here

Steph Reilly started a 180 blog for AP CSP here

After a year of teaching Programming with CodeHS

I started teaching programming for the reasons that I mentioned here. I felt pretty clueless about how it would go and I didn’t know exactly how I would even grade students after the first few weeks of the class had passed.

Things I’ve noticed:

  • Similar to Khan Academy, using CodeHS alone and expecting students to work in isolation is dehumanizing and will teach them very little. One of my primary reasons for teaching programming is to help students feel confident taking risks and being creative. Michael Fenton’s Ignite talk sums up this comment better that I can.
  • Students do not look at and think about examples. They just don’t. They have to interact with it for it to be useful.
  • Most of the CodeHS instructional videos begin with a brief explanation of a new coding concept, then go on to write a program using the concept. I’ve learned that that first minute is beneficial, then I stop the video.
  • Some of the units progress a little too quickly, leaving students feeling very under-equipped to write programs. I felt the same way when I completed the unit myself – particularity sections of the JavaScript unit.
  • Some of the programs students are asked to write could be more engaging. For example, they write a program that decides if it is a weekend, there are a few programs that discuss apples & oranges.
  • The instructions for each program could be explained more clearly. A 10 point font paragraph is tough for some students to follow on a screen. A bulleted list of expectations for the programs, or a checklist would be even better: where students check off when their program is able to complete each component.
  • It is missing a projector mode where I can project a complete program with a large, bold font.

What works for my classes

I anticipate areas where students will struggle and develop activities to bridge the gap. These activities include:

  • Modifying the example programs to do something similar, but different then what they currently do. This is much more productive then having students watch the program being written in a video.
    • Some examples:
      1. Change the example program that converts US dollars to GB pounds to instead convert minutes to hours.
      2. Change the example program that draws a blue circle to draw 1 large circle centered exactly on the canvas, and change the color.
      3. Change the calculator example to instead prompt the user for how much money they waste per week and calculate how much money they waste per year.
  • Pencil & paper activities that allow students to think through a challenging coding concept and better understand the computations behind the code. Here is an example of an effective activity to help students understand how for loops can be used to sum numbers:

  • I employ the concept behind the 5 Steps to Orchestrating Productive Math Discussions with students programs:
    • They attempt & submit their programs
    • I pre-select and sequence their programs
    • Student present their code as the class completes a form keeping track of each program and their observations:Capture
    • Students discuss and compare different approaches their peers have to complete a specific program.
  • Minimum lines of code contest: especially at the beginning of the school year, I’ll tell students that we are having a contest today to see who can make their program work using the smallest number of lines of code. This encourages them to think about programming efficiency and style and not just accomplishing a task.
  • Students get choice in a final project for each unit. There is a separate part of CodeHS that includes “supplemental material” I used these and assigned a point value to each program and told students they just had to earn 30 points. some students opted to complete 1 challenging program while others completed many more simple programs.


  • I currently grade with 70% or their grade being successful completion of each programming unit (for loops, variables, booleans…), 20% of their grade is their final project for the unit, and 10% is supplemental practice, worksheets, etc.
  • I’m not thrilled with this system. I keep edging closer to eliminating grades in programming, but I’m not quite ready yet. Maybe after some serious consideration this summer.

Jumping in

It is our Holiday break & I should be planning for the Intro to Computer Programming class that I’ll be teaching starting in 2 weeks. Problem is, I don’t really know how to code. I can write simple programs in a TI-84, and I wrote some C++ & Matlab programs back in college.

I think programming is important & I teach in a very small alternative high school (about 100 students). I have supportive administration. I noticed a significant proportion of students who expressed interest in programming, especially after completing the Hour of Code. Being an alternative school, there are a lot of students who need additional math credits in addition to students who need elective credits & I want them to choose math! Last semester I taught Financial Literacy, which supplies beneficial life skills, but I can’t teach it twice since students need a variety of math elective options. So, programming it is! I asked for it & I got it. IT filled to capacity within a week of scheduling next semester.

So here its what I’m currently thinking about the structure of the class:

The class meets for 90 minutes Tuesdays, Thursdays & every other Friday.

  • I’m going to be heavily dependent on CodeHS’s curriculum. At least this first time. I’m not going to drive myself crazy developing everything from scratch. This is effective when I know what I am doing, but I don’t. I’ll gradually develop this class as I learn more about Javascript & HTML.
  • Since this is for a math credit, I’m going to start every class using Fawn’s Math talks. If I plan to learn a lot by teaching this class, why not try something new for warm-ups too?
  • Since this class will be largely student paced, I need a way to hold them accountable and to stay motivated. I am going to create a student form for daily reflection in the last 5 minutes of each class. This will include: What they learned today, Where they struggled, if they helped or got help form any peers, what activities they completed, room for their comments, and room for a reply from me. I’ll post it here when I make it. hopefully that will be soon.
  • I wish I could think of a fair way to encourage collaboration, but I haven’t been able to figure that out. Maybe we will have discussion time on the every other Fridays where students present where they are stuck and we work together to fix it?
  • I plan to do a hybrid standards based grading (SBG):
  1. 50% of their grade being the standards: all of the programming skills students should demonstrate: for loops, indentation, commenting, while loops, if/else loops, debugging….
  2. 30% Successful Completion of the Challenge projects within each CodeHS unit – I am considering a grading scale where students can choose their grade based on how many of the projects they complete. I don’t know. I may just assign all of the challenge projects because this is their chance to use the 8 Standard of Mathematical Practice and what is cooler than that?!
  3. 20% successful completion of the learning activities.

This all may change as I work through it with students & I’d really like to make more of it my own. I can;t remember the last time I was so dependent on a pre-designed curriculum. I get a little nauseous thinking about it!

[update 1/7 I made a progress log. I’m not sure what I’m missing, so Im only going to make copies for 1 or two weeks, and then I’ll see how they are used & what I should change ]