The Curriculum

The following is a sample curriculum of the course implemented in a ten-week program. The course is flexible enough to allow the class time to explore what interests them and plays to students strengths while still introducing them to a broad range of computer programming concepts.

Week 0

Introduction

  • What is programming?
  • Hardware vs. Software
  • Hardware Overview
      • Hands-on with an all-in-one board (Raspberry Pi, Kano, Arduino)
      • We will build a computer with peripherals from an all-in-one board like the Raspberry Pi and discuss networking, input and output, and what drives a computer
  • Software Overview
  • Software as a set of instructions and sequences
    • Exercise: Student-led exercise to get computer-like actor to build a peanut butter & jelly sandwich
  • How does this relate to computer programming?
    • Exercise: Human Computers, students will be assigned areas of responsibility — some will be the math unit, some the display, others the CPU — and will execute a series of instructions

Week 1

Programming with Logo

  • Logo, our first programming language
  • Introduction to Logo commands
    • Exercise: Turtles in Real Life, students will use Logo commands to navigate their classmates around a grid to specific targets
  • Our first program — drawing a line with the turtle
  • Our second program — drawing a square with the turtle
  • Programming Concept: Loops — a framework for handling repetitive tasks
    • Hands-on: Converting our first program to use a loop
  • Programming Concept: Debugging — how to handle failure and discover why something doesn’t work the way you expected it to
  • Challenge: What else can you draw with Logo? Using the basic building blocks from the Logo commands reference, what can the students make?

Week 2

Programming with Python

  • Reviewing Logo
  • Introduction to Python
  • Programming Concept: Variables — how we store data our program is using or will process for us
    • Exercise: Mad-libs and Roll the Dice
    • Detour: How variables are stored — we look at the physical and logical way memory is laid out for use by computers
  • Programming Concept: Blocks — a way to structure our code so we can re-use logic and group sets of operations we might want to perform
    • Exercise: Jumping jacks functions and define our own function
  • Programming Concept: Program flow — programs are more interesting when they receive input; from a user, from a service, and we learn some tools and techniques for controlling how our program behaves
    • Challenge: Building your first interactive program

Week 3

Programming with Python

  • Reviewing variables and blocks and program flow
    • A detour into how to re-use code and reinforcement of the previous class’s concepts
  • Programming Concept: Conditions — related to program flow, conditions allow us to make decisions about what code we will execute given a certain set of circumstances
    • Exercise: Conditional Cards, invent your own card game
  • Detour: Problem solving — oftentimes, as a programmer, you need to figure out how you might do something in a programming language or platform, and we will explore various techniques for doing so

Week 4

Programming with Python

  • Reviewing conditions and problem solving
  • Programming Concept: Math — computers excel at math, and we can use this to our advantage and use it to control the flow of our program
    • Hands-on: Building a counter
  • Programming Concept: Collections and data structures — we explore various ways of storing data
    • Hands-on: Playing with lists
  • Challenge: Build your own quiz program — using conditionals, variables, and interactivity students will build their own quiz program

Week 5

Building & Designing a Program

  • Challenge: Build your own quiz program — using conditionals, variables, and interactivity students will build their own quiz program

Week 6

Intro to Object-Oriented Programming

  • Object-oriented programming, an introduction
    • Programming Concept: Classes & Objects — a popular programming methodology, object-oriented programming helps us re-use code and model our real world problems in code
  • Challenge: Replicate your Logo exercises with turtle objects in Python
  • Programming Concepts: API: Application Programming Interface
    • Exercise: Make something functional object-oriented
  • Programming Concept: Inheritance — a powerful programming concept in which objects can inherit behavior and functionality from other objects
  • Mixed Bag:
    • Lego Education and Scratch
      • A quick detour through building physical structures and programming them
      • The students will build a Lego structure and, using the Scratch programming interface, control its movement, utilize the tilt and motion sensors
    • MadLibs with Python
    • Text Adventure with Python
    • Turtle Graphics Programming with Python

Week 7

Introduction to Java

  • Reviewing object-oriented programming with Python
  • Introduction to Java
    • Programming Concept: Compiled vs. Interpreted programming languages
  • Object-oriented programming, continued
    • Programming Concept: Encapsulation — we revisit API and interfaces and a common object oriented programming technique
  • Introduction to Greenfoot, a Java programming platform
    • Hands-on: Create a new scenario in Greenfoot and populate it with a custom world and actors
    • Programming Concept: Documentation — similar to our problem solving lesson, we will explore typical sources of information about an API or programming language

Week 8

Building & Designing a Game

  • Challenge: Build and design your own multi-player program — using inheritance, encapsulation, coordinate planes, the students will build the Hungry Bear Pizza Game in Greenfoot and Java

Week 9

Final Project

  • Challenge: Complete the multi-player Hungry Bear Pizza Game
  • Challenge: Sensing Space — a project using the Sense HAT for the Raspberry Pi, we will use the various sensors — temperature, humidity, pressure, motion — to simulate activities astronauts have carried out on the International Space Station
  • Challenge: Sorting Hat Project — on the Raspberry Pi, students will build a Harry Potter-style sorting hat that will sort students into various groups