Top 10 CS Classes

No one likes to get a bad grade. That’s why it’s important to know which classes will give you an easy A. This blog lists the top 10 easiest CS classes at CMU.

1. 15-213: Introduction to Computer Systems

We will explore how computers work on the inside, from how bits are represented in memory through how a program executes on a CPU. We’ll examine how the various components of a system fit together, with particular emphasis on performance and correctness. Along the way we’ll learn about low-level languages like C and assembly language; data representations for integers, floating-point numbers, and strings; procedures, stacks, and memory management; virtual memory, dynamic linking, and the code-data distinction; threads and concurrency; and basic computer architecture.

2. 15-513: Principles of Software Construction

Software construction is generally considered to be the “hard” part of software development: it’s where the rubber meets the road. All those beautiful ideas must be made real by writing code that implements them – without introducing bugs or performance bottlenecks. This course covers many issues involved in software construction, including design patterns and testing strategies.

3. 15-122: Principles of Imperative Computation (Python)


CMU Codes is a blog that showcases the top 10 classes in CMU’s School of Computer Science. It was launched in October 2014 and has grown to over 4,000 readers per month. Currently, it is run by me and two other students at CMU.

In this blog, I provide brief descriptions of some of the best classes taught at CMU. I have taken 7 of these classes and am taking 2 of them this semester.

For each class, I describe the content, projects (if any), readings (if any), prerequisites and difficulty level. For some classes, I have also provided links to the syllabus and lecture notes.

I provide a rating for each class on a scale of 1 to 5 stars. The more stars the better!

For general advice on picking classes at CMU, see my post “How to select your CS classes.”

CMU is known for its top-notch, rigorous Computer Science program. It’s hard to believe that this is almost entirely free through the open course platform. Through this site, I hope to highlight the most popular and best rated courses in each area of study, as well as personal favorites that just don’t get enough attention.

Computer Science has been a part of Carnegie Mellon University since the university’s founding in 1900. While our department is built on a rich history, we are also committed to shaping the future with cutting-edge research and innovative educational opportunities.

Our faculty and students have developed some of the most widely used programming languages and software tools in existence, such as Java, C++, Python, Zotero and Linux. Our researchers are leading innovations in machine learning, robotics, language technologies, data science and more. We are educating the next generation of leaders in computing through our undergraduate programs in computer science and computational biology; our master’s degree programs in software engineering and computer science; our doctoral programs in computer science; and our interdisciplinary Ph.D. program in computational biology.

Our faculty are dedicated teachers who are passionate about educating students at all levels — undergraduate and graduate — to be world-class researchers who will help shape the field of computing for decades to come. We invite you to explore our website to learn more about what we do and how you can become a part of it.

The algorithm for inclusion on this page: one of us takes the class and enjoys it. We’ve noticed that if you enjoy a class, you learn more from it, so we think our method is a good way to identify classes that are particularly conducive to learning.

Note that enjoying a class is not the same thing as thinking it’s easy. Some of our favorite classes were very difficult, but the difficulty was more than compensated for by the enjoyment.

Graphic Design for Non-Designers (18-585)

Leave a Reply

Your email address will not be published.