AP Computer Science Principles


week 41: June 19-21

week 40: Jun 5 - jun 9

week 39: May 30 - June 2

  • Info: mahacks.com - a hackathon for high school students - Sat June 10/Sun June 11 - in Sommerville, MA
  • Set-Up: X10 Account
    - send me the URL when complete
  • We will work together to set up an initial page and then upload it to your site
  • Complete: html_lesson_2 - headings and hyperlinks
  • Design: at least one logo for your practice website
    - for now make it 800 wide by 150 high
    - you will need this to complete Lesson 3
  • Complete: html_lesson_3 - adding images

week 38: May 22 - May 26

  • View: 5D, Holograms, & DNA: Amazing Hard Drives of the Future
  • Begin: Use the tutorials on Code Academy to learn HTML and CSS
    - next week in class we will begin setting up websites, and getting the first practice pages out of the way
  • Jake B - you can use the time to work on other things as you are already an html/css guru


week 37: May 15 - May 19

  • Read: About WannaCry virus
  • Tech Fair: Thursday May 18th


week 36: may 8 - May 12

  • Begin: Maker Space and planning for Tech Fair (Thu May 18th)

week 35: May 1 - May 5

week 34: Apr 24 - apr 28

  • Last Chance: Sumbit ALL Create Task components - College Board WILL NOT take any late work
  • Next Friday - May 5th is the exam - we will spend the next few days using a variety of review tools - do not forget to read over all the vocabulary terms...
  • Runestone:
    - set 1: review questions
    - set 2: review questions
    - set 3: review questions
    - set 4: review questions
  • Albert.io - a few sample questions
  • CodeHS - AP CSP Review Practice
    - you do need to login but you should have a codehs account from past classes
  • Review: use our Python Quiz to practice
    - we wil be adding more questions next week
  • Review: Exam Practice - q34-45
    - we will take care of this after the create tasks are uploaded


week 33: Spring Break


week 32: Apr 10 - Apr 13

  • Finish up and submit Create Tasks - for real!
    - use notepad++ to create color versions of your code
    - print using Bull.pdf to keep color
    - edit in Adobe to add circles/squares
    - say thank you to Jake for figuring this process out
  • Review practice exam
  • Review/Continue Runestone practice
  • MakerSpace

week 31: Apr 3 - Apr 7


week 30: Mar 27 - Mar 31

  • Put together the Create task documents - see the template in your Google Drive folder
  • Review: Exam Practice - q34-45
  • AP CSP Create Task Details
  • AP CSP Create Task Rubric

week 29: Mar 20 - Mar 24


week 28: Mar 13 - Mar 17


week 27: Mar 6 - Mar 10


week 26: Feb 27 - Mar 3

  • Begin: EarSketch

  • View: Floating Point Numbers - Computerphile
    32 bits floats in C use IEEE754 representation, which basically has three parts:

    1. One bit for the sign (+, -)
    2. the exponent (sort of a scale) (8 bits)
    3. the fraction (actual digits of the number) (23 bits)

    You basically get a certain amount of precision (such as 7 decimal digits) and the exponent dictates whether you use those for a number like 0.000000001234567 or 123456700000.

    Mantissa: (in computing) : the part of a floating-point number that represents the significant digits of that number, and that is multiplied by the base raised to the exponent to give the actual value of the number

  • Example: Screencast created with QuickTime

  • Video code embedded on page:

  • Complete: A practice screencast of one of your programs running
    upload to your blog when complete

  • Continue: Code.org Unit 5-
    - Complete Stages 1, 2 & 3

  • Create Task: target date to start in class is Thursday March 16th
    - be sure you have your ideas in place before then
    - you will have 10 school days to work on and complete the Create Task
    - if needed you may also work from home
    - end goal is to submit the 3 required files to College Board by the end of March


week 25: Winter Break


