CMU 15-110: Principles of Computing
Carnegie Mellon University
Spring 2019

Units 10
Department Computer Science
Prerequisites None
Description A course in fundamental computing principles for students with minimal or no computing background. Programming constructs: sequencing, selection, iteration, and recursion. Data organization: arrays and lists. Use of abstraction in computing: data representation, computer organization, computer networks, functional decomposition, and application programming interfaces. Use of computational principles in problem-solving: divide and conquer, randomness, and concurrency. Classification of computational problems based on complexity, non-computable functions, and using heuristics to find reasonable solutions to complex problems. Social, ethical and legal issues associated with the development of new computational artifacts will also be discussed.
  • To achieve a broad understanding of:
    • what Computer Science is and to be conversant in a broad variety of CS topics (that is, to exhibit CS literacy);
    • how CS techniques can positively impact non-CS majors; and
    • what coding is and how it can be broadly used even by non-experts.
  • To achieve sufficient coding skills to:
    • read, understand, and modify existing code; and
    • solve basic problems by writing, testing, and debugging code.