Introduction to Python
Students use Python for their introduction to the world of programming. This course covers basics such as variables, input/output, graphics, branching, loops, strings, functions, lists, and arrays. Throughout the year an emphasis is placed on using programs to answer compelling questions, create entertaining games, and display original artwork.

Intermediate Python
This second course in Python review some of the topics presented in the introductory course but in greater depth and with more sophisticated applications, and also introduces a number of new topics. This course covers object-oriented programming, recursion, two-dimensional arrays, sets and dictionaries, searching and sorting, and first-class functions. Students learn to use Tkinter to produce graphical user interfaces, which are used to visually illustrate many of the concepts of the course.

Data Structures
This course introduces students to a wide variety of techniques for organizing, sorting, and generally working with various types of data. We cover stacks, queues, lists, sequences, trees, dictionaries, hash tables, and sorting algorithms. Along the way we consider issues of running time, efficiency, and suitability of different structures for various types of data.

Graphics Studio
In the first part of this course, students use their knowledge of Python to produce artwork and graphical games, using turtle graphics, Tkinter, VPython, and Pygame. In the second part of the course, students learn the basics of web programming, using HTML in conjunction with JavaScript to create interactive web pages. Finally, as time permits, we explore some development environments for creating cell phone apps.

Each year, we anticipate developing new computer science electives ranging from App Design to Robotics to Machine Learning.