Course Curriculum

Current Course Offerings

  • Computer Science Principles 1

  • Computer Science Principles 2

  • Web Application Development

  • Honors Advanced Programming

  • Algorithms and Data Structures

  • Modern Computers: NAND to Tetris

Computer Science Principles 1 (CSP1)

An project-based, introductory computer science course for students with none to minimal previous experience. It draws upon a variety of existing curriculums and tailors them to my student audience and school goals. This course best reflects of my work in curriculum development and prefered approach towards teaching computer science.

Computer Science Principles 2 (CSP2)

A project-based computer science course that builds upon the fundamental skills students learn in CSP2 and focuses on giving students they need to have a sustainable future in comptuer science and technology. The course has a focus on project design and development, the transformational algorithms and proceses in computer science, and learning how to learn new programming languages or tools.

Web Application Development

This course is currently under redevelopment. We've got some good ideas, so stay tuned?

Honors Advanced Programming

This course once was a condensed version of the AP Computer Science A curriculum. It's now grown into an object-oriented programming course and an introduction to software development. Through a series of projects, students learn how to develop object-oriented programs in Java, including using APIs, program organization, and designing graphical interfaces.

Introduction to Algorithms & Data Structures

I propsed this additional course after running it several times as an Indepdent Study Project with individual students. Now taught by a colleague of mine, this course is a rigorous introduction to the design, implementation, and analysis of the fundmanetal algorithms and data structures in computer science.

Modern Computers: NAND to Tetris

This is our newest addition to the curriculum. My own supplementary materials are still in development, but the course draws upon the NAND to Tetris curriculum linked here.

Independent Study Projects

I am lucky to work with awesome students. Here are a selection of independent study projects I've advised over the past few years:

  • Computer Vision

  • Functional Programming in Haskell

  • Writing a Lisp Interpretter

  • Machine Learning

  • Data Analysis with Python

  • Introduction to Physical Computing

  • Cryptography