Core Computer Science
CS 15112: Fundamentals of Programming and Computer Science A fast-paced introduction to programming and computer science principles for students with no prior experience. The course emphasizes writing clear, robust, and efficient code to solve problems.
- Language: Python
- Syllabus: Link to 15-112 Syllabus
CS 15122: Principles of Imperative Computation This course teaches imperative programming and methods for reasoning about program correctness. It focuses on writing correct and efficient code using contracts, data structures, and algorithms.
- Languages: C0 (a safe subset of C), C
- Syllabus: Link to 15-122 Syllabus
CS 15150: Principles of Functional Programming An introduction to programming based on the functional model of computation. The course emphasizes the interplay between inductive types, recursive functions, and proofs of correctness.
- Language: Standard ML (SML)
- Syllabus: Link to 15-150 Course Page
CS 15213: Introduction to Computer Systems A deep dive into computer systems from a programmer's perspective. Topics include data representation, machine-level code, memory management, system-level I/O, and networking.
- Language: C
- Syllabus: Link to 15-213 Course Page
CS 15210: Parallel and Sequential Data Structures and Algorithms (In Progress) A course on designing, analyzing, and programming algorithms and data structures, with a unique emphasis on parallel computation. It teaches students to think about algorithms that can do multiple things at once.
- Language: Standard ML (SML)
- Syllabus: Link to 15-210 Course Page
AI, HCI & Robotics
SCS 07180: Concepts in AI A broad introduction to the foundational concepts and techniques in Artificial Intelligence. It covers topics like heuristic search, decision-making, and machine learning, along with their real-world applications.
HCI 05391: Designing Human-Centered Software An introduction to the principles and practice of human-computer interaction. Students learn to design, prototype, and evaluate user interfaces, focusing on making systems useful, usable, and desirable for people.
- Languages/Tools: Prototyping tools (e.g., Figma), HTML/CSS, Processing
- Syllabus: Link to 05-391 Course Page
LTI 11485: Introduction to Deep Learning A foundational course on deep neural networks and their applications. Students learn the basics of neural networks, backpropagation, convolutional networks (CNNs), and recurrent networks (RNNs).
- Languages: Python (using PyTorch and NumPy)
- Syllabus: Link to 11-485/785 Syllabus
CS 15888: Computational Game Solving (In Progress) ⭐ This course covers the fundamentals and state-of-the-art AI techniques for solving multi-step, imperfect-information games. It explores topics like signaling, deception, and the algorithms used in systems that play games like Poker.
Languages: Python
Syllabus: Link to 11-888 Syllabus
Mathematics & Theory
MSC 21120: Differential and Integral Calculus A standard first-semester calculus course covering the concepts of limits, derivatives, and integrals. It focuses on the theory and application of differentiation and integration for single-variable functions.
CS 15151: Mathematical Foundations for Computer Science A course on the. fundamental mathematical concepts crucial for CS, with a strong emphasis on writing proofs. Topics include induction, logic, sets, functions, and combinatorics.
- Syllabus: Link to 15-151 Course Page
MSC 21122: Integration and Approximation A continuation of 21-120 that explores advanced integration techniques, improper integrals, and differential equations. It also introduces the concepts of infinite sequences and series, including Taylor series for function approximation.
MSC 21241: Matrices and Linear Transformations A first course in linear algebra covering topics like vectors, matrices, solving linear systems, vector spaces, and linear transformations. It emphasizes writing proofs and understanding the theory.
CS 15251: Great Ideas in Theoretical Computer Science ⭐ A course on the foundational ideas and mathematical techniques in theoretical computer science. Topics include automata theory, computability (Turing machines), complexity (P vs. NP), and cryptography.
Syllabus: Link to 15-251 Syllabus
CS 15259: Probability and Computing (In Progress) This course introduces probability theory as it is used in computer science. It focuses on applications in areas like machine learning, randomized algorithms, and performance modeling.
Syllabus: Link to 15-259 Home Page
Humanities, Writing & Electives
HIS 79234: Technology and Society ⭐ A historical investigation into the dynamic relationship between technology and human society. The course explores how technology has shaped culture and politics, and how society, in turn, has shaped technology.
ROB 16161: AI and Humanity (In Progress) A seminar that explores the historical and future impact of AI on human society. It examines narratives and frameworks for considering issues like labor, economic disparity, and what it means to be human in an age of intelligent machines.
PSY 85211: Cognitive Psychology An exploration of how the human mind processes information. The course covers major topics like memory, language, visual processing, attention, and decision-making from a scientific perspective.
CST 84405: The Future of Warfare This course examines and contextualizes new trends in warfare, including information operations, cyberwarfare, and state-supported mercenary forces. It uses case studies like Russian and Chinese activities to explore the evolving nature of conflict.
Student Led Courses
STU 98010: STUCO: Intro to Submission Grappling A student-taught (StuCo) physical education course. It provides an introduction to the principles and techniques of Brazilian Jiu-Jitsu (BJJ) and other submission grappling arts.
STU 98501: STUCO: The Art and Science of Origami (In Progress) ⭐ A student-taught (StuCo) course that serves as an introduction to modern origami. It covers both the technical, mathematical aspects of folding and the artistic aspects of shaping models.