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. As a result, this will allow students to primarily focus on understanding and applying these principles, without getting bogged down in arcane language details.


  • August 23: First week of classes

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.


Instructor: Prof. Mohammad Hammoud

mhhammou@qatar.cmu.edu, CMUQ 1006, 4454-8506,
Office hours: Mondays, 10:30 - 11:59 AM.

Course Assistants

Name Email Office Hours
Fatima AlHamadi fatimaa@andrew.cmu.edu Monday & Wednesday, 3:30PM-4:30PM
Frewoyni Birhane fbirhane@andrew.cmu.edu Tuesday, 11:30AM-12:30PM & Wednesday, 12:00PM-1:00PM
Igli Mlloja imlloja@andrew.cmu.edu Monday & Thursday, 12:00PM-1:00PM
Niamah Ayisha Nishan nnishan@andrew.cmu.edu Sunday, 6:00PM-7:00PM & Thursday, 10:30AM-11:30AM
Abdullah Shaar ashaar@andrew.cmu.edu Sunday, 12:00PM-2:00PM
Yusuf Saquib yusufsaquib@cmu.edu Sunday & Thursday, 5:30PM-6:30PM

Class hours


Sundays and Thursdays, from 03:00PM to 04:20PM, in Room 2035


Tuesdays, from 03:30PM to 04:20PM, in Room 2035