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.
|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|
Sundays and Tuesdays, from 02:30PM to 03:45PM, in Room 1202
Thursdays, from 02:30PM to 03:45PM, in Room 1202