0% found this document useful (0 votes)
39 views5 pages

MIT BS Computer Science - Course Descriptions

The document outlines the course requirements for a Bachelor of Science in Computer Science at MIT, detailing General Institute Requirements (GIRs) and specific departmental courses. It includes core courses in programming, algorithms, and computer systems, as well as advanced topics in theoretical computer science, security, and architecture. Additionally, students must fulfill communication requirements and can choose electives to explore specific interests within the field.

Uploaded by

Khan Kakar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views5 pages

MIT BS Computer Science - Course Descriptions

The document outlines the course requirements for a Bachelor of Science in Computer Science at MIT, detailing General Institute Requirements (GIRs) and specific departmental courses. It includes core courses in programming, algorithms, and computer systems, as well as advanced topics in theoretical computer science, security, and architecture. Additionally, students must fulfill communication requirements and can choose electives to explore specific interests within the field.

Uploaded by

Khan Kakar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

MIT BS Computer Science - Course Descriptions

General Institute Requirements (GIRs):

● Communication Requirement: Integrated into Humanities, Arts, and Social


Sciences (HASS) coursework.
● Science Requirement: Covers fundamental scientific concepts.
● HASS Requirement: Courses in humanities, arts, and social sciences. Two
courses can be fulfilled by specific department options. At least two must be
communication-intensive (CI-H).
● Restricted Electives in Science and Technology (REST) Requirement: Can
be satisfied by specific department courses.
● Laboratory Requirement: One lab course is required.
● Physical Education Requirement: Includes a swimming test and four PE
courses.

Departmental Program:

● Computer Science Requirements:


○ 6.100A or 6.100L: Introduction to computer science and programming
(Python)
○ 6.1010: Fundamentals of Programming
○ 6.1020: Software Construction
○ 6.1200[J]: Mathematics for Computer Science
○ 6.1210: Introduction to Algorithms (or 6.1220[J]: Design and Analysis of
Algorithms)
○ 6.1400[J]: Computability and Complexity Theory (or another approved
course)
○ 6.1800: Computer Systems Engineering
○ 6.1903: Introduction to Low-Level Programming (C and Assembly)
○ 6.1910: Computation Structures

Additionally:

● Students choose at least two communication-intensive (CI-M) courses from the


major to fulfill the Communication Requirement.
● Beyond the core requirements, there are elective courses that allow students to
explore specific areas of computer science that interest them.
Course Descriptions:

● Introduction to Computer Science:


○ 6.100A: This half-semester course assumes no prior programming
experience. It introduces fundamental computer science concepts and
Python programming.
○ 6.100L: This full-semester version of 6.100A is designed for beginners
who want more practice with Python programming concepts.
● Core Computer Science Courses:
○ 6.1010: Fundamentals of Programming: This course builds upon
6.100A/L, diving deeper into Python programming with object-oriented
programming and advanced data structures.
○ 6.1020: Software Construction: This course focuses on designing,
implementing, testing, and debugging larger software systems using
software design methodologies and unit testing frameworks.
○ 6.1200[J]: Mathematics for Computer Science: This course strengthens
the mathematical foundation for computer science, covering discrete
mathematics, graph theory, and linear algebra.
○ 6.1210: Introduction to Algorithms: This course explores designing and
analyzing algorithms, a core concept in computer science. It covers
fundamental algorithmic paradigms for sorting, searching, graph
algorithms, and dynamic programming.
● Advanced Courses:
○ 6.1400[J]: Computability and Complexity Theory: This advanced
course explores the theoretical foundations of computer science,
investigating the limits of computation and complexity classes.
○ 6.1800: Computer Systems Engineering: This course dives into the
underlying hardware and software principles of computers, covering
computer architecture, memory organization, operating systems, and
computer networks.
○ 6.1903: Introduction to Low-Level Programming (C and Assembly):
This course explores C programming and assembly language, providing
insights into how compilers translate code to machine instructions.
○ 6.1910: Computation Structures: This course focuses on advanced data
structures and algorithms, exploring complex data structures and efficient
data organization techniques.
Course 6- Electrical Engineering and Computer Science

❖ Programming & Software Engineering

• 6.100A Introduction to Computer Science Programming in Python


• 6.100B Introduction to Computational Thinking and Data Science
• 6.100L Introduction to Computer Science and Programming
• 6.1010 Fundamentals of Programming
• 6.1020 Software Construction
• 6.1040 Software Design
• 6.1060 Software Performance Engineering
• 6.5060 Algorithm Engineering
• 6.5080 Multicore Programming
• 6.5081 Multicore Programming

❖ Programming Languages

• 6.1100 Computer Language Engineering


• 6.1120 Dynamic Computer Language Engineering
• 6.5110 Foundations of Program Analysis
• 6.5120 Formal Reasoning About Programs
• 6.5150 Large-scale Symbolic Systems
• 6.5151 Large-scale Symbolic Systems
• 6.5160[J] Classical Mechanics: A Computational Approach

❖ Theoretical Computer Science

• 6.1200[J] Mathematics for Computer Science


• 6.120A Discrete Mathematics and Proof for Computer Science
• 6.1210 Introduction to Algorithms
• 6.1220[J] Design and Analysis of Algorithms
• 6.1400[J] Computability and Complexity Theory
• 6.1420 Fixed Parameter and Fine-grained Computation
• 6.5210[J] Advanced Algorithms
• 6.5220[J] Randomized Algorithms
• 6.5230 Advanced Data Structures
• 6.5240 Sublinear Time Algorithms
• 6.5250[J] Distributed Algorithms
• 6.5310 Geometric Folding Algorithms: Linkages, Origami, Polyhedra
• 6.5320 Geometric Computing
• 6.5340 Topics in Algorithmic Game Theory
• 6.5350 Matrix Multiplication and Graph Algorithms
• 6.5400[J] Theory of Computation
• 6.5410[J] Advanced Complexity Theory
• 6.5420 Randomness and Computation
• 6.5430 Quantum Complexity Theory

❖ Security & Cryptography

• 6.1600 Foundations of Computer Security


• 6.5610 Applied Cryptography and Security
• 6.5620[J] Foundations of Cryptography
• 6.5630 Advanced Topics in Cryptography
• 6.5660 Computer Systems Security

❖ Computer Systems

• 6.1800 Computer Systems Engineering


• 6.1810 Operating System Engineering
• 6.1820[J] Mobile and Sensor Computing
• 6.1850 Computer Systems and Society
• 6.5810 Operating System Engineering
• 6.5820 Computer Networks
• 6.5830 Database Systems
• 6.5831 Database Systems
• 6.5840 Distributed Computer Systems Engineering
• 6.5850 Principles of Computer Systems

❖ Computer Architecture

• 6.1903 Introduction to Low-level Programming in C and Assembly


• 6.1904 Introduction to Low-level Programming in C and Assembly
• 6.1910 Computation Structures
• 6.1920 Constructive Computer Architecture
• 6.5900 Computer System Architecture
• 6.5910 Complex Digital Systems Design
• 6.5920 Parallel Computing
• 6.5930 Hardware Architecture for Deep Learning
• 6.5931 Hardware Architecture for Deep Learning
• 6.5940 TinyML and Efficient Deep Learning Computing
• 6.5950 Secure Hardware Design
• 6.5951 Secure Hardware Design

You might also like