Artificial Intelligence as a Second Major for McCormick Students

Students must also complete the Undergraduate Registration Requirement and the degree requirements of their home school.

AI Major Program (22 units)

Course Title
6 required courses
Software Design & Composition
Fundamentals of Computer Programming
Data Structures & Algorithms (Formerly Comp_Sci 214)
Programming in Systems-Level Languages
Math Foundations of CS Part 1: Discrete Math for CS
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) 2
5 breadth courses
1 societal impact course
6 technical electives
1

See general requirements for details.

2

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-0Natural Language Processing: Classical Approaches
COMP_SCI 449-0Deep Learning
COMP_SCI 461-0Large Language Models
IEMS 351-0AI-Enabled Sequential Decision Making

Theoretical Foundations

Course Title
COMP_SCI 332-0Online Markets
COMP_SCI 336-0Design & Analysis of Algorithms
COMP_SCI 496-0Special Topics in Computer Science (Foundations of Reliable Machine Learning)
COMP_SCI 496-0Special Topics in Computer Science (Theoretical Foundations of Data Science)

Symbolic AI

Course Title
COMP_SCI 325-0Artificial Intelligence Programming
COMP_SCI 344-0Design of Computer Problem Solvers
COMP_SCI 371-0Knowledge Representation and Reasoning
COMP_SCI 396-0Special Topics in Computer Science (Declarative Programming for Game AI)
COMP_SCI 396-0Special Topics in Computer Science (Reasoning and Planning in the Foundation Model Era)
COMP_SCI 496-0Special Topics in Computer Science (Agent AI)
COMP_SCI 496-0Special Topics in Computer Science (Logic in AI)

Software and Systems Engineering for AI

Course Title
COMP_SCI 303-0Full Stack Software Engineering
COMP_SCI 310-0Scalable Software Architectures
COMP_SCI 358-0Introduction to Parallel Computing
or COMP_ENG 358-0 Introduction to Parallel Computing
COMP_SCI 368-0Programming 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-0Agile Software Development
ES_APPM 344-0High Performance Scientific Computing

Systems that Interact with Humans

Course Title
COMP_SCI 317-0Sports, Technology and Learning
COMP_SCI 329-0HCI Studio
COMP_SCI 330-0Human Computer Interaction
COMP_SCI 333-0Interactive Information Visualization
COMP_SCI 347-0Conversational AI
or COMP_SCI 447-0 Conversational AI
COMP_SCI 396-0Special Topics in Computer Science (Mobile and Ubiquitous Computing)
or COMP_SCI 496-0 Special Topics in Computer Science
COMP_SCI 497-0Special Projects in Computer Science (Explanation and reproducibility in data-driven science)
COG_SCI 207-0Introduction to Cognitive Modeling
DSGN 395-0Special Topics (Designing with AI)

Systems that Navigate the World

Course Title
COMP_SCI 301-0Introduction to Robotics Laboratory
or MECH_ENG 301-0 Introduction to Robotics Laboratory
COMP_SCI 353-0Natural & Artificial Vision
COMP_SCI 396-0Special Topics in Computer Science (Machine Learning and Sensing)
or COMP_SCI 496-0 Special Topics in Computer Science
COMP_SCI 469-0Machine Learning & Artificial Intelligence for Robotics
or MECH_ENG 469-0 Machine Learning and Artificial Intelligence for Robotics
COMP_ENG 395-0Special Topics in Computer Engineering (Embedded Artificial Intelligence)
or COMP_ENG 495-0 Special Topics in Computer Engineering
ELEC_ENG 332-0Introduction to Computer Vision
MECH_ENG 455-0Active Learning in Robotics
MECH_ENG 495-0Selected 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-0Introduction to Law and Digital Technologies
COMP_SCI 265-0AI and International Security
COMP_SCI 311-0Inclusive Making
COMP_SCI 314-0Technology and Human Interaction
COMP_SCI 387-0Responsible Software Engineering
COMP_SCI 396-0Special Topics in Computer Science (Computing, Ethics, and Society)
COMM_ST 358-0Algorithms and Society
COMM_ST 378-0Online Communities and Crowds
COMM_ST 379-0Digital Propaganda and Repression

Technical electives

Majors must take six 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-0Introduction to Computer System
IEMS 301-0Introduction to Statistical Learning
IEMS 304-0Statistical Learning for Data Analysis
IEMS 305-0Foundations of Modern Machine Learning
ES_APPM 345-0Applied Linear Algebra
ES_APPM 479-0Data Driven Methods for Dynamical Systems
COMP_ENG 303-0Advanced Digital Design
COMP_ENG 329-0The Art of Multicore Concurrent Programming
COMP_ENG 334-0Fundamentals of Blockchains and Decentralization
or ELEC_ENG 334-0 Fundamentals of Blockchains and Decentralization
COMP_ENG 346-0Microcontroller System Design
COMP_ENG 355-0ASIC and FPGA Design
COMP_ENG 356-0Introduction to Formal Specification & Verification
COMP_ENG 357-0Design Automation in VLSI
COMP_ENG 358-0Introduction to Parallel Computing
COMP_ENG 361-0Computer Architecture I
COMP_ENG 362-0Computer Architecture Projects
COMP_ENG 364-0CyberPhysical Systems Design and Application
or COMP_ENG 464-0 Cyber-Physical Systems Design and Application
COMP_ENG 365-0Internet-of-things Sensors, Systems, And Applications
or COMP_ENG 465-0 Internet-of-things Sensors, Systems, And Applications
COMP_ENG 366-0Embedded Systems
or COMP_ENG 466-0 Embedded Systems
COMP_ENG 368-0Programming Massively Parallel Processors with CUDA
or COMP_ENG 468-0 Programming Massively Parallel Processors with CUDA
COMP_ENG 452-0Adv Computer Architecture
COMP_ENG 453-0Parallel Architectures
COMP_ENG 456-0Modern Topics in Computer Architecture
COMP_ENG 459-0VLSI Algorithmics
ELEC_ENG 326-0Electronic System Design I
ELEC_ENG 332-0Introduction to Computer Vision
ELEC_ENG 375-0Machine Learning: Foundations, Applications, and Algorithms
ELEC_ENG 433-0Statistical Pattern Recognition
ELEC_ENG 435-0Deep Learning: Foundations, Applications, and Algorithms