Principles of Computing (Part 1)

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.

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!

Frequently Asked Questions

  • 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!

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.