Principles of Computing

Course ID 15110

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. Please direct any questions about this waitlist to Sara Kuntz at sgolembi@andrew.cmu.edu.

Course Relevance
A course in fundamental computing principles for students with little to no computing background.

Learning Resources
Canvas, OLI, Piazza, Autolab, Gradescope,

Assessment Structure
10 Problem Sets: 15% (1.5% each), 10 Programming Assignments: 15% (1.5% each), Lab Participation: 5%, In-Lecture Quizzes: 5%, 2 Lab Exams: 10% (5% each), 3 Written Exams: 30% (10% each), Final Exam: 20%

Course Link
https://www.cs.cmu.edu/~15110/