Computer Science Major

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

Course Title
Program Courses (19 units)
6 core courses:
EECS 101-0Computer Science: Concepts, Philosophy, and Connections (recommended)
Or an additional breadth course from the breadth course lists.
EECS 111-0Fundamentals of Computer Programming 1
EECS 211-0Fundamentals of Computer Programming II
EECS 212-0Mathematical Foundations of Comp Science
EECS 213-0Introduction to Computer Systems
EECS 214-0Data Structures & Algorithms
5 breadth courses, 1 from each of the following five areas (see the EECS website for changes to this list):
6 technical electives from the list below
2 project courses:
Related Courses (Units depend on mathematics sequence taken.)
Physics or biological sciences courses are recommended to satisfy the Weinberg College natural sciences distribution requirement.

Breadth Courses

Theory

Course Title
EECS 335-0Introduction to the Theory of Computation
EECS 336-0Design & Analysis of Algorithms

Systems

Course Title
EECS 303-0Advanced Digital Design
EECS 321-0Programming Languages
EECS 322-0Compiler Construction
EECS 339-0Introduction to Database Systems
EECS 340-0Introduction to Networking
EECS 343-0Operating Systems
EECS 345-0Distributed Systems
EECS 346-0Microprocessor System Design
EECS 350-0Introduction to Computer Security
EECS 354-0Network Penetration & Security
EECS 358-0Introduction to Parallel Computing
EECS 361-0Computer Architecture I
EECS 440-0Advanced Networking
EECS 441-0Resource Virtualization
EECS 443-0Advanced Operating Systems
EECS 450-0Internet Security

Artificial Intelligence

Course Title
EECS 325-1Artificial Intelligence Programming
EECS 337-0Natural Language Processing
EECS 344-0Design of Computer Problem Solvers
EECS 348-0Introduction to Artificial Intelligence
EECS 349-0Machine Learning
EECS 360-0Introduction to Feedback Systems
EECS 371-0Knowledge Representation and Reasoning
EECS 372-0Designing & Constructing Models with Multi-Agent Language

Interfaces

Course Title
EECS 313-0Tangible Interaction Design and Learning
EECS 315-0Design, Technology, and Research
EECS 330-0Human Computer Interaction
EECS 331-0Introduction to Computational Photography
EECS 332-0Introduction to Computer Vision
EECS 351-1Introduction to Computer Graphics
EECS 352-0Machine Perception of Music & Audio
EECS 370-0Computer Game Design
EECS 376-0Computer Game Design and Development
EECS 377-0Game Design Studio

Software Development

Course Title
EECS 338-0Practicum in Intelligent Information Systems
EECS 377-0Game Design Studio
EECS 394-0Agile Software Development
EECS 473-1
EECS 473-2
NUvention: Web - Part 1
and NUvention: Web - Part 2 1

Technical electives

Technical elective list

Course Title
EECS 301-0Introduction to Robotics Laboratory
EECS 303-0Advanced Digital Design
EECS 313-0Tangible Interaction Design and Learning
EECS 314-0Technology and Human Interaction
EECS 315-0Design, Technology, and Research
EECS 321-0Programming Languages
EECS 322-0Compiler Construction
EECS 323-0Code Analysis and Transformation
EECS 325-1Artificial Intelligence Programming
EECS 330-0Human Computer Interaction
EECS 331-0Introduction to Computational Photography
EECS 332-0Introduction to Computer Vision
EECS 335-0Introduction to the Theory of Computation
EECS 336-0Design & Analysis of Algorithms
EECS 337-0Natural Language Processing
EECS 338-0Practicum in Intelligent Information Systems
EECS 339-0Introduction to Database Systems
EECS 340-0Introduction to Networking
EECS 343-0Operating Systems
EECS 344-0Design of Computer Problem Solvers
EECS 345-0Distributed Systems
EECS 346-0Microprocessor System Design
EECS 348-0Introduction to Artificial Intelligence
EECS 349-0Machine Learning
EECS 350-0Introduction to Computer Security
EECS 351-1Introduction to Computer Graphics
EECS 351-2Intermediate Computer Graphics
EECS 352-0Machine Perception of Music & Audio
EECS 354-0Network Penetration & Security
EECS 361-0Computer Architecture I
EECS 368-0Programming Massively Parallel Processors with CUDA
EECS 369-0Introduction to Sensor Networks
EECS 370-0Computer Game Design
EECS 371-0Knowledge Representation and Reasoning
EECS 372-0Designing & Constructing Models with Multi-Agent Language
EECS 376-0Computer Game Design and Development
EECS 377-0Game Design Studio
EECS 396-0Special Topics in Computer Science
EECS 397-0Special Projects in Computer Science
EECS 433-0Statistical Pattern Recognition
EECS 440-0Advanced Networking
EECS 441-0Resource Virtualization
EECS 443-0Advanced Operating Systems
EECS 445-0Internet-scale Experimentation
EECS 446-0Kernel and Other Low-level Software Development
EECS 450-0Internet Security
EECS 367-0Wireless and Mobile Health: Passive Sensing Data Analytics
EECS 468-0Programming Massively Parallel Processors with CUDA
EECS 472-0Designing & Constructing Models with Multi-Agent Language
EECS 473-1NUvention: Web - Part 1
EECS 473-2NUvention: Web - Part 2
EECS 474-0Probabilistic Graphical Models
EECS 496-0Special Topics in Computer Science
EECS 497-0Special Projects in Computer Science
EECS 367-0Wireless and Mobile Health: Passive Sensing Data Analytics

Project Courses

Project course list

Course Title
EECS 315-0Design, Technology, and Research
EECS 322-0Compiler Construction
EECS 330-0Human Computer Interaction
EECS 332-0Introduction to Computer Vision
EECS 337-0Natural Language Processing
EECS 338-0Practicum in Intelligent Information Systems
EECS 339-0Introduction to Database Systems
EECS 340-0Introduction to Networking
EECS 343-0Operating Systems
EECS 344-0Design of Computer Problem Solvers
EECS 345-0Distributed Systems
EECS 351-1Introduction to Computer Graphics
EECS 351-2Intermediate Computer Graphics
EECS 354-0Network Penetration & Security
EECS 367-0Wireless and Mobile Health: Passive Sensing Data Analytics
EECS 370-0Computer Game Design
EECS 371-0Knowledge Representation and Reasoning
EECS 377-0Game Design Studio
EECS 394-0Agile Software Development
EECS 397-0Special Projects in Computer Science
EECS 441-0Resource Virtualization
EECS 450-0Internet Security
EECS 473-2NUvention: Web - Part 2
EECS 497-0Special Projects in Computer Science

Related Courses

Mathematics

Course Title
MATH 220-0
MATH 224-0
Differential Calculus of One-Variable Functions
and Integral Calculus of One-Variable Functions
or MATH 212-0
MATH 213-0
MATH 214-0
Single Variable Calculus I
and Single Variable Calculus II
and Single Variable Calculus III
MATH 230-0Differential Calculus of Multivariable Functions
MATH 240-0Linear Algebra

Probability and Statistics1

Course Title
IEMS 201-0Introduction to Statistics
or STAT 210-0 Introductory Statistics for the Social Sciences
or MATH 310-1 Probability and Stochastic Processes
Or a score of 5 on the AP Statistics Exam

NOTE

A few courses appear on more than one of the course lists above, and a student who completes such a course must choose which area to apply that course. A single course does not satisfy more than one requirement at a time.

Honors in Computer Science

Outstanding students majoring in computer science may be considered for program honors. For information on criteria and procedures, contact the program director and see Honors in the Major.