Introduction to Computer Science

  8-12 graders

  Credits awarded on transcript  

  Pre-algebra completed with B- or better

  UC A-G approved for [G] Elective credits

  90 minutes per class

  8-10 students per class

  Twice per week over 36 weeks

  995 per student, per semester  

  Self paced instructor-guided  

  Online community

  Office hours on-demand

  695 per student, per semester  

This is an introductory high-school level course that is designed for students in 9th grade with algebra readiness skills. No prior programming experience is required. It is inspired by a highly successful Intro Computing course (15-112, Fundamentals of Programming and Computer Science) that has been taught at Carnegie Mellon University for the past 10+ years. It is predicated on the notion that learning about programming and computer science should be fun and engaging. This requires interesting problems to solve, as computational problem-solving is the core of computer science.

Students start with Turtle Graphics, a simple drawing package in Python, and use their creativity and imagination to draw different shapes, from simple to quite complex. We choose to first expose students to graphical problems: they are visually engaging, allow for multiple correct solutions, and provide visual cues when a solution goes awry. They also learn to use functions, reuse code, and read from and write to files. No prior programming experience is required. By the end of the course, students will be able to apply the basic skills learned in this course to take more advanced Python courses or learn other programming languages such as Java.

A natural progression from this course is for students to take either or both of the AP® Computer Science courses or Introduction to Data Science.

  University of California A-G approved for [G] College-Preparatory Elective credits.

Course Outline

  1. Functions, arguments, and properties
  2. Conditionals, helper functions and methods
  3. Compound and nested conditionals
  4. Local variables and For loops
  5. Math functions, random values, an nested loops
  6. Types, strings, and while loops
  7. Lists, writing functions that return values
  8. 2D lists and board games

Our technology requirements are similar to that of most Online classes.

A desktop or laptop computer running Windows (PC), Mac OS (Mac), or Chrome OS (Chromebook).
Students must be able to run a Zoom Client.
A working microphone, speaker, and webcam.
A high-speed internet connection with at least 10mbps download speed (check your Internet speed).

Students must have a quiet place to study and participate in the class for the duration of the class. Some students may prefer a headset to isolate any background noise and help them focus in class.

Most course lectures and content may be viewed on mobile devices but programming assignments and certain quizzes require a desktop or laptop computer.

This course includes several timed tests where you will be asked to complete a given number of questions within a 1-3 hour time limit. These tests are designed to keep you competitively prepared but you can take them as often as you like. We do not proctor these exams, neither do we require that you install special lockdown browser.

In today's environment, when students have access to multiple devices, most attempts to avoid cheating in online exams are symbolic. Our exams are meant to encourage you to learn and push yourself using an honor system.

We do assign a grade at the end of the year based on a number of criteria which includes class participation, completion of assignments, and performance in the tests. We do not reveal the exact formula to minimize students' incentive to optimize for a higher grade.

We believe that your grade in the course should reflect how well you have learnt the skills, and a couple of timed-tests, while traditional, aren't the best way to evaluate your learning.