Computer Science Degree
Students must also complete the Undergraduate Registration Requirement and the degree requirements of their home school.
Course | Title |
---|---|
Requirements (48 units) | |
Core Courses (32 units) 1 | |
4 mathematics courses: | |
Mathematical Foundations of Comp Science | |
Single-Variable Differential Calculus | |
Single-Variable Integral Calculus | |
Multivariable Differential Calculus for Engineering | |
4 engineering analysis and computer proficiency courses: | |
Engineering Analysis I and Engineering Analysis II and Engineering Analysis III | |
Honor Engineering Analysis and Honors Engineering Analysis and Honors Engineering Analysis | |
Fundamentals of Computer Programming | |
4 units of basic science chosen according to McCormick basic science guidelines | |
3 design and communications courses | |
5 basic engineering courses: | |
Fundamentals of Computer Programming II | |
Introduction to Statistics | |
or IEMS 303-0 | Statistics |
Probabilistic Systems | |
3 courses from at least two of the remaining basic engineering areas: computer architecture and numerical methods, electrical science, fluids and solids, materials science and engineering, systems engineering and analysis, and thermodynamics | |
7 social sciences/humanities courses | |
5 unrestricted electives | |
Major Program (16 units) | |
3 required courses: | |
Fundamentals of Computer Programming 1.5 | |
Introduction to Computer Systems | |
Data Structures & Algorithms | |
5 breadth courses (see below) | |
6 technical electives (see below) | |
2 project courses (see below) |
1 | See general requirements for details. |
COMP_SCI 110-0 Introduction to Computer Programming may be used as an unrestricted elective if taken before COMP_SCI 111-0 Fundamentals of Computer Programming. It may not, however, be applied to the computer science major requirements.
Breadth Courses
Majors must take one course from each area. Minors must take one course from each of any three areas.
Theory
Course | Title |
---|---|
COMP_SCI 335-0 | Introduction to the Theory of Computation |
COMP_SCI 336-0 | Design & Analysis of Algorithms |
Systems
Course | Title |
---|---|
COMP_SCI 322-0 | Compiler Construction |
COMP_SCI 339-0 | Introduction to Database Systems |
COMP_SCI 340-0 | Introduction to Networking |
COMP_SCI 343-0 | Operating Systems |
COMP_SCI 345-0 | Distributed Systems |
COMP_SCI 350-0 | Introduction to Computer Security |
COMP_SCI 354-0 | Computer System Security |
COMP_SCI 440-0 | Advanced Networking |
COMP_SCI 441-0 | Resource Virtualization |
COMP_SCI 443-0 | Advanced Operating Systems |
COMP_SCI 446-0 | Kernel and Other Low-level Software Development |
COMP_SCI 450-0 | Internet Security |
COMP_ENG 303-0 | Advanced Digital Design |
COMP_ENG 346-0 | Microprocessor System Design |
COMP_ENG 358-0 | Introduction to Parallel Computing |
COMP_ENG 361-0 | Computer Architecture I |
Artificial Intelligence
Course | Title |
---|---|
COMP_SCI 325-1 | Artificial Intelligence Programming |
COMP_SCI 337-0 | Natural Language Processing |
COMP_SCI 344-0 | Design of Computer Problem Solvers |
COMP_SCI 348-0 | Introduction to Artificial Intelligence |
COMP_SCI 349-0 | Machine Learning |
COMP_SCI 371-0 | Knowledge Representation and Reasoning |
COMP_SCI 372-0 | Designing & Constructing Models with Multi-Agent Language |
Interfaces
Course | Title |
---|---|
COMP_SCI 313-0 | Tangible Interaction Design and Learning |
COMP_SCI 315-0 | Design, Technology, and Research |
COMP_SCI 330-0 | Human Computer Interaction |
COMP_SCI 331-0 | Introduction to Computational Photography |
COMP_SCI 351-1 | Introduction to Computer Graphics |
COMP_SCI 352-0 | Machine Perception of Music & Audio |
COMP_SCI 370-0 | Computer Game Design |
COMP_SCI 376-0 | Computer Game Design and Development |
COMP_SCI 377-0 | Game Design Studio |
ELEC_ENG 332-0 | Introduction to Computer Vision |
Software Development and Programming Languages
Course | Title |
---|---|
COMP_SCI 310-0 | Scalable Software Architectures |
COMP_SCI 321-0 | Programming Languages |
COMP_SCI 338-0 | Practicum in Intelligent Information Systems |
COMP_SCI 377-0 | Game Design Studio |
COMP_SCI 393-0 | Software Construction |
COMP_SCI 394-0 | Agile Software Development |
COMP_SCI 473-1 | NUvention: Web - Part 1 |
COMP_SCI 473-2 | NUvention: Web - Part 2 |
Project Courses
Majors must take two courses from this list.
Project course list
Course | Title |
---|---|
COMP_SCI 315-0 | Design, Technology, and Research |
COMP_SCI 322-0 | Compiler Construction |
COMP_SCI 330-0 | Human Computer Interaction |
COMP_SCI 331-0 | Introduction to Computational Photography |
COMP_SCI 337-0 | Natural Language Processing |
COMP_SCI 338-0 | Practicum in Intelligent Information Systems |
COMP_SCI 339-0 | Introduction to Database Systems |
COMP_SCI 340-0 | Introduction to Networking |
COMP_SCI 343-0 | Operating Systems |
COMP_SCI 344-0 | Design of Computer Problem Solvers |
COMP_SCI 345-0 | Distributed Systems |
COMP_SCI 351-1 | Introduction to Computer Graphics |
COMP_SCI 351-2 | Intermediate Computer Graphics |
COMP_SCI 354-0 | Computer System Security |
COMP_SCI 355-0 | Digital Forensics and Incident Response |
COMP_SCI 367-0 | Wireless and Mobile Health: Passive Sensing Data Analytics |
COMP_SCI 370-0 | Computer Game Design |
COMP_SCI 371-0 | Knowledge Representation and Reasoning |
COMP_SCI 377-0 | Game Design Studio |
COMP_SCI 393-0 | Software Construction |
COMP_SCI 394-0 | Agile Software Development |
COMP_SCI 397-0 | Special Projects in Computer Science |
COMP_SCI 441-0 | Resource Virtualization |
COMP_SCI 446-0 | Kernel and Other Low-level Software Development |
COMP_SCI 450-0 | Internet Security |
COMP_SCI 473-2 | NUvention: Web - Part 2 |
COMP_SCI 497-0 | Special Projects in Computer Science |
COMP_ENG 366-0 | Embedded Systems |
COMP_ENG 466-0 | Embedded Systems |
ELEC_ENG 332-0 | Introduction to Computer Vision |
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:
Additional technical electives
Course | Title |
---|---|
COMP_ENG 303-0 | Advanced Digital Design |
COMP_ENG 329-0 | The Art of Multicore Concurrent Programming |
COMP_ENG 346-0 | Microprocessor 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 365-0 | Internet-of-things Sensors, Systems, And Applications |
COMP_ENG 366-0 | Embedded Systems |
COMP_ENG 368-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 |
COMP_ENG 465-0 | Internet-of-things Sensors, Systems, And Applications |
COMP_ENG 466-0 | Embedded Systems |
COMP_ENG 468-0 | Programming Massively Parallel Processors with CUDA |
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 |
Note
Courses that fulfill the breadth and project courses also fulfill the technical elective requirement. However, a given course may only be applied to a single requirement for the major. In such cases where a single course applied to multiple requirements, a student must choose which requirement to apply a given course to. A course may not be counted toward multiple requirements at once.