Artificial Intelligence Major, BS in Engineering
Students must also complete the Undergraduate Registration Requirement and the degree requirements of their home school.
Requirements (48 units)
Core Courses (26 units)1
| Course | Title |
|---|---|
| 4 mathematics courses | |
| Single-Variable Differential Calculus | |
| Single-Variable Integral Calculus | |
| Multivariable Differential Calculus for Engineering | |
| Math Foundations of CS Part 1: Discrete Math for CS | |
| 4 units of basic science chosen according to McCormick basic science guidelines | |
| General Physics and General Physics Laboratory 2 | |
Plus an additional 2.66 units from the list of basic science courses | |
| 3 engineering foundations courses | |
| 3 design, communications, and innovation courses | |
| 7 social sciences/humanities courses | |
| 5 unrestricted electives | |
Major Program (22 units)
| Course | Title |
|---|---|
| 5 required courses | |
| Software Design & Composition | |
| Fundamentals of Computer Programming | |
| Data Structures & Algorithms (Formerly Comp_Sci 214) | |
| Programming in Systems-Level Languages | |
| Introduction to Artificial Intelligence | |
| Machine Learning | |
| 4 advanced elective courses | |
| Any 300-level or higher class, or introductory courses that directly support computer science (COG_SCI 207-0, COMP_ENG 203-0, COMP_ENG 205-0, COMP_SCI 1CA, COMP_SCI 260-0, COMP_SCI 262-0, COMP_SCI 265-0, COMP_SCI 296-0, COMP_SCI 298-0, GEN_ENG 211-0, GEN_ENG 251-0, MATH 228-2, MATH 230-2, MECH_ENG 233-0) 3 | |
| 5 breadth courses | |
| 1 societal impact course | |
| 7 technical electives | |
- 1
See general requirements for details.
- 2
PHYSICS 135-1 General Physics can be replaced by GEN_ENG 212-0 Engineering Physics - Dynamics (Note: if replaced by GEN_ENG 212-0 Engineering Physics - Dynamics another 1/3 unit of science is needed to fulfill the science requirement). Courses can be chosen from McCormick-approved basic science categories of Chemistry, Physics, Biological Science, Earth & Planetary Science or Astronomy.
- 3
Scores of 4 or 5 on the AP CS A exam or scores of 5, 6, or 7 on the IB CS HL exam transfer to Northwestern as COMP_SCI 1CA.
Breadth Courses
Domain Area requirements (students must take one course in five of the six categories)
Advanced ML/NLP
| Course | Title |
|---|---|
| COMP_SCI 337-0 | Natural Language Processing: Classical Approaches |
| COMP_SCI 449-0 | Deep Learning |
| COMP_SCI 461-0 | Large Language Models |
| IEMS 351-0 | AI-Enabled Sequential Decision Making |
Theoretical Foundations
| Course | Title |
|---|---|
| COMP_SCI 332-0 | Online Markets |
| COMP_SCI 336-0 | Design & Analysis of Algorithms |
| COMP_SCI 496-0 | Special Topics in Computer Science (Foundations of Reliable Machine Learning) |
| COMP_SCI 496-0 | Special Topics in Computer Science (Theoretical Foundations of Data Science) |
Symbolic AI
| Course | Title |
|---|---|
| COMP_SCI 325-0 | Artificial Intelligence Programming |
| COMP_SCI 344-0 | Design of Computer Problem Solvers |
| COMP_SCI 371-0 | Knowledge Representation and Reasoning |
| COMP_SCI 396-0 | Special Topics in Computer Science (Declarative Programming for Game AI) |
| COMP_SCI 396-0 | Special Topics in Computer Science (Reasoning and Planning in the Foundation Model Era) |
| COMP_SCI 496-0 | Special Topics in Computer Science (Agent AI) |
| COMP_SCI 496-0 | Special Topics in Computer Science (Logic in AI) |
Software and Systems Engineering for AI
| Course | Title |
|---|---|
| COMP_SCI 303-0 | Full Stack Software Engineering |
| COMP_SCI 310-0 | Scalable Software Architectures |
| COMP_SCI 358-0 | Introduction to Parallel Computing |
| or COMP_ENG 358-0 | Introduction to Parallel Computing |
| COMP_SCI 368-0 | Programming Massively Parallel Processors with CUDA |
| or COMP_SCI 468-0 | Programming Massively Parallel Processors with CUDA |
| or COMP_ENG 368-0 | Programming Massively Parallel Processors with CUDA |
| or COMP_ENG 468-0 | Programming Massively Parallel Processors with CUDA |
| COMP_SCI 394-0 | Agile Software Development |
| ES_APPM 344-0 | High Performance Scientific Computing |
Systems that Interact with Humans
| Course | Title |
|---|---|
| COMP_SCI 317-0 | Sports, Technology and Learning |
| COMP_SCI 329-0 | HCI Studio |
| COMP_SCI 330-0 | Human Computer Interaction |
| COMP_SCI 333-0 | Interactive Information Visualization |
| COMP_SCI 347-0 | Conversational AI |
| or COMP_SCI 447-0 | Conversational AI |
| COMP_SCI 396-0 | Special Topics in Computer Science (Mobile and Ubiquitous Computing) |
| or COMP_SCI 496-0 | Special Topics in Computer Science |
| COMP_SCI 497-0 | Special Projects in Computer Science (Explanation and reproducibility in data-driven science) |
| COG_SCI 207-0 | Introduction to Cognitive Modeling |
| DSGN 395-0 | Special Topics (Designing with AI) |
Systems that Navigate the World
| Course | Title |
|---|---|
| COMP_SCI 301-0 | Introduction to Robotics Laboratory |
| or MECH_ENG 301-0 | Introduction to Robotics Laboratory |
| COMP_SCI 353-0 | Natural & Artificial Vision |
| COMP_SCI 396-0 | Special Topics in Computer Science (Machine Learning and Sensing) |
| or COMP_SCI 496-0 | Special Topics in Computer Science |
| COMP_SCI 469-0 | Machine Learning & Artificial Intelligence for Robotics |
| or MECH_ENG 469-0 | Machine Learning and Artificial Intelligence for Robotics |
| COMP_ENG 395-0 | Special Topics in Computer Engineering (Embedded Artificial Intelligence) |
| or COMP_ENG 495-0 | Special Topics in Computer Engineering |
| ELEC_ENG 332-0 | Introduction to Computer Vision |
| MECH_ENG 455-0 | Active Learning in Robotics |
| MECH_ENG 495-0 | Selected Topics in Mechanical Engg (Sensing, Navigation, and Machine Learning for Robotics) |
Societal Impact Course
Societal impact course list
| Course | Title |
|---|---|
| Majors must take one course from this list. | |
| COMP_SCI 260-0 | Introduction to Law and Digital Technologies |
| COMP_SCI 265-0 | AI and International Security |
| COMP_SCI 311-0 | Inclusive Making |
| COMP_SCI 314-0 | Technology and Human Interaction |
| COMP_SCI 387-0 | Responsible Software Engineering |
| COMP_SCI 396-0 | Special Topics in Computer Science (Computing, Ethics, and Society) |
| COMM_ST 358-0 | Algorithms and Society |
| COMM_ST 378-0 | Online Communities and Crowds |
| COMM_ST 379-0 | Digital Propaganda and Repression |
Technical electives
Majors must take seven technical electives. Any 300- or 400-level COMP_SCI course may be taken as a technical elective. In addition the following courses may also be taken as technical electives:
Technical electives list
| Course | Title |
|---|---|
| COMP_SCI 213-0 | Introduction to Computer System |
| IEMS 301-0 | Introduction to Statistical Learning |
| IEMS 304-0 | Statistical Learning for Data Analysis |
| IEMS 305-0 | Foundations of Modern Machine Learning |
| ES_APPM 345-0 | Applied Linear Algebra |
| ES_APPM 479-0 | Data Driven Methods for Dynamical Systems |
| COMP_ENG 303-0 | Advanced Digital Design |
| COMP_ENG 329-0 | The Art of Multicore Concurrent Programming |
| COMP_ENG 334-0 | Fundamentals of Blockchains and Decentralization |
| or ELEC_ENG 334-0 | Fundamentals of Blockchains and Decentralization |
| COMP_ENG 346-0 | Microcontroller System Design |
| COMP_ENG 355-0 | ASIC and FPGA Design |
| COMP_ENG 356-0 | Introduction to Formal Specification & Verification |
| COMP_ENG 357-0 | Design Automation in VLSI |
| COMP_ENG 358-0 | Introduction to Parallel Computing |
| COMP_ENG 361-0 | Computer Architecture I |
| COMP_ENG 362-0 | Computer Architecture Projects |
| COMP_ENG 364-0 | CyberPhysical Systems Design and Application |
| or COMP_ENG 464-0 | Cyber-Physical Systems Design and Application |
| COMP_ENG 365-0 | Internet-of-things Sensors, Systems, And Applications |
| or COMP_ENG 465-0 | Internet-of-things Sensors, Systems, And Applications |
| COMP_ENG 366-0 | Embedded Systems |
| or COMP_ENG 466-0 | Embedded Systems |
| COMP_ENG 368-0 | Programming Massively Parallel Processors with CUDA |
| or COMP_ENG 468-0 | Programming Massively Parallel Processors with CUDA |
| COMP_ENG 452-0 | Adv Computer Architecture |
| COMP_ENG 453-0 | Parallel Architectures |
| COMP_ENG 456-0 | Modern Topics in Computer Architecture |
| COMP_ENG 459-0 | VLSI Algorithmics |
| ELEC_ENG 326-0 | Electronic System Design I |
| ELEC_ENG 332-0 | Introduction to Computer Vision |
| ELEC_ENG 375-0 | Machine Learning: Foundations, Applications, and Algorithms |
| ELEC_ENG 433-0 | Statistical Pattern Recognition |
| ELEC_ENG 435-0 | Deep Learning: Foundations, Applications, and Algorithms |