Computer Science Minor (Weinberg College)

The program offers a minor in computer science for students who wish to develop a strong competence in computer science while majoring in another area.

Course Title
Prerequisites
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-1Multivariable Differential Calculus
or MATH 228-1 Multivariable Differential Calculus for Engineering
MATH 240-0Linear Algebra
Minor Requirements (9 units)
6 core courses
COMP_SCI 111-0Fundamentals of Computer Programming
COMP_SCI 150-0Fundamentals of Computer Programming 1.5
COMP_SCI 211-0Fundamentals of Computer Programming II
COMP_SCI 212-0Math Foundations of CS Part 1: Discrete Math for CS
COMP_SCI 213-0Introduction to Computer Systems
COMP_SCI 214-0Data Structures & Algorithms
3 breadth courses in 3 separate breadth 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-0Introduction to the Theory of Computation
COMP_SCI 336-0Design & Analysis of Algorithms

Systems

Course Title
COMP_SCI 322-0Compiler Construction
COMP_SCI 339-0Introduction to Database Systems
COMP_SCI 340-0Introduction to Networking
COMP_SCI 343-0Operating Systems
COMP_SCI 345-0Distributed Systems
COMP_SCI 346-0Microcontroller System Design
COMP_SCI 350-0Introduction to Computer Security
COMP_SCI 354-0Computer System Security
COMP_SCI 440-0Advanced Networking
COMP_SCI 441-0Resource Virtualization
COMP_SCI 443-0Advanced Operating Systems
COMP_SCI 446-0Kernel and Other Low-level Software Development
COMP_SCI 450-0Internet Security
COMP_ENG 303-0Advanced Digital Design
COMP_ENG 346-0Microcontroller System Design
COMP_ENG 358-0Introduction to Parallel Computing
COMP_ENG 361-0Computer Architecture I

Artificial Intelligence

Course Title
COMP_SCI 325-0Artificial Intelligence Programming
COMP_SCI 337-0Natural Language Processing: Classical Approaches
COMP_SCI 344-0Design of Computer Problem Solvers
COMP_SCI 348-0Introduction to Artificial Intelligence
COMP_SCI 349-0Machine Learning
COMP_SCI 371-0Knowledge Representation and Reasoning
COMP_SCI 372-0Designing and Constructing Models with Multi-Agent Languages

Interfaces

Course Title
COMP_SCI 313-0Tangible Interaction Design and Learning
COMP_SCI 315-0Design, Technology, and Research
COMP_SCI 329-0HCI Studio
COMP_SCI 330-0Human Computer Interaction
COMP_SCI 331-0Introduction to Computational Photography
COMP_SCI 333-0Interactive Information Visualization
COMP_SCI 351-1Introduction to Computer Graphics
COMP_SCI 352-0Machine Perception of Music & Audio
COMP_SCI 370-0Computer Game Design
COMP_SCI 372-0Designing and Constructing Models with Multi-Agent Languages
COMP_SCI 376-0Computer Game Design and Development
COMP_SCI 377-0Game Design Studio
ELEC_ENG 332-0Introduction to Computer Vision

Software Development and Programming Languages

Course Title
COMP_SCI 310-0Scalable Software Architectures
COMP_SCI 321-0Programming Languages
COMP_SCI 338-0Practicum in Intelligent Information Systems
COMP_SCI 377-0Game Design Studio
COMP_SCI 392-0Rapid Prototyping for Software Innovation
COMP_SCI 393-0Software Construction
COMP_SCI 394-0Agile Software Development

Students should begin the minor before the end of the first quarter of their junior year.