Preparing video…

Principles of Computing (Part 1)

Part of the Fundamentals of Computing Specialization »

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Students will refine their programming skills as well as learn the basics of creating efficient solutions to common computational problems.


Eligible for

Fundamentals of Computing Specialization
Course Certificate

Course at a Glance

About the Course

This two-part course (part 2 is available here) introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems.

To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.

After completing this course, you will have a much stronger background in Computer Science and be capable of writing Python programs that are both efficient and well-structured. You will also have a better understanding of how to approach more complex computational problems. As always, our goal is to teach these principles of computing in a fun and exciting way. We look forward to seeing you in class!

Course Syllabus

Our course syllabus can be seen at

Recommended Background

Prior programming experience at the level of "An Introduction to Interactive Programming in Python (Part 2)" (IIPP). Students that have not taken IIPP are welcome, but should be comfortable writing small (100+ line) programs in Python using constructs such as lists, dictionaries and classes. Students should also have a high-school math background that includes algebra and pre-calculus. The first week of class will include material designed to help students accurately self-assess whether they have the necessary background to be successful in this class.

Suggested Readings

For students whose math background may be in need of supplement, we suggest reviewing material from two sections of the Khan Academy: Algebra 2 (specifically functions and their graphs, polynomial and rational functions, exponential and logarithmic functions) and Pre-calculus (specifically probability and combinatorics as well as series, sequences and induction).

Course Format

The first part of the course will last five weeks. The lectures from each week will focus on the topics listed in the syllabus while an associated weekly mini-project will serve to reinforce these concepts in practice. Grades for these mini-projects will be determined via machine-grading. The class will also include a weekly homework designed to reinforce the mathematical concepts in the class material.


  • Will I get a certificate after completing this class?
    Students who enroll in Signature Track will receive a certificate signed by Scott, Joe, and Luay. Note that the class does not offer a Statement of Accomplishment to students who are not enrolled in Signature Track.
  • What resources will I need for this class?
    The only requirement for the class is access to a modern web browser. All programming will be done in a web-based programming environment that supports building applications in Python. The programs that you create will be saved, shared and graded via the cloud.
  • What is the most useful thing I'll learn if I take this class?
    The ability to write well-structured, efficient Python code to solve a wide range of common computational problems.
  • Where can I learn more about the Fundamentals of Computing Specialization?
    You can learn more about this Specialization in the Specialization FAQs!