Advanced Computer Science in Python

  11-12 graders

  Credits awarded on transcript  

  Pre-calculus completed with B- or better

  UC A-G approved for [C] Mathematics credits

  Self paced instructor-guided  

  Personalized 1-1 support

  Office hours 1 hour per week

  1669 per student, per semester  

  90 minutes per class

  4-8 students per class

  Twice per week over 36 weeks

  1669 per student, per semester  

  2 hours per day (summer)  

  8-10 students per class

  4 days per week 2, 4, or 6 weeks

  649 per student, per week  

This course will prepare students to potentially obtain college credits from Carnegie Mellon University for the "College Programming and Computer Science" course upon successfully passing a final exam administered by CMU for a fee. 2Sigma School is proud to participate in CMU's pilot on academic credit by examination.

The Python programming language is one of the fastest growing and most popular programming languages in the world. It has a wide range of syntactic constructions, standard library functions, and interactive development environment features. It is the most widely used language for machine learning, data science, and artificial intelligence.

The Advanced Computer Science in Python course is a technical deep dive into the fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles, we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications.

This course provides students with all the essential knowledge and skills needed to become solid intermediate programmers and problem solvers so they can take on decent sized problems on their own and design a solution and make it work. By the end of the course students will creatively solve a problem of their choosing through a capstone project.

Students will also be able to demonstrate career readiness through professional certification as this course aligns with the PCEP Exam requirements.

In order to take this course, students must have completed at least one year of computer science. This can include the Introduction to Computer Science, AP Computer Science Principles, AP Computer Science A, or any equivalent course. Students will also need to have completed Algebra II and Geometry courses so that they can manage the mathematical nature of the programming concepts that we will be covering in this course.


   University of California A-G approved for [C] Mathematics credits.      NCAA Approved.

Course Outline

    hide details
  1. Computer Programming and Python Fundamentals
    In this unit students will acquire a mastery of the fundamentals such as running their own program, tracing through code, and leveraging the basic components of Python, including managing input and output. Students will compute expressions, concatenate strings, and manipulate the basic building blocks that make programs through operators, variables, and function calls.
  2. Control Flow
    Students will learn about controlling the flow of their application based on results of expression evaluation. Few programs run from the first line of code and simply execute every line, straight to the end. Flow control statements decide which instructions to execute under which conditions. Students will map out the flow of their programs using flow diagrams.
  3. Data Collections
    Data is everywhere. Most real-world programs have to acquire, store, process, and understand data. Python data structures such as lists, dictionaries, tuples, and sets, are critical ways to handle data during processing. Students will use these inbuilt data structures and recognize when it is best to use each data structure.
  4. Functions and Exceptions
    In this unit we will organize program logic using functions. Students will learn about the difference between parameters and arguments and how information flows in and out of functions. Students will use Python’s built-in exception hierarchy and implement the basics of exception handling.
  5. Object-Oriented Programming
    Students will learn about Object-Oriented Programming - bundling behavior and state together through class definitions. Students will define a class behavior by creating a method, and learn about declaring and initializing class variables. Next, students will simplify their programs further by using powerful concepts such as inheritance and polymorphism.
  6. Recursion, Animations
    Students will learn how to solve problems by having a function call itself, as a powerful alternative to using iteration (a for or a while loop). They will learn about concept of a stack, how to avoid a stack overflow with infinite recursion, and recursive debugging. Students will also learn about building animations with data structures and classes they have learned in earlier units.
  7. Deployment Methods
    Students will learn to deploy their code through a variety of modalities. They will package their functions and programs into modules, leverage cloud based deployment for web applications and use connection libraries to communicate with databases and across networks. Finally, students will automate tasks using various types of documents and spreadsheets.
  8. Capstone Project
    Students will explore an area of Python that we have not explicitly covered throughout the class but is aligned with their interest. This might include web development, data science, GUI’s with Tkinter, machine learning with PyTorch, or anything they want to learn more about. Students will start with a problem statement and will present their process of choosing the best technologies to develop a solution.

Summer of Code
    see detailed summer schedule

To take any of our courses, students must be familiar with opening a browser, navigating to a website, and joining a Zoom meeting.

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.

Students are required to have their camera on at all times during the class, unless they have an explicit exception approved by their parent or legal guardian.

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, webcam, and an external mouse.
A high-speed internet connection with at least 15mbps download speed (check your Internet speed).

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.