Computer Science Minor (McCormick School of Engineering)
The department offers a minor in computer science for students who wish to develop stronger competence in computer science while pursuing a degree in another field. The minor will provide essential knowledge for all computer scientists as well as exposure to every critical subfield of the discipline.
Students should begin the minor before the end of their first quarter of their junior year. To declare the McCormick Computer Science minor, students should submit the minor declaration form in MAS (McCormick Advising System) by the end of their junior year. At least 4 courses used for the minor may not be used (double-counted) to fulfill requirements in the student's 21-unit major program.
Course | Title |
---|---|
Prerequisites (6 units) | |
Single-Variable Differential Calculus | |
Single-Variable Integral Calculus | |
Multivariable Differential Calculus for Engineering | |
Engineering Analysis (3 units): | |
Engineering Analysis I and Engineering Analysis II and Engineering Analysis III | |
Honor Engineering Analysis and Honors Engineering Analysis and Honors Engineering Analysis | |
Minor Requirements (9 units) | |
Core Courses (6 units of computer science) | |
Fundamentals of Computer Programming | |
Fundamentals of Computer Programming 1.5 | |
Fundamentals of Computer Programming II | |
Math Foundations of CS Part 1: Discrete Math for CS | |
Introduction to Computer Systems | |
Data Structures & Algorithms | |
Breath Courses (3 units from three different areas, see below) |
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 346-0 | Microcontroller System Design |
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 | Microcontroller System Design |
COMP_ENG 358-0 | Introduction to Parallel Computing |
COMP_ENG 361-0 | Computer Architecture I |
Artificial Intelligence
Course | Title |
---|---|
COMP_SCI 325-0 | Artificial Intelligence Programming |
COMP_SCI 337-0 | Natural Language Processing: Classical Approaches |
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 and Constructing Models with Multi-Agent Languages |
Interfaces
Course | Title |
---|---|
COMP_SCI 313-0 | Tangible Interaction Design and Learning |
COMP_SCI 315-0 | Design, Technology, and Research |
COMP_SCI 329-0 | HCI Studio |
COMP_SCI 330-0 | Human Computer Interaction |
COMP_SCI 331-0 | Introduction to Computational Photography |
COMP_SCI 333-0 | Interactive Information Visualization |
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 372-0 | Designing and Constructing Models with Multi-Agent Languages |
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 392-0 | Rapid Prototyping for Software Innovation |
COMP_SCI 393-0 | Software Construction |
COMP_SCI 394-0 | Agile Software Development |