Curriculum
The Computer Science Department at Poly's Upper School currently has three core offerings:
- Computer Science (Introduction)
This one-semester introduction to computers and computer science is taught using the Python programming language. (Available to students grades 10-12.) - Advanced Placement Computer Science A
This one-year introductory course uses the Java programming language, and is more intense and abstract than the Introduction course. It is still suitable for students who have had little or no experience with programming. (Available to students grades 11-12.) - Advanced Topics in Computer Science
This one-semester course is Python-based, and develops some of the important abstract concepts of Computer Science in detail. (Available to students who have completed either the Introduction or AP Computer Science courses.)
A handout with further information regarding each class is available here [PDF].
Additionally, the department offers other electives, including:
-
Computer Science and Digital Technology Fundamentals
This single-semester elective course offers a complete introduction to computer science and the use of digital technologies. For students who might not otherwise be taking a computer science course, this comprehensive survey provides practical information and hands-on experience to assist in navigating a digital world. -
Exploring Math with Programming
This course uses Python programming as a tool to review and explore specific math concepts: trigonometry, matrices, and complex numbers. We will use trig functions to rotate and transform geometric shapes to make Spirograph and harmonograph designs. In addition, we will create the Mandelbrot and the Julia set by manipulating complex numbers. We will also use matrices to create and transform 2D and 3D objects. If time permits, we will explore advanced topics such as fractals and genetic algorithms. Through these applications, students will gain deeper insights into these concepts and have the motivation for further studies. While the course will review basic programming concepts such as loops, variables, conditionals, Boolean, and functions, the main focus will be on exploring the math concepts mentioned above. As a result, some familiarity with Python will be helpful for the enjoyment of the course. -
Creative Coding: Generative Art
This course introduces students to the use of mathematics and computer programming within the context of art and design. Students will use object oriented programming and visual programming to create two-dimensional and three-dimensional designs and animations. Students will explore mathematical relationships such as transformations and self similarity to generate artistic pieces. In class exercises, explorations and projects will provide students with the concepts and techniques to use the computer as an artistic medium and creative too. -
Introduction to Machine Learning
This course is intended to introduce the principles of how various machine learning programs operate at a fundamental level. Specific concepts covered include neural network principles, training and stochastic gradient descent, image classification and large language models. Students will create multiple projects throughout the semester demonstrating real applications of deep learning on large datasets. The coding for the course will be completed in Python and some prior programming experience (in any language) is recommended. Mathematical concepts covered include some applications of calculus and linear algebra, but background in the topics is not needed.
Prospective students who are interested in learning a bit more about each of the introductory courses are encouraged to view the courses on their course webpages:
- Computer Science
- Exploring Math with Programming
- AP Computer Science
- Advanced Topics in Computer Science
Students are also encouraged to talk with students who have taken the courses previously or email the instructors with questions.
A welcoming environment
Polytechnic Upper School Computer Science courses are open to everyone. All interested students, regardless of skill level, gender, or ethnicity, are encouraged to join us!
Classes are conducted in a relaxed, cooperative, and welcoming atmosphere, and there is a strict anti-harassment Code of Conduct for our courses.
Resources & Events
References and resources are available to students who wish to pursue their own study outside of formal courses.
- Participate in a Capture the Flag event or the Advent of Code.
- Attend a meeting of Girls Who Code or the Computer Club.
- Attend the Southern California Linux Expo in Pasadena in March each year.
- Check out books from our technical library.
- Check out a Micro:bit to play with and study
- Borrow a Raspberry Pi to experiment with Linux.
- Borrow an Arduino, and build something with servos.
"Should I take a Computer Science / Coding class?"
It's a common question, especially as our world becomes increasingly technology-based. Schools ask students to take science courses not because they are all going to go on to become scientists, but because we value scientific literacy in our society.
In a similar way, having a level of computational literacy is increasingly valuable to us all.
As a Computer Science instructor, I don't believe all students should be required to take coding classes. But the majority of students probably should take a computer science class. Some will go on to work in computer science-related fields, of course, but we all live in a world dominated by technology.
Scientists use computers. Writers have websites. Artists have computer-based portfolios. Business people read these articles in Bloomberg Businessweek and The Economist and quickly realize... we all need to know a little more about technology.
Why?
- Chat-GPT
- computer-based businesses and services
- technology-based automation
- robots
- drones
- banking
- virtual currency
- privacy
- metadata collection
- social networking
- search engines
- machine learning
- artificial intelligence
- self-driving cars
- encryption
- security
- data breaches
- Digital Rights Management
- Open Source
- Big Data
- the Internet
- the Internet of Things
- . . .
These are all facets of our society... and this is just a short list of the technologies we have now.
Learning Computer Science is an important part of everyone's education.
We hope you'll join us!
If you'd like to learn more, feel free to contact Richard White or Dominic Rosato. We teach Computer Science at the Polytechnic School, and are happy to answer any questions you might have.