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. Learning Resources Canvas, OLI, Piazza, Autolab, Gradescope, Course Relevance A course in fundamental computing principles for students with little to no computing background. 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/