week 24: Feb 13 - Feb 17

  • Blog Post: Answer the following questions:
    1. What are three things you are going to submit for this task?
    2. When responding to your process - what 3 things must be included?
    3. When describing your algorithm - what information do you need to include?
    4. When describing your abstraction - what information do you need to include?
    5. How long should the video be and what is the size limit?
    6. What is the acceptible format for the written responses and full source code?
    6. Where and when should you include comments and citations?
  • Rock_Paper_Scissors
  • Exam Practice: Quiz 2
  • Complete: NSA Day of Cyber (we will do this in class)
    - class code: fwb3wbw
  • Complete: Algorithm 2
    - find(or create) an algorithm that calls at least ONE other algorithm. Eventually you will need to demonstrate TWO but we can start with one. Both algorithms should include either logic or math concepts.s
    - screenshot the main algorithm and add a circle
    - also include a image of the code for the called algorithm (this does not need a circle added)
    - describe (1) how each algorithm functions alone
    - (2) how the combined algorithms form a purpose that is important in your program

Sample below:

The algorithm check_alien() loops through a list of alien colors. Colors that meet the condition are sent off to another algorithm that computes the score. The add_score() algorithm takes input variables that contain the current score and the points to be added. The resulting calculation is returned to the calling algorithm. When put together the two algorithms complete the task of reading the provided list of colors and calculating the total points awarded, which is the purpose of the program. Eventually this type of program would be useful for taking in a variety of color lists that might result from a several users game results, and providing totals for comparison.

week 23: Feb 6 - Feb 10

  • Continue: Discussions of Create Task and viewing College Board examples
  • Complete - either in class or for homework - Algorithm_1
    - locate one algorithm in one of your existing programs
    - make a blog post that includes (1) a description of the purpose of the algorithm within the program, and (2) how it accomplishes the task
    - you can include a screen shot of the code (with a circle added) or the PDF file (with the circle added)
  • Complete - either in class or for homework - Abstract_1
    - locate (or create if needed) an abstract(function) that reduces repetitive code in your program and also makes the program easier to read and understand
    - you can include a screen shot of the code (with a circle added) or the PDF file (with the circle added)
    - answer the following prompt:
    Explain how your abstraction helped manage the complexity of the program

Example Abstraction below:

This abstract will print a list of options for the user. Once the user enters a value the input is returned to the calling program code as a value assigned to the variable named choice. Later the program can use the value in choice to validate for errors, and/or supply the correct request. Since this program can be run over and over by the user it makes sense to put this small part into a function/abstract alone. It also make the main body of the program less cluttered and more readable.


Week 22: Jan 30 - Feb 3

  • Blog Post: Looking ahead at the create task - what ideas do you have for your program? Language, purpose, possible ideas for what you will work on - this is the start of recording the entire process from design to implementation so that you have documentation to use when completing the written responses for college board.
  • Back to Python:
    1. Write a program that prints out the first 9 numbers in the Fibonacci series
    2. Write a 2nd program that takes an input value from the user and prints the value of the Fibonacci series at that number
  • Begin: Create Task Practice
  • Practice: Binary, Hex, Decimal conversions
    - good review for all of us

week 21: Jan 23 - Jan 27

week 20: Jan 17 - Jan 20

  • Complete: Code.org Unit 4 Lesson 7
  • Read: From MIT Press: 10 Topics Every 21st Century Citizen Should Know About
  • Blog Post: Give your thoughts on the article - how many of these items were you already familiar with? Is there anything new that you now should go look up to learn more about? Are there topics that you think will go away in the next few years, or ones that will be added?
  • Update your question file - there should be at least 6 in there now
  • Continue/Complete: MIT App Inventor Tutorials
    - complete 8_ball_app (make your version a little more fun)
    - then choose another tutorial to complete


week 19: Jan 9 - Jan 13

Uryc zr Bov-Jna Xrabov, lbh’er zl bayl ubcr.
- (use caesar cipher)

  • Design: T-Shirts
  • Complete: Code.org - Unit 4: Lesson5 - Simple Encryption
  • Complete: Code.org - Unit 4: Lesson 6


Week 18: Jan 3 - Jan 6

  • View: Data & Medicine
  • Complete: Code.org - Unit 4 - Lesson 3 - Identifying People with Data
  • Set Up College Board Account and enroll in our AP CSP class
  • Submit: AP CSP Explore Task - Artifact and Written Response
    use the Template that I put in your Google Drive folder to record your written responses
    - download as a PDF when complete
    - do the same for your artifact file - download and confirm file size is under 1 minute and 30MB
    - review FIRST and once you are certain upload your final copies to your portfolio: digitalportfolio.collegeboard.org
    - be sure to keep copies of these in your own Google Drive folder
    - Explore Task assignments will be graded as the mid-term exam for this class

    - Review

  • Continue: MIT App Inventor Tutorials
    - complete 8_ball_app
    - 1st one like the tutorial
    - 2nd one a bit more creative and personality

  • Quiz Questions & Program
    - create a spreadsheet in your Google Drive folder
    - create 3 questions from your index cards that we used in December - let's agree on a naming convention for these... let's agree to use your initials (lowercase)
    - download the file as a csv
    - upload to your Cloud 9 workspace
    - edit the copy of quiz.py that I put into your workarea & be sure it runs using your csv file

Week 17: Holiday Break

  • Complete: Explore Task

"In order to be a good coder you need to see the potential for failure EVERYWHERE"


week 16: Dec 19 - Dec 23

  • Setup: MIT App Inventor account
  • Continue: MIT App Inventor Tutorials
    - complete 8_ball_app
  • Complete: 3 quiz index cards
    - we will be building our own questions database
  • Continue/Complete: your AP CSP Explore Task
    - These will be sent to College Board the first week of January
  • Checklist - review all details before publishing your Explore Task - please


week 15: Dec 12 - Dec 15


week 14: Dec 5- Dec 9


week 13: Nov 28 - Dec 2

  • Review: Unit 3 - Chapter 1 Assessment (Code.org)
  • Complete: Basic Terminal Apps
    (try to get to hangman and abacus)
  • Choose at least 3 ideas for your Explore Task - we can take some time on Monday to discuss one more time and review requirment changes/questions before you get started
  • Don't forget field trip forms....

Explore Performance Task

"An innovation that depends on computing (or computing tools) to define its functionality - that also has a meaningful impact on society, economy, or culture"

We will discuss the changes in the grading rubric and take a look at some of the new examples. Start thinking about what you would like to choose for a topic - looking around at tech sites (The Verge, Popular Science, Live Science, Computer Security blogs,Tom's Guide, PCAdvisor Tech Gifts 2016) might help with gathering ideas.

Notes: 8+ classroom hours are set aside, and you may also work outside of class on the tasks. We will start using classtime on Dec 5-8 & Dec 12-16 (some of these are 1/2 days, and on the 9th we go to Harvard)

College Board Resources:
- AP CSP Student Page
- AP CSP Course & Exam Details (Full Booklet)
- AP CSP Explore Task Details for Students (pages 103-110)
- Scoring Rubric for Explore
- Student Q & A for Explore

Innovation Litmus Test:
Can you answer 2D? If so, it is probably a good choice - if not, then consider revising the scope of your selection:

2d. Using specific details, describe:

  1. The data your innovation uses
  2. How the innovation consumes (as input), produces (as output), and/or transforms data;
  3. And at least one data storage concern, data privacy concern, or data security concern directly related to the computing innovation


week 12: Nov 21 - Nov 23

  • View: Thingaverse - choose a small product to 3D print
  • Review: Unit 3 - Chapter 1 Assessment (Code.org)
  • We will also visit the maker space area
  • Complete: Basic Terminal Apps


week 11: Nov 14 - Nov 18


week 10: Nov 7 - Nov 11


week 9: Oct 31 - Nov 4

  • Riddle: Can you solve the locker riddle?
  • Continue/Complete: Basic Terminal Apps
  • Conversion Chart: Decimal - Binary - Octal - Hex – ASCII
  • Code.org - finish up Unit 1 (stage 7) - Chapter 1 - including assessment questions
  • ASCII - practice
  • View: Anatomy of a Scene: The Martian
  • View: Lego Mindstorms: The Martian
  • View: History of the Internet
  • Blog Post
    - how important do you think the cables are - what level of protection should we provide - are we being naive in thinking there is no real risk here?
    - Is it ever ok for a government to block Internet? What do you think about the group Anonymous and some of their actions - can these ever be defended? Why do you think Twitter so much more effective when something is happening at that moment? Are there other methods that would work just as well?

    - Read: What would it take to ... (redundancy in real life)
    - Read: Old technology finds role in Egyptian protests
    - Submarine Cable Map
    - Hacking History: Samy Worm

    also consider the following from CNET.com:

    The Internet disruptions spurred activist action. Anonymous, the group that launched distributed denial-of-service attacks on Web sites of financial institutions and others opposing WikiLeaks last year, released a video online in which it threatened to launch DOS attacks on Egyptian government Web sites if the authorities did not curtail censorship efforts. Earlier today, five people were arrested in the U.K. in connection with those attacks.

    Because Twitter has been found to be an effective communications tool during social unrest and protests--in Iran and Moldova, along with Tunisia and Egypt, more recently--it is an attractive target for governments to try to block, along with Facebook.

  • Present: The Internet is for Everyone
    - Internet Slides_ AP_CSP
  • Complete: Code.org (Unit 1 - Stage 10 "Routers and Redundancy" - video, router simulator & questions)
  • View: The Internet: Packets, Routing and Reliability
  • Complete: Code.org (Unit 1 - Stage 11 - "Packets and Making a Reliable Internet" - video & questions only)
  • Complete: Code.org (Unit 1 - Stage 12 "The Need for DNS" - DNS simulator and questions)

    Note: Python 2 uses raw_input()
    - we are using Python 3 so the syntax should be input()

    Regarding IPV6:

    2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456

week 8: Oct 24 - Oct 28

Big Version of my Favicon:

Medium View of favicon:

Actual Size of finished favicon:


Week 7: Oct 17 - Oct 21

week 6: oct 11 - oct 14

Python Tip: One way to reverse a list:

set3_rev = set3[::-1]
(this code is starting from the beginning of a string, and ending at the end, but starting the copy at the end)

The slice operator takes three parameters, where it starts and ends, but also what step to take as it increments. If you leave them blank then the start and end are the default. You could pass in 2 to get every second letter, but you can also pass in a negative value to start at the end and work backwards, hence reversing your string. Also note that if you simply would like a copy of an existing string then don't add a 3rd parameter:

set3_copy = set3[::]
(This code is simply making a copy of set3 called set3_copy)


week 5: Oct 3 - Oct 7

Regarding the Explore Task - College Board has a few updates to definitions:

CB Draft: "A computing innovation is an innovation that includes a computer or program code as an integral part its functionality."
This performance task requires you to select and investigate a computational innovation that: 
- has had or has the potential to have significant beneficial and harmful effects on society, economy, or culture;
- consumes, produces, and/or transforms data;
- and raises at least one data storage concern, data privacy concern, or data security concern. 


week 4: Sep 26 - Sep 30

  • Continue: with Python programming lessons
    - move on to Lists and Tuples
    - complete exercises for this section by Mon Oct 3

  • Explore Task Draft
    - finish discussion regarding college board examples
    - we will start to look at creation of computational artifacts
    - work on creating a artifact for your draft ready by next Monday - Oct 3
    - peer edit artifacts and questions 2a and 2b
    - eventually entire draft will
    be written as a final copy


week 3: Sep 19 - Sep 23

  • Continue: with Python programming lessons
    - by Thursday everyone should have complete the exercise assignments for Variables, Strings & Numbers

  • Explore Task 1:
    - discuss: the expectations for creating a computational artifact
    - begin: computational artifact creation process
    - review the commments left by your teammates

week 2: Sep 12 - Sep 16

  • View: Inside a Google Data Center

  • View: Program or Be Programmed

  • Read: Programmed and Facebook Articles (handouts in class)
    - work in small groups and find a statement you think is important or powerful
    - do you agree with it or not?
    - add your thoughts to the padlet by scanning the code above

  • Discuss: writing activity for "What computing innovation has had the most impact on your life?

  • Complete: Written draft for1st innovation explore task assignment for Thursday so we can peer review
    - AP CSP Explore Task
    - AP CSP Explore Task Rubric

  • Continue: Python
    - variables, strings and numbers

  • Homework: We will choose groups to peer review
    - each person will review two Explore Task drafts (we will figure out groups in class)
    - be sure you are comparing the Explore Task details and Rubric to the written work
    - sometime before class next week read over and add comments to the drafts
    - use Google Drive commenting feature - do not change anything in the original draft
    - you will need to grant editing permissions to your editors

  • Peer Review
    - each person will review two Explore Task drafts
    - be sure you are comparing the Explore Task details and Rubric to the written work
    - sometime before class next Monday read over and add comments to the drafts
    - use Google Drive commenting feature - do not change anything in the original draft
    - you will need to grant editing permissions to your editors

Caitlin edits --> Jake Sean D
Jake edits --> Sean B Mike
Sean B edits --> Skyler Yassar
Skyler edits --> Brian Alex
Brian edits --> Sean D Caitlin
Sean D edits --> Mike Jake
Mike edits --> Yassar Sean B
Yassar edits --> Alex Skyler
Alex edits --> Caitlin Brian
  • Below: Padlet QR Code for our reading responses from Facebook and Be Programmed articles:


week 1: Sep 6 - 9

Cutler-Bell Award Application Deadline November 1 - high school seniors only:

"Eligible applicants for the award will include graduating high school seniors residing and attending school in the US. Challenges for the award will focus on developing an artifact that engages modern computing technology and computer science. "

Up to four $10k scholarship prizes will be awarded. Please encourage your students to prepare their work for submission.

More info: Application Form

  • Discuss: Class Expectations & Course Overview
  • Review: Work Rubric
  • Review: Academic Honesty Policy
  • Login to Google on the desktop
  • Set up a folder for this class and share it with me at: mkelly@sandwich.k12.ma.us
    - Name the folder *yourname_ap_csp
    - Be sure I have editing permission when you share it
  • Set up AP CSP Technology Blog
    - go to blogger.com and set up a blog for this class
    * if you would prefer to use another blogging site (wordpress, weebly, etc) that is also fine
    - send me a link to your blog
  • Class Activity: "What computing innovation has had the most impact on your life?
    - discuss in small groups
    - homework: ask the same questions of someone much older than you (parent, grandparent, etc)
    - tomorrow: writing assignment in class using the two innovations to compare and contrast
    para 1: summarize your innovation - pro/con/why you chose it
    para 2: summarize innovation of your person - pro/con/why they chose it
    para 3: compare the two innovations
  • Join: Classroom at Code.org http://studio.code.org/join/BNZRJB
    - complete through Unit 1 - Stage 3
  • Read/View: Landfill Orchestra
    - complete the pre-survey
  • View: Computer Science is Changing Everything
  • Begin: Python Introduction
    - create a python folder in cloud9
    - work through
    notebooks for: hello world and variables, strings & numbers
    - create as many practice files as you like
  • Need: Permission note from home, notebook/journal, and communication methods
  • Begin: 1st Explore Task Assignment