Unit 5: Lists, Functions, and Other Advanced Programming Concepts

How's it going? By now, you're probably starting to get the hang of this programming stuff. Now you get to make a big choice. Unit 5 has two possibilities: AP Extension activities if your students are trying to meet the goals of the AP CSP course in one year, or a self-paced learning unit on game design. Hard choice, I know, but you can do it! - Codey

Length

  • 9 classes

Topics

  • Introduction to lists
  • Introduction to functions using parameters/arguments
  • Other advanced topics that will allow students to complete the entire AP CSP course in one year

Option 1 - Unit 5a: AP Extension (a.k.a. Lists and Functions)

Note: If you are NOT concerned about completing the entire AP CS Principles course in one year, this unit can be skipped and replaced with Unit 5b (below).

This unit introduces the concepts of lists expands on the use of functions and adds a few miscellaneous AP CS Principles programming concepts not already explicitly covered.  In many jurisdictions, these concept are NOT part of an introductory Computer Science course.

I recommend familiarizing yourself with the specific concepts covered in the AP CS Principles Course and Exam Description.  The lessons in this unit go beyond what is required of Lists so you may be able to cut some corners if you are short of time.  

PLUS - Our CodeTrain Two-Year program has complete units that focus on Arrays and Functions. For much more robust coverage of those concepts, you should check out that lesson package.

AP Topics

  • 3.10 Lists (a.k.a. Arrays)
  • 3.11 Binary Search (plus its precursor, Linear Search)
  • 3.12 Calling Procedures (aka Functions)
  • 3.13 Developing Procedures (aka Functions)
  • 3.14 Libraries
  • 3.8 Iteration

Unit Quick Links

Option 2 - Unit 5b: Self Paced Learning Unit on Game Design

Note: If you are wanting to complete the entire AP CS Principles course in one year, this unit should be skipped and replaced with the AP Extensions Unit (above)

In past years, I have spent 5-10 classes introducing a game engine for designing games.  Seven classes are scheduled in this doc. However, the tools I have used in the past have recently changed and I am no longer using them. 

I do still like to introduce game design for those that are interested but want to give flexibility to those that are not.  I therefore recommend that you give students a choice of a few tools to learn and have them use YouTube or other sources to learn.  

Suggested options include:

  • Unity Game Engine - free and good for 2D or 3D games
  • Godot Game Engine  - free with good support for 2D games
  • Cocos Game Engine - free with good support for 2D games
  • Advanced Web Design
  • JavaScript
  • AppInventor - for Android Smartphones
  • SonicPi or Earsketch - Two languages designed around music
  • Makerspace or Robotics (Circuit boards, Robotics, Arduino, etc)

I then have them demonstrate their learning in the Unit 7 Project.

Feel free to contact CodeTrain when you are approaching this unit as we may have an updated list of suggestions and learning tools available.