Course Highlights

The High School Computer Science course is designed to provide all freshmen a base level of understanding of important topics in Computer Science.

Years Taught

Course Units

Units include:

Unit 0: Digital Representation

Binary Crossword Puzzle

The course begins with a unit exploring how different types of data are represented on a computer. Students come to understand that computers simply hold 1’s and 0’s and that the only thing that changes is the way these 1’s and 0’s are interpreted.

Activities include an ASCII-based scavenger hunt, the Flippy Bit Game, and an introduction to hex editing software in order to change from one emoji to another.

Keywords

Data, Binary, Hexadecimal, RGB, Encoding, Decoding, Number Systems, ASCII

Resources

Unit 1: Introduction to Python

Grok Academy

The Introduction to Python unit is taught using the Grok Learning system as its foundation. On top of Grok, we supplement the material with various PRIMM-based activities. These include old classics like having students create MadLibs (strings), Personality Quizzes (variables), and Turtles (loops). It also includes a several new activities such as a Connections-esque game. The focus of these supplementary activities is to give students an ability to show their creativity in what could otherwise be a bit of a rote, boring sequence.

In the end, students are able to effectively read, write, and modify code to solve particular problems.

Keywords

Programming, PRIMM, Grok, Python, Conditional, Variables, Loops, Turtles, EmojiPics

Resources

Unit 2: Fractals and Recursion

Fractal Tree

Given the basic understanding of Python that students got in the previous unit, this unit is designed to expose students to fractals and recursion. The purpose of the unit is to allow them to experiment with different ways to decompose problems and wrestle with the fact that there are many ways to write a correct program. In addition, this dive into recursion allows us to introduce fundamental concepts such as functions, and shows students how computers can be used to model real-world phenomena.

Keywords

Programming, PRIMM, Python, Functions, Call Stacks, Fractals, Recursion

Resources

Unit 3: Programming in Practice

Python Emojis

This third unit on programming teaches students about ways to generalize code and exploit patterns to reduce the amount of code that needs to be written. In particular, we start to move away from Grok and tackle a bunch of different problems from a wide array of disciplines. This includes having students create a Prisoner’s Dilemma “bot” to fight in a class-wide tournament.

Keywords

Programming, PRIMM, Python, Lists, Functions, EmojiPics, Prisoners Dilemma, vscode

Resources

Unit 4: Image Manipulation via Python

Green Screen Bear

This final programming unit has students create bitmap transformations (e.g., converting an image to black and white, combining two images) to give students additional practice with loops, conditionals, and functions. In addition, it reinforces the concepts of data on the file system being a set of 1’s and 0’s that can be manipulated. The unit is particularly nice because it scales to the wide variety of skill sets seen in a gen-ed class with a large number of “stretch problems” for even the most motivated/advanced students.

Keywords

Programming, Python, Pixels, RGB, Photo Editing, PhotoShop

Resources

Pending / Work in Progress