CMU-ECE-CS-Guide icon indicating copy to clipboard operation
CMU-ECE-CS-Guide copied to clipboard

How to survive CMU as an ECE/CS major

Guide to ECE and CS at CMU

Classes at CMU can be hard. This guide is to give some insight on what to expect from the core classes from the ECE and CS programs at CMU.

ECE Core

  • 18-100: Introduction to ECE
  • 18-213: Introduction to Computer Systems
  • 18-220: Electronic Devices and Analog Circuits
  • 18-240: Structure and Design of Digital Systems
  • 18-290: Signals and Systems
  • 18-500: ECE Design Experience

CS Core

  • 15-122: Principles of Imperative Computation
  • 15-150: Principles of Functional Programming
  • 15-210: Parallel and Sequential Data Structures and Algorithms
  • 15-213: Introduction to Computer Systems
  • 15-251: Great Ideas in Theoretical Computer Science
  • 15-451: Design and Analysis of Algorithms

Math / Science Reqs

  • 18-202: Mathematical Foundations of Electrical Engineering
  • 21-127: Concepts of Mathematics
  • 21-241: Matrix Algebra
  • 36-219: Probability Theory and Random Processes
  • 36-225: Introduction to Probability Theory
  • 21-259: Calculus in Three Dimensions

Electives

  • 10-601: Introduction to Machine Learning
  • 10-605: Machine Learning with Large Datasets
  • 10-701: Introduction to Machine Learning (PhD)
  • 11-411: Natural Language Processing
  • 11-755/18-797: Machine Learning and Signal Processing
  • 11-785: Introduction to Deep Learning
  • 15-410: Operating Systems
  • 15-418: Parallel Computer Architecture and Programming
  • 15-424: Logical Foundations of Cyber-Physical Systems
  • 15-440: Distributed Systems
  • 15-445: Introduction to Database Systems
  • 15-455: Undergraduate Complexity Theory
  • 16-311: Introduction to Robotics
  • 16-385: Computer Vision
  • 16-720: Computer Vision
  • 16-833: Robot Localization and Mapping
  • 17-214: Principles of Software Construction
  • 17-437: Web Application Development
  • 17-480: API Design and Implementation
  • 18-330: Introduction to Computer Security
  • 18-335/732: Secure Software System
  • 18-341: Logic Design and Verification
  • 18-344: Computer Systems and the Hardware-Software Interface
  • 18-349: Introduction to Embedded Systems
  • 18-447: Introduction to Computer Architecture
  • 18-491: Digital Signal Processing
  • 18-540: Rapid Prototyping of Computer Systems
  • 18-578: Mechatronic Design
  • 18-623: Analog Integrated Circuit Design
  • 18-640: Hardware Arithmetic for Machine Learning
  • 18-652: Foundations of Software Engineering
  • 18-660: Optimization
  • 18-661: Introduction to Machine Learning for Engineers
  • 18-665: Advanced Probability & Statistics for Engineers
  • 18-690: Introduction to Neuroscience for Engineers
  • 18-698: Neural Signal Processing
  • 18-723: RF IC Design and Implementation
  • 18-746: Storage Systems
  • 18-747: How to Write Low Power Code for IoT
  • 18-749: Building Reliable Distributed Systems
  • 18-759: RW Wireless Networks
  • 18-785: Data Inference and Applied Machine Learning
  • 18-792: Advanced Digital Signal Processing
  • 18-793: Image and Video Processing
  • 18-794: Pattern Recognition Theory
  • 18-847C: Data Center Computing
  • 18-847F: Foundations of Cloud and Machine Learning Infrastructure
  • 18-898D: Graph Signal Processing and Geometric Learning
  • 24-104: Maker Series: Intro to Modern Making
  • 80-180: Nature of Language
  • 80-405: Game Theory
  • 82-208: Eastern Europe: Society and Culture

Research Papers

  • Closed-loop Neural Stimulation with Real-time Spike Sorting
  • Exploring IoT Smart Cities
  • Personalization Revisited: A Reflective Approach Helps People Better Personalize Health Services and Motivates Them To Increase Physical Activity
  • SnapLoc: An Ultra-Fast UWB-Based Indoor Localization System for an Unlimited Number of Tags
  • Synthetic Sensors: Towards General-Purpose Sensing
  • TSM: Temporal Shift Module for Efficient Video Understanding