Computer Science Second Major for ISP Students
Students must also complete the Undergraduate Registration Requirement and the degree requirements of their home school.
The Integrated Science Program is a highly selective program in Weinberg College. Weinberg College students, but not McCormick students, majoring in Integrated Science may complete an abbreviated, adjunct major in computer science through a curriculum tailored specifically to their needs.
Double-counting note: Students who may be considering adding a third major (or a minor) to ISP+computer science, should keep in mind that Weinberg College prohibits double-counting a major course toward some other major or minor, except where this is explicitly permitted in this catalog. Weinberg College does allow double-counting a major course 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.
| Course | Title |
|---|---|
| Core 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 213-0 | Introduction to Computer System |
| Breadth courses (same as for stand-alone major: 5 courses, one from each area, see below) | |
| Project courses (2 units) * | |
- *
To fulfill the 2-unit computer science project course requirement, ISP students can take courses from the Project Courses list on the computer science major page of this catalog. With prior approval by both the computer science and ISP advisers, students may instead apply 2 units of COMP_SCI 399-0 or INTG_SCI 398-0 to the project course requirement; however students may not at the same time use those independent research units to substitute for ISP major course 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 and Networked Systems |
| COMP_SCI 346-0 | Microcontroller System Design |
| or COMP_ENG 346-0 | Microcontroller System Design |
| COMP_SCI 350-0 | Introduction to Computer Security |
| COMP_SCI 354-0 | Computer System Security |
| 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 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 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 |
| or COMP_SCI 472-0 | Designing and Constructing Models with Multi-Agent Languages |
Interfaces
| Course | Title |
|---|---|
| COMP_SCI 313-0 | Tangible Interaction Design and Learning |
| or COMP_SCI 413-0 | Tangible Interaction Design and Learning |
| COMP_SCI 315-0 | Design, Technology, and Research |
| or COMP_SCI 415-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 353-0 | Natural & Artificial Vision |
| COMP_SCI 370-0 | Computer Game Design |
| COMP_SCI 372-0 | Designing and Constructing Models with Multi-Agent Languages |
| or COMP_SCI 472-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 380-0 | Software Quality Engineering |
| COMP_SCI 392-0 | Rapid Prototyping for Software Innovation |
| COMP_SCI 393-0 | Software Construction |
| COMP_SCI 394-0 | Agile Software Development |