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