Artificial Intelligence as a Second Major for non-McCormick Students
Students must also complete the Undergraduate Registration Requirement and the degree requirements of their home school.
Double-counting note: Weinberg College prohibits double-counting a major course (those identified as program courses, below) toward some other major or minor, except where this is explicitly permitted in this catalog. Weinberg College allows double-counting a related course (see below) for a major toward some other major or minor. Weinberg College does allow double-counting a major course and related courses for a major toward a general bachelor's degree requirement (i.e. degree requirements other than majors or minors). Other programs or schools may have their own restrictions that supersede this, so check the relevant parts of this catalog for possible limits. Here are more detail on double count rule - Double-Counting Rules for Non-WCAS Students.
Program Courses (19 units)
| Course | Title |
|---|---|
| 7 required courses: | |
| COMP_SCI 150-0 | Fundamentals of Programming and Computational Problem Solving |
| or GEN_ENG 150-0 | Programming for Engineers |
| or GEN_ENG 151-0 | Honors Programming for Engineers |
| COMP_SCI 180-0 | Software Design & Composition |
| or COMP_SCI 111-0 | Fundamentals of Computer Programming |
| COMP_SCI 208-0 | Data Structures & Algorithms (Formerly Comp_Sci 214) |
| COMP_SCI 211-0 | Programming in Systems-Level Languages |
| COMP_SCI 212-0 | Math Foundations of CS Part 1: Discrete Math for CS |
| COMP_SCI 348-0 | Introduction to Artificial Intelligence |
| COMP_SCI 349-0 | Machine Learning |
| 5 breadth courses | |
| 1 societal impact course | |
| 6 technical electives | |
| Related Courses (Units depend on mathematics sequence taken.) | |
| Mathematics | |
| Probability and Statistics | |
Physics or biological sciences courses are recommended to satisfy the Weinberg College natural sciences distribution requirement. | |
- 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-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 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-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 |
Related Courses
Double-counting note: Weinberg College allows double-counting a related course toward some other major, minor, or general bachelor's degree requirement. Other programs or schools may have their own restrictions that supersede this, so check the relevant parts of this catalog for possible limits.
Mathematics
| Course | Title |
|---|---|
| MATH 220-1 & MATH 220-2 | Single-Variable Differential Calculus and Single-Variable Integral Calculus |
| or MATH 218-1 & MATH 218-2 & MATH 218-3 | Single-Variable Calculus with Precalculus and Single-Variable Calculus with Precalculus and Single-Variable Calculus with Precalculus |
| MATH 230-1 | Multivariable Differential Calculus |
| or MATH 228-1 | Multivariable Differential Calculus for Engineering |
| MATH 240-0 | Linear Algebra |
| or GEN_ENG 241-0 | Linear Algebra for Engineers |
Probability and Statistics1
| Course | Title |
|---|---|
| COMP_SCI 262-0 | Mathematical Foundations of Computer Science - Part 2 |
| or GEN_ENG 231-0 | Probability and Statistics for Engineers |
| or IEMS 201-0 | Introduction to Statistics |
| or MATH 310-1 | Probability and Stochastic Processes |
| or STAT 210-0 | Introduction to Probability and Statistics |
- 1
STAT 202-0 Introduction to Statistics and Data Science is not accepted.
Note
Many courses are eligible to count toward more than one requirement for the major; for example, all breadth courses are also technical elective courses. A student who completes such a course must choose which requirement area to apply that course. A single course does not satisfy more than one requirement at a time.