Principles of Computing
Course ID 15110
Description Principles of Computing is an introductory computer science course for students with no prior experience in computer science or programming. We begin with the fundamentals of programming in Python, including variables and data, functions, conditionals, loops, basic data structures, testing, and debugging. We then build up to modern advanced computer science techniques including AI-assisted programming, data analysis, machine learning, and simulation. This is followed by a unit on algorithms where we compare a range of search algorithms based on functionality, input assumptions, efficiency, data structure use, and parallelism. In parallel with these units we will hold many one-off lectures on demystifying how computers work and ethics in the field of computer science.
Key Topics
Algorithmic Thinking and Abstraction; Programming in Python; Modern CS Techniques (AI-assisted Coding, Data Analysis, Machine Learning); How Computers Work; CS Ethics
Required Background Knowledge
None
Course Relevance
Algorithmic Thinking and Abstraction; Programming in Python; Modern CS Techniques (AI-assisted Coding, Data Analysis, Machine Learning); How Computers Work; CS Ethics
Course Goals
- Develop and communicate algorithmic approaches to solve problems using appropriate levels of abstraction.
- Read, test, and debug Python code that uses fundamental programming constructs.
- Apply modern computer science techniques to solve problems in other domains.
- Compare the strengths and weaknesses of different algorithms that solve the same problem.
- Understand the fundamental principles that make computers and computing systems work.
- Discuss the ethical implications of how computation is used in the world.
Learning Resources
All resources will be posted publicly on the course website (www.cs.cmu.edu/~110/).
Assessment Structure
Students are expected to complete work during lecture and recitation. They will also complete guided assignments outside of class and a self-directed final project at the end of the semester. There will be weekly short quizlets, three oral assessments, two midterm exams, and one final exam.
Extra Time Commitment
Students will be required to meet with TAs and/or course instructors a few times during the semester to go over submitted work in an oral assessment. We will make every effort to accommodate student schedules when arranging these sessions. All other sessions outside of class hours are optional.
Course Link
https://www.cs.cmu.edu/~15110/