Stanford - bsiever/WUSTL-CSE-Curriculum GitHub Wiki

Overview

The major consists of 6 core courses, followed by 4-5 courses in a focused track(this is interesting) + 2-4 elective courses + a senior project requirement. The core seems to cover more systems programming than here at WashU.

6 core courses:

Systems courses

  1. Programming Abstractions (CS106B or CS106X) CS106B introduces students to many fundamental programming concepts and software engineering techniques using the C++ language. The course will focus on teaching problem solving skills, basic abstract data typs, and recursion. General topics include basic programming methodology (engineering, modularity, documentation), data abstractions (stacks, queues, linked lists, hash tables, binary trees, generics and templates), recursion (procedural, backtracking), searching and sorting, and basic algorithmic analysis (including Big-Oh notation). url: http://web.stanford.edu/class/cs106b/ Similar WUSTL course: CSE 131

  2. Computer Organization and Systems (CS107) CS107 transitions students to programming on the UNIX machines. The class aims to teach students about computer systems from the hardware up to the source code. Topics include machine architecture (registers, I/O, basic assembly language), memory models (pointers, memory allocation, data representation), compilation (stack frames, semantic analysis, code generation), and basic concurrency (threading, synchronization). url: http://web.stanford.edu/class/cs107/ Similar WUSTL courses: 132, 332, 361

  3. Principles of Computer Systems (CS110) CS110 will teach students how to build larger scale systems using operating system and networking abstractions. Topics include processes (threading, context switching, interprocess communication), storage and file management (file systems, virtual memory), networking (sockets, TCP/IP, routing) and an understanding of distributed systems. url: http://web.stanford.edu/class/cs110/ Similar WUSTL courses: 422

Theory courses

  1. Mathematical Foundations of Computing (CS103) CS103 will give students the mathematical foundations necessary for computer science. Topics include proof techniques and logic; induction; sets, functions, and relations; an introduction to formal languages; DFA's, NFA's, and Regular Expressions; Context-Free Grammars, Turing Machines, and NP-Completeness. url: http://web.stanford.edu/class/cs103/ WUSTL equivalent: 240

  2. Introduction to Probability for Computer Scientists (CS109) CS109 is designed to teach students material from probability and statistics that is relevant to computer science. Topics include combinatorics; probability theory; conditional probability, and independence; probability distributions; Bayes' Theorem, Law of Large Numbers, and the Central Limit Theorem; and hypothesis testing. The class will also cover applications of probability including hashing, data analysis, inference, and an introduction to machine learning. url: https://web.stanford.edu/class/cs109/ WUSTL similar courses: stats requirement(ESE 326, Math 3200)

  3. Data Structures and Algorithms (CS161) CS161 gives students the tools to analyze data structures and algorithms. Students will also practice devising algorithms for various problems. These skills are widely applicable and alumni report CS161 as one of the most useful classes at Stanford. Topics include algorithmic complexity analysis (Big Oh, Omega, Theta), recurrence relations, and the master method. In addition, students learn about several different classes of algorithms and data structures, including randomized algorithms, divide and conquer strategies, greedy algorithms, hasing, heaps, graph algorithms, and search algorithms (including blind and A* search). url: http://web.stanford.edu/class/cs161/ WUSTL similar courses: 247, 347

Tracks

The general structure of most tracks is similar: one or two gateway courses, two or three highly-related courses, and electives from a list of more broadly related courses. The electives list includes graduate courses in the track area, related classes from other departments, and the general CS electives list.

  1. Artificial Intelligence
  2. Theory
  3. Systems
  4. Human-Computer Interaction
  5. Graphics
  6. Information
  7. Biocomputation
  8. Unspecialized
  9. Individually Designed

Senior Project