CMU - bsiever/WUSTL-CSE-Curriculum GitHub Wiki
Overview of CS Major
https://csd.cs.cmu.edu/academic/undergraduate/bachelors-curriculum-admitted-2017
Take a minimum of 360 units. Approximate conversion rate: 1 unit @CSE = 3-4 @CMU
Categories:
- CS Core (7-8 courses + Freshman Seminar)
- CS Breadth (5 courses)
- CS Electives (2 courses)
- Mathematics/Probability (4 courses)
- Engineering and Natural Sciences (4 courses)
- Humanities and Arts (63 units = 11 courses a 3 units each)
- Required Minor (counts towards the two above)
- Computing @ Carnegie Mellon (1 course)
- Free Electives (rest)
Core Courses (7-8 courses + Freshman Seminar)
15-128: Freshman Immigration Course* (3 units)
- historical perspectives in the field
- descriptions of research
- future trends
WashU: CSE131R (not required?)
*Students with no prior experience with software tools (editors, scripting, code management, etc.) are encouraged to take 15-131: Great Practical Ideas in Computer Science (Terminal, Vim, Bash, Git, LaTeX; 2 units) concurrently with this course.
15-112: Fundamentals of Programming (12 units)
- Problem-Solving with Top-Down Design
- Testing and Debugging
- Python Language Constructs
- Efficiency
- Algorithm Analysis
- Graphics and Animations
- Object-Oriented Programming
- Recursion
WashU: CSE131
15-122: Principles of Imperative Computation** (10 units)
- Reasoning about code: contracts, invariants, interfaces
- Basic Data Structures and Algorithms: Hash Tables, BST, Linked Lists, Graphs
- Learn C programming language
- Bit Manipulation
- Complexity Analysis
- Memory
WashU: basics of CSE131, CSE247, CSE332
**Students with no prior programming experience take 15-112: Fundamentals of Programming before 15-122:
15-150: Principles of Functional Programming (12 units)
- Recursion
- Specifications and Correctness Proofs
- Work and Span Analysis
- Parallelism
- Polymorphism
- Higher-order Functions
- Modular Programming
WashU: ??
15-151: Mathematical Foundations for Computer Science (10 units)
- Proofs
- Induction
- Functions and Sets
- Combinatorics
- Probability
WashU: CSE240
15-210: Parallel and Sequential Data Structures and Algorithms (12 units)
- Algorithm design techniques
- Parallel algorithms, Parallel data structures
- Analyzing costs by solving recurrences
- Randomized algorithms, Graph algorithms
WashU: CSE231?
15-213: Introduction to Computer Systems (12 units)
- Machine-level code and its generation by optimizing compilers
- Performance evaluation and optimization
- Computer arithmetic
- Memory organization and management
- Networking technology and protocols, Supporting concurrent computation
WashU: CSE361
15-251: Great Ideas in Theoretical Computer Science (12 units)
- Algorithms
- Computability, Computational complexity
- Finite automata, Turing machines
- Graph theory, Boolean circuit complexity
- P, NP, NP-completeness
- Probability theory
- Randomized computation
- Cryptography
WashU: CSE347
15-451: Algorithm Design and Analysis (12 units)
- Efficient data structures
- Lower bounds and NP-completeness
- Approximation algorithms, Randomized algorithms, Geometric algorithms
- Low level techniques for efficient programming
- Linear programming
- On-line algorithms
- Graph algorithms (including maximum flow and matchings), String algorithms
- Streaming
WashU: CSE541T (?)
CSD Course List: https://csd.cs.cmu.edu/course-profiles/csd-course-list
Breadth Requirements
1. CS (5 courses): one in each category:
- Communications
- Algorithms & Complexity Elective
- Logics & Languages Elective
- Software Systems Elective
- Applications Elective
These categories have a specific list of 6-11 possible courses.
2. CS Electives (2 courses)
3. Mathematics & Probability (4 courses): at least one on probability
4. Science and Engineering (4 courses): at least one must have a lab component
5. Humanities and Arts: 63 units
6. Required Minor/Concentration (can also be a second major/dual degree; counts towards requirements listed under 4. and 5.)
7. Computing @ Carnegie Mellon (foundational skills in information literacy and in safe, responsible and effective computing, focusing on the tools and technologies that are specific to Carnegie Mellon)
8. Free Electives