15-110: Principles of Computing

This course introduces fundamental computing principles for students with little to no computing background. To demonstrate these principles, the Python programming language will be used, especially for being characterized with simple, clean, and well-designed basic programming structures. To this end, students will be able to primarily focus on understanding and applying the presented principles, without getting bogged down in arcane language details.


  • July 31: First week of classes
  • August 4: HW1 is out!
  • August 11: HW2 is out!
  • August 18: HW3 is out!
  • August 25: HW4 is out!
  • September 1: HW5 is out!
  • September 8: HW6 is out!
  • September 28: HW7 is out!
  • October 6: HW8 is out!
  • October 13: HW9 is out!
  • October 29: The Project is out!

Course Overview

Title: Principles of Computing

Units: 10

Pre-requisites: None


Computing can be defined as the study of computational processes that manipulate information. A computational process is one that can be automated, and thus executed by a computer. Therefore, one of the main underlying questions is: what can be (efficiently) automated? This course aims at introducing the science (and art) of computing to students with little or no prior background in this subject.

Given the great number of topics involved in computing, the course will focus on a subset of its core aspects, providing a brief, yet substantial introduction to many concepts. The goal is to provide an idea of what can be automated, and how to realize when it is useful (or, most often, necessary) to employ computation and computers to accomplish a complex goal.

The course will take the student along the way that starts from a complex, possibly large problem to solve, and then move step by step to its abstraction, to its formalization into an algorithmic recipe, to the encoding of the algorithm using the constructs of the python language, to the run-time execution and error correction of the programming code, to the efficiency analysis of the developed algorithm and code.



Prof. Mohammad Hammoud

Email: mhhammou at qatar.cmu.edu
Office Number: CMUQ 1006.
Office Hours: Sundays, 10:00 - 11:30 AM.

Prof. Eduardo Feo Flushing

Email: efeoflus at andrew.cmu.edu.
Office Number: CMUQ 1005.
Office Hours: Mondays, 11:00 AM. - 12:00 PM.

Course Assistants

Name Email
Mohamad El Ghali melghali at cmu.edu
May Khin mkhin at andrew.cmu.edu
Maryam Rahmatullah mrahmatu at andrew.cmu.edu
Raman Saparkhan rsaparkh at andrew.cmu.edu
Ahmed El Fekih Zguir aelfekih at andrew.cmu.edu

Class hours


Sundays and Tuesdays, from 02:30PM to 03:45PM, in Room 1202


Thursdays, from 02:30PM to 03:45PM, in Room 1202

Office hours