This page lists Additional Majors and Minors apart from those in Artificial Intelligence, Computational Biology and Computer Science. Click on a tab to see more information about each program.

Students should consult with their own academic advisor as well as the advisor for the given minor for specific double-counting rules, especially for students who are pursuing an SCS minor with a major or other minors closely related to computing. Additional help can be provided by the Assistant Dean in the Computer Science Undergraduate Program office (Gates-Hillman Center 4th Floor). SCS Concentrations: SCS concentrations will begin to launch during the 2018-19 academic year. Consult with your academic advisor during your first academic year for new SCS concentrations that will launch. SCS concentrations will be open to all SCS students. For CS Majors entering CMU in 2018 or later, these students will be required to pursue a minor outside of SCS or a concentration within SCS; minors in SCS will not be allowed for these students. Computer Science majors entering prior to 2018 can substitute an SCS concentration for the minor requirement if available and approved by their academic advisor and program director. Artificial Intelligence and Computational Biology majors can complete an SCS concentration if they wish, but it is not required for these degrees. Consult the SCS undergraduate programs website for information about these concentrations as they are approved. 

Human-Computer Interaction Additional Major

Vincent Aleven, Undergraduate Director
Office: Newell Simon Hall (NSH) 3531
For up to date information, see: http://www.hcii.cmu.edu/

Overview

Human-Computer Interaction (HCI) is a fast growing field devoted to the design, implementation, and evaluation of interactive computer-based technology. Examples of HCI products include intelligent computer tutors, wearable computers, social networking sites, and internet connected personal digital assistants (PDAs). Constructing an HCI product is a cyclic, iterative process that has at least three stages: Design, Implementation, and Evaluation.

The Design stage involves principles of design and human behavior, the Implementation stage principles of computer science, and the Evaluation stage empirical research methods common to several disciplines. There are thus four topical areas to cover in this major: Human Behavior, Design, Implementation, and Evaluation. In slightly more detail, the major involves the following sorts of knowledge and skill:

Design
  • Eliciting from the client, formulating, and articulating functional specifications
  • Knowing how human factors and cognitive models should inform design
  • Knowing the principles of, and having experience with, communication design
  • Understanding how implementation constraints should inform design
  • Incorporating evaluation results into iterated designs
Implementation Programming Skills
  • Standard programming languages - e.g., C++, Java
  • Rapid prototyping skill (e.g., Visual Basic, Flash)
  • Computational literacy, i.e., knowledge sufficient for effective communication and decision making about:
  • interface construction tools and languages
  • multimedia authoring tools
  • data structures and algorithms
  • Operating systems, platforms, etc.
Evaluation
  • Experimental design
  • Focus Groups
  • Surveys
  • Usability Testing (Cognitive walkthroughs, user models, heuristic evaluation, GOMS)
  • Statistical Analysis

There are over 45 courses relevant to these areas that are now offered by eight different departments in four different colleges at Carnegie Mellon (the School of Computer Science, the Dietrich College of Humanities and Social Sciences, and the College of Fine Arts, and the Tepper School of Business).

Curriculum

Required Courses
Cognitive Psychology Units
85-211Cognitive Psychology9
or 85-213 Human Information Processing and Artifical Intelligence
Interaction Design Studio 1
05-651Interaction Design Studio 1 c12
or 51-261 Design Center: Communication Design Fundmntls: IxD for Communications
or 51-262 Communication Design Fundamentals: Design for Interactions for Communications
Statistics (one of the following):
36-200Reasoning with Data9
36-207Probability and Statistics for Business Applications9
36-220Engineering Statistics and Quality Control9
36-225-36-226Introduction to Probability Theory - Introduction to Statistical Inference b18
36-247Statistics for Lab Sciences9
70-207Probability and Statistics for Business Applications9
Introduction to Programming
15-104Introduction to Computing for Creative Practice10
or 15-110 Principles of Computing
or 15-112 Fundamentals of Programming and Computer Science
or 15-121 Introduction to Data Structures
Interaction Design Studio 2
05-650Interaction Design Studio II12
Human-Computer Interaction Methods
05-410User-Centered Research and Evaluation12
Interface Programming
05-430Programming Usable Interfaces a15
Project Course
05-571Undergraduate Project in HCI12

Notes

  • aThe required HCI programming course 05-430 Programming Usable Interfaces is only guaranteed to be offered in the Fall. Spring offerings are only when instructor resources are available. When you register for this course, you must also sign up for a recitation time, which is equivalent to the User Interface Lab. The labs differ on their computer science prerequisites. Section D should be taken by students majoring in computer science or with advanced technical skills. Section A through C require only an introductory course in computer science as a prerequisite, and can be taken either by computer science majors or non-computer science majors.
  • bThe statistics course is required so that majors will be able to understand and conduct empirical research in HCI. Therefore a mathematically-oriented probability course, such as 36-217 Probability Theory and Random Processes does not fulfill either requirement. However, the sequence of 36-225 Introduction to Probability Theory and 36-226 Introduction to Statistical Inference (i.e., a mathematical statistics course followed by a statistical inference course) fulfills the statistics prerequisite requirement. 
  • cDesign majors do not need to take 05-651 Interaction Design Studio 1 as a prerequisite, since they learn similar material in other courses for their major. 51-262 Communication Design Fundamentals: Design for Interactions for Communications and 51-261 Design Center: Communication Design Fundmntls: IxD for Communications also count as fulfilling this requirement.
Electives (18 Units)

Electives are intended to provide HCI double majors advanced concepts and skills relevant to HCI or breadth of experience not available from their primary major. Given these goals, most electives will be 300-level courses or higher. Courses at the 100-level and 200-level in one's primary major will not count as electives, although the same course taken by a non-major may count (approval is still required).

Students can take electives in the HCII or courses relevant to HCI from many other departments on campus. All external electives are approved on a case-by-case basis. 

The following courses have been approved as electives in the past, organized by the offering department:

Human-Computer Interaction Units
05-291Learning Media Design12
05-320Social Web12
05-395Applications of Cognitive Science9
05-413Human Factors9
05-418Design Educational Games12
05-432Personalized Online Learning12
05-434Machine Learning in Practice12
05-452Service Design12
05-499Special Topics in HCI12
05-540Rapid Prototyping of Computer Systems12
05-589Independent Study in HCI-UGVar.
05-823E-Learning Design Principles and Methods12
Machine Learning
10-601Introduction to Machine Learning (Masters)12
Computer Science
15-390Entrepreneurship for Computer Science9
15-421Information Security and Privacy12
15-437Web Application Development12
15-462Computer Graphics12
15-466Computer Game Programming12
Statistics
36-309Experimental Design for Behavioral & Social Sciences9
Architecture
48-339IDeATe: Making Things Interactive12
Design
51-241How People Work9
51-324Basic 3D Prototyping4.5
51-327Design Center: Introduction to Web Design9
51-328Advanced Web Design9
51-383Topics: Conceptual Models9
51-385Design for Service9
51-424Web Portfolio4.5
51-359Tools for UX Design9
Business Administration
70-414Entrepreneurship for Engineers9
Double Counting

All prerequisites can be double counted with any requirements in your primary major. At most, two non-prerequisite courses can be double counted with core requirements in primary majors. 

Accelerated Master's Programs

The HCII currently offers a three semester (12-month), 15 course Masters in HCI. Undergraduates currently enrolled in the HCI major may apply for the Accelerated Masters program in the fall semester of their senior year. If admitted, student finish the masters degree the following Fall semester.

Admission to the Major

The HCI undergraduate major is currently available only as a additional major. Because space is limited in the major's required courses, enrollment in the HCI undergraduate major is currently limited to about 35 students in each graduating class. The admissions period occurs in spring semesters. For more details, see the website: https://hcii.cmu.edu/academics/hci-undergraduate.

Human-Computer Interaction Minor

The Minor in Human-Computer Interaction will give students core knowledge about techniques for building successful user interfaces, approaches for conceiving, refining, and evaluating interfaces that are useful and useable, and techniques for identifying opportunities for computational technology to improve the quality of people’s lives. The students will be able to effectively collaborate in the design, implementation, and evaluation of easy-to-use, desirable, and thoughtful interactive systems. They will be prepared to contribute to multidisciplinary teams that create new interactive products, services, environments, and systems.

The key concepts, skills and methods that students will learn in the HCI Minor include:

  • Fieldwork for understanding people’s needs and the influence of context
  • Generative approaches to imagining many possible solutions such as sketching and “bodystorming”
  • Iterative refinement of designs
  • Basic visual design including typography, grids, color, and the use of images
  • Implementation of interactive prototypes
  • Evaluation techniques including discount and empirical evaluation methods

The HCI minor is targeted at undergraduates who expect to get jobs where they design and/or implement information technology-based systems for end users, and well as students with an interest in learning more about the design of socio-technical systems. It is appropriate for students with majors in Computer Science and Information Systems, as well as students in less software-focused majors, including Design, Architecture, Art, Business Administration, Psychology, Statistics, Decision Science, Mechanical Engineering, Electrical Engineering, English and many others in the university.

Curriculum

The only prerequisite for this Minor is an introductory-level college programming course (such as 15-110, 15-112, 15-121, or 51-257) and to be in good standing with the University.

In addition to the programming prerequisite, the Minor has required two courses—05-391 Designing Human Centered Software (DHCS) and 05-392 Interaction Design Overview (IxDO)—and four electives. The student will be required to get a grade of “C” or better in each course in order for it to count as part of the Minor. There is no final project or research required for the Minor.

Required Courses
  • 05-391 Designing Human Centered Software (DHCS)1: This course provides an overview of the most important methods taught in the Additional Major in HCI, such as Contextual Inquiry, Prototyping and Iterative Design, Heuristic Evaluation, and Think Aloud User Studies. It covers in a more abbreviated form the content of 05-410 User-Centered Research and Evaluation, 05-430 Programming Usable Interfaces.
  • 05-392 (IxDO)2: This is a design course that will combine material from 05-651 and 05-650 for students who do not have any previous experience with design, in a form that will fit appropriately in to a one-semester format. 
Electives

The HCI minor requires four electives approved by the undergraduate director. 

Double Counting

Students may double count up to two (2) of the required courses or electives with any other major or minor.

Relationship between the BHCI Major and Minor

Admission
  • BHCI Major: Application and admissions required, information on the HCII website.
  • BHCI Minor: Admissions form available at the HCII website.
Prerequisites
  • BHCI Major:
    • Freshman-level programming
    • Statistics 
    • Cognitive Psychology
    • Interaction Design Studios
  • BHCI Minor:
    • Freshman-level programming
Core Courses
  • BHCI Major:
    • Interaction Design Studio I & II (IxDS)
    • User Centered Research & Evaluation (UCRE)
    • Interface Programming (PUI)
    • BHCI Project
  • BHCI Minor:
    • Interaction Design Overview (IxDO)
    • Designing Human Centered Systems (DHCS)
Electives
  • BHCI Major: Four (4) electives 
  • BHCI Minor: Four (4) electives 
Double Counting
  • BHCI Major: Two (2) core courses or electives with primary major.
  • BHCI Minor: Two (2) core courses or electives with primary major.

Footnotes

 

These alternative ways of fulfilling the requirements for the HCI minor are designed for students who are in the HCI 2nd major who want to “downgrade” to the minor. These students can use some the courses completed for the HCI 2nd major as a way of fulfilling the requirements for the minor.

Students who are in the HCI minor right from the start are strongly encouraged to follow the regular requirements outlined above and are strongly discouraged from trying these alternative ways of fulfilling the requirements. It can be extremely difficult to get into any of the alternative courses. This is true especially for 05-650, but for other courses as well. The fact that a student in the minor has already taken 05-651 will not give priority for getting into 05-650.

IDeATe Minors

Advisor: Kelly Delaney
E-mail: kellydel@andrew.cmu.edu
Website: https://ideate.cmu.edu 

The Integrative Design, Arts and Technology (IDeATe) network offers students the opportunity to become immersed in a collaborative community of faculty and peers who share expertise, experience, and passions at the intersection of arts and technology. Students engage in active "learning by doing" in state-of-the-art maker spaces. The program addresses current and emerging real-world challenges that require disciplinary expertise coupled with multidisciplinary perspectives and collaborative integrative approaches.

The IDeATe undergraduate curriculum consists of eight areas, all of which can be taken as minors. The themes of these areas integrate knowledge in technology and the arts. Four of these minors are based in the School of Computer Science:

Animation & Special Effects Minor

Explore the technical and artistic aspects of 3D and 2D animation in an integrated manner and within different application contexts, from film animation and special effects to interactive displays.

Curriculum

One Computing Course - Minimum of 9 Units
Units
15-104Introduction to Computing for Creative Practice10
15-110Principles of Computing10
15-112Fundamentals of Programming and Computer Science12
60-210Electronic Media Studio: Introduction to Interactivity10
60-212Electronic Media Studio: Interactivity and Computation for Creative Practice12
One IDeATe Portal Course - Minimum of 9 Units
Units
16-223IDeATe Portal: Creative Kinetic Systems10
18-090Twisted Signals: Multimedia Processing for the Arts10
60-223IDeATe: Introduction to Physical Computing10
62-150IDeATe Portal: Introduction to Media Synthesis and Analysis10
99-361IDeATe Portal9
IDeATe Animation & Special Effects Courses - Minimum of 27 Units
Units
15-365/60-422Experimental Animation12
15-463Computational Photography12
15-465/60-414Animation Art and Technology12
16-374/60-428IDeATe: Art of Robotic Special Effects12
60-125IDeATe Introduction to 3D Animation12
60-220IDeATe Technical Character Animation10
60-333IDeATe: Character Rigging for Production10
60-398Social History of Animation9
60-410Advanced ETB: Moving Image Magic: Visual Effects and Motion Graphics10
60-415Advanced ETB: Animation Studio10
60-417Advanced ETB: Video10
76-285Team Communication6
Double-Counting

Students may double-count up to two of their Animation & Special Effects minor courses toward other requirements.

Intelligent Environments Minor

Develop spaces and devices that support efficiency and high quality of experience in contexts like daily activity, built environment, making process (from laying plaster to robot development), and arts performance.

Curriculum

One Computing Course - Minimum of 9 Units
Units
15-104Introduction to Computing for Creative Practice10
15-110Principles of Computing10
15-112Fundamentals of Programming and Computer Science12
60-210Electronic Media Studio: Introduction to Interactivity10
60-212Electronic Media Studio: Interactivity and Computation for Creative Practice12
One IDeATe Portal Course - Minimum of 9 Units
Units
16-223IDeATe Portal: Creative Kinetic Systems10
18-090Twisted Signals: Multimedia Processing for the Arts10
60-223IDeATe: Introduction to Physical Computing10
62-150IDeATe Portal: Introduction to Media Synthesis and Analysis10
99-361IDeATe Portal9
IDeATe Intelligent Environments Courses - Minimum of 27 Units
Units
16/54-375IDeATe: Robotics for Creative Practice10
16-455/48-530IDeATe: Human-Machine Virtuosity12
16-467Human Robot Interaction12
18/05-540Rapid Prototyping of Computer Systems12
48/53-558Reality Computing12
54/16-371Personalized Responsive Environments9
62-315InterBreeding Architecture: Computational Techniques for Shaping the Environment9
76-285Team Communication6
Double-Counting

Students may double-count up to two of their Intelligent Environments minor courses toward other majors and minors.

Design for Learning Minor

Design effective new media systems for learning using new technologies, learning science principles and media arts knowledge. Produce engaging and effective experiences from games to tangible learning tool kits and remote systems.

Curriculum

One Computing Course - Minimum of 9 Units
Units
15-104Introduction to Computing for Creative Practice10
15-110Principles of Computing10
15-112Fundamentals of Programming and Computer Science12
60-210Electronic Media Studio: Introduction to Interactivity10
60-212Electronic Media Studio: Interactivity and Computation for Creative Practice12
One IDeATe Portal Course - Minimum of 9 Units
Units
16-223IDeATe Portal: Creative Kinetic Systems10
18-090Twisted Signals: Multimedia Processing for the Arts10
60-223IDeATe: Introduction to Physical Computing10
62-150IDeATe Portal: Introduction to Media Synthesis and Analysis10
99-361IDeATe Portal9
IDeATe Design for Learning Courses - Minimum of 27 Units
05-291Learning Media Design12
05-292Learning Media Methods12
05-418Design Educational Games12
05-432Personalized Online Learning12
05-823E-Learning Design Principles and Methods12
51-486Learner Experience Design9
76-285Team Communication6
80-292Learning Science Principles12
85-392Human Expertise9
Double-Counting

Students may double-count up to two of their Design for Learning minor courses toward requirements for other majors and minors.

Physical Computing Minor

Build interfaces and circuitry to embed in physical contexts, such as mobile environments and new creative practice instruments.

Curriculum

One Computing Course - Minimum of 9 Units
Units
15-104Introduction to Computing for Creative Practice10
15-110Principles of Computing10
15-112Fundamentals of Programming and Computer Science12
60-210Electronic Media Studio: Introduction to Interactivity10
60-212Electronic Media Studio: Interactivity and Computation for Creative Practice12
One IDeATe Portal Course - Minimum of 9 Units
Units
16-223IDeATe Portal: Creative Kinetic Systems10
18-090Twisted Signals: Multimedia Processing for the Arts10
60-223IDeATe: Introduction to Physical Computing10
62-150IDeATe Portal: Introduction to Media Synthesis and Analysis10
99-361IDeATe Portal9
IDeATe Physical Computing Courses - Minimum of 27 Units
Units
15-294Special Topic: Rapid Prototyping Technologies5
16-374/60-428IDeATe: Art of Robotic Special Effects12
16/54-375IDeATe: Robotics for Creative Practice10
16-455/48-530IDeATe: Human-Machine Virtuosity12
18/05-540Rapid Prototyping of Computer Systems12
18-578Mechatronic Design12
24-672Special Topics in DIY Design and Fabrication12
39-245Rapid Prototype Design9
48-339IDeATe: Making Things Interactive12
48-390Physical Computing Studio10
48/53-558Reality Computing12
48-739Making Things Interactive (Graduate)12
60-412Interactive Art and Computational Design12
62-478IDeATe: digiTOOL6
76-285Team Communication6
Double-Counting

Students may double-count up to two of their Physical Computing minor courses toward requirements for other majors and minors.

Language Technologies Minor

Chair: Alan W. Black
E-mail: awb@cs.cmu.edu
Website: http://www.lti.cs.cmu.edu/learn

Human language technologies have become an increasingly central component of computer science. Information retrieval, machine translation and speech technology are used daily by the general public, while text mining, natural language processing and language-based tutoring are common within more specialized professional or educational environments. The Language Technologies Institute prepares students for this world by offering a minor that gives you the opportunity to not only learn about language technologies, but to also apply that knowledge through a directed project.

Prerequisites
Prerequisites Units
15-122Principles of Imperative Computation10
15-150Principles of Functional Programming10
Recommended
21-241Matrices and Linear Transformations10
or 21-242 Matrix Theory
36-218Probability Theory for Computer Scientists9
or 15-259 Probability and Computing
or 15-359 Probability and Computing
Curriculum
Core Course
11-421GRAMMARS & LEXICONS12
or 11-721 Grammars and Lexicons
Electives (choose 3)
11-411Natural Language Processing12
11-441Machine Learning for Text Mining9
11-442Search Engines9
11-492Speech Processing12
11-711Algorithms for NLP12
11-731Machine Translation and Sequence-to-Sequence Models12
11-751Speech Recognition and Understanding12
11-752Speech II: Phonetics, Prosody, Perception and Synthesis12
11-761Language and Statistics12
80-180Nature of Language9
80-280Linguistic Analysis9
Project
A semester-long directed research project OR paper to provide hands-on experience and an in-depth study of a topic (in same area as a chosen elective)12
Double Counting of Courses

Students may double count 11-421/11-721 Grammars and Lexicons as well as 80-180 Nature of Language toward any other major or minor.

Machine Learning Minor

Program Director: Dr. Matt Gormley
Program Coordinator: Dorothy Holland-Minkley
E-mail: ml-minor@cs.cmu.edu
Website: http://www.ml.cmu.edu/academics/minor-in-machine-learning.html

Machine learning and statistical methods are increasingly used in many application areas including natural language processing, speech, vision, robotics, and computational biology. The Minor in Machine Learning allows undergraduates to learn about the core principles of this field.

Prerequisites

The 5 prerequisite courses must be taken before a student applies to the Machine Learning Minor.

Prerequisites Units
15-122Principles of Imperative Computation10
21-120Differential and Integral Calculus10
21-122Integration and Approximation10
36-217Probability Theory and Random Processes9
or 36-218 Probability Theory for Computer Scientists
or 36-225 Introduction to Probability Theory
or 15-259 Probability and Computing
or 15-359 Probability and Computing
or 21-325 Probability
36-226Introduction to Statistical Inference9
or 36-326 Mathematical Statistics (Honors)
Core Courses

The Machine Learning Minor has 2 core courses taken by all students.

Core Courses
10-401Introduction to Machine Learning (Undergrad)12
or 10-601 Introduction to Machine Learning (Masters)
36-401Modern Regression9
Electives

The Machine Learning Minor requires at least 3 electives of at least 9 units each in Machine Learning. This can be through a combination of stand-alone courses in Machine Learning, senior research (taken over two semesters and counting as two electives), and a variety of two-course sequences that provide depth in different areas.

Students should note that some of these elective courses (those at the 600-level and higher) are primarily aimed at graduate students, and so should make sure that they are adequately prepared for them before enrolling.

Graduate-level cross-listings of these courses can also be used for the ML Minor, if the student is adequately prepared for the more advanced version and the home department approves the student's registration.

Stand-Alone Electives

Students can take as many of these courses as desired, with each one counting as one elective.

Take as many of these courses as desired:
10-405Machine Learning with Large Datasets (Undergraduate)12
or 10-605/805 Machine Learning with Large Datasets
10-701Introduction to Machine Learning (PhD)12
10-702Statistical Machine Learning12
10-703Deep Reinforcement Learning & Control12
10-707Topics in Deep Learning12
11-777Advanced Multimodal Machine Learning12
36-315Statistical Graphics and Visualization9
36-402Advanced Methods for Data Analysis9
36-461Special Topics: Statistical Methods in Epidemiology9
36-462Special Topics: Data Mining9
36-463Special Topics: Multilevel and Hierarchical Models9
36-464Special Topics: Applied Multivariate Methods9
36-700Probability and Mathematical Statistics12
or 36-705 Intermediate Statistics
Senior Research

Senior research consists of 2 semesters of 10-500 Senior Research Project, totaling 24 units and counting as 2 electives.

10-500Senior Research Project24
Artificial Intelligence Two-Course Sequence

The Artificial Intelligence sequence requires 15-381 plus another course from the Artificial Intelligence sequence list.

Required introductory course:
15-381Artificial Intelligence: Representation and Problem Solving9
Plus one of:
15-388Practical Data Science9
17-537Artificial Intelligence Methods for Social Good9
Bioinformatics Two-Course Sequence

Students interested in the Bioinformatics sequence can choose between the Computational Genomics pair or the Biological Modeling pair.

Take both courses in Computational Genomics:
02-510Computational GenomicsVar.
03-511Computational Molecular Biology and Genomics9
Or take both courses in Biological Modeling:
02-530Cell and Systems Modeling12
03-512Computational Methods for Biological Modeling and Simulation9
Computation, Organizations, and Society Two-Course Sequence

Students take both courses in the Computation, Organizations, and Society sequence. Please be aware that both of these courses are offered only intermittently.

17-621Computational Modeling of Complex Socio-Technical Systems12
17-685Dynamic Network Analysis12
Computer Vision Two-Course Sequence

Students have the choice between one of two introductory courses (16-311 or 16-385) plus another advanced course from the Computer Vision sequence.

Take one introductory course:
16-311Introduction to Robotics12
or 16-385 Computer Vision
Plus one of:
15-463Computational Photography12
16-720Computer Vision12
16-725Medical Image Analysis12
16-823Physics-based Methods in Vision (Appearance Modeling)12
16-824Visual Learning and Recognition12
Language Technologies Two-Course Sequence

The Language Technologies sequence requires 11-411 plus another course from the Language Technologies sequence list.

Required introductory course:
11-411Natural Language Processing12
Plus one of:
11-441Machine Learning for Text Mining9
11-442Search Engines9
11-661Language and Statistics12
11-731Machine Translation and Sequence-to-Sequence Models12
11-751Speech Recognition and Understanding12
11-755Machine Learning for Signal Processing12
11-763Structured Prediction for Language and other Discrete Data12
Neural Cognition Two-Course Sequence

Students can take any two courses from the Neural Cognition sequence.

15-386Neural Computation9
15-883Computational Models of Neural Systems12
36-759Statistical Models of the Brain12
85-419Introduction to Parallel Distributed Processing9
Public Policy Two-Course Sequence

Students take both courses in the Public Policy sequence. If interested in this option, students should contact the Machine Learning Minor Director to confirm that 10-831 Special Topics in Machine Learning and Policy will be offered in an appropriate semester. Also, note that these two courses combine to count as only one elective, since they are under 9 units each.

Take both of:
10-830Machine Learning in Policy12
10-831Special Topics in Machine Learning and Policy6
Robotics Two-Course Sequence

The Robotics sequence requires 16-311 plus another course from the Robotics sequence list.

Required introductory course:
16-311Introduction to Robotics12
Plus one of:
16-745Dynamic Optimization12
16-831Statistical Techniques in Robotics12
16-899Special Topics
Section C: Adaptive Control and Reinforcement Learning
12
Double Counting

No course in the Machine Learning Minor may be counted towards another SCS minor. Additionally, at least 3 courses (each being at least 9 units) must be used for only the Machine Learning Minor, not for any other major or minor. (These double counting restrictions apply specifically to the Core Courses and the Electives. Prerequisites may be counted towards other SCS minors and do not count towards the 3 courses that must be used for only the Machine Learning Minor.)

GRADES

The core courses (10-401/10-601 and 36-401) must average to at least a 3.0 (i.e., 1 A and 1 C, or 2 Bs). All courses for the Machine Learning Minor, including prerequisites, must be passed with at least a C. The student's overall, university-wide QPA must remain at least 2.5.

ADMISSION

The Machine Learning Minor is open to undergraduate students in any major at Carnegie Mellon. (SCS students should consult with their academic advisor for the existence of a machine learning concentration.) Students should apply for admission at least one semester before their expected graduation date, but are encouraged to apply as soon as they have taken the prerequisite classes for the minor. The application can be found on the Machine Learning Minor website.

Neural Computation Minor

Director: Dr. Tai Sing Lee
Administrative Coordinator: Melissa Stupka
Website: http://www.cnbc.cmu.edu/upnc/nc_minor/
 

Neural computation is a scientific enterprise to understand the neural basis of intelligent behaviors from a computational perspective. Study of neural computation includes, among others, decoding neural activities using statistical and machine learning techniques, and developing computational theories and neural models of perception, cognition, motor control, decision-making and learning. The neural computation minor allows students to learn about the brain from multiple perspectives, and to acquire the necessary background for graduate study in neural computation. Students enrolled in the minor will be exposed to, and hopefully participate in, the research effort in neural computation and computational neuroscience at Carnegie Mellon University.

The minor in Neural Computation is an intercollege minor jointly sponsored by the School of Computer Science, the Mellon College of Science, and the Dietrich College of Humanities and Social Sciences, and is coordinated by the Center for the Neural Basis of Cognition (CNBC).

The Neural computation minor is open to students in any major of any college at Carnegie Mellon. It seeks to attract undergraduate students from computer science, psychology, engineering, biology, statistics, physics, and mathematics from SCS, CIT, H&SS and MCS.

The Neural Computation minor is open to students in any major of any college at Carnegie Mellon. It seeks to attract undergraduate students from computer science, psychology, engineering, biology, statistics, physics, and mathematics from SCS, CIT, Dietrich College and MCS. The primary objective of the minor is to encourage students in biology and psychology to take computer science, engineering and mathematics courses, to encourage students in computer science, engineering, statistics and physics to take courses in neuroscience and psychology, and to bring students from different disciplines together to form a community. The curriculum and course requirements are designed to maximize the participation of students from diverse academic disciplines. The program seeks to produce students with both basic computational skills and knowledge in cognitive science and neuroscience that are central to computational neuroscience.

APPLICATION

tudents must apply for admission no later than November 30 of their senior years; an admission decision will usually be made within one month. Students are encouraged to apply as early as possible in their undergraduate careers so that the director of the Neural Computation minor can provide advice on their curriculum, but should contact the program director any time even after the deadline.

To apply, send email to the director of the Neural Computation minor Dr. Tai Sing Lee (tai@cnbc.cmu.edu) and copy Melissa Stupka (mstupka@cnbc.cmu.edu). Include in your email:

  • Full name
  • Andrew ID
  • Preferred email address (if different)
  • Your class and College/School at Carnegie Mellon
  • Semester you intend to graduate
  • All (currently) declared majors and minors
  • Statement of purpose (maximum 1 page) – Describes why you want to take this minor and how it fits into your career goals
  • Proposed schedule of required courses for the Minor (this is your plan, NOT a commitment)
  • Research projects you might be interested in
Curriculum

The Minor in Neural Computation will require a total of five courses: four courses drawn from the four core areas (A: neural computation, B: neuroscience, C: cognitive psychology, D: intelligent system analysis), one from each area, and one additional depth elective chosen from one of the core areas that is outside the student’s major. The depth elective can be replaced by a one-year research project in computational neuroscience. No more than two courses can be double counted toward the student’s major or other minors. However, courses taken for general education requirements of the student’s degree are not considered to be double counted. A course taken to satisfy one core area cannot be used to satisfy the course requirement for another core area. The following listing presents a set of current possible courses in each area. Other computational neuroscience courses are being developed at Carnegie Mellon and University of Pittsburgh that will also satisfy core area A requirement and the requirements will be updated as they come on-line. Substitution is possible but requires approval.

A. Neural Computation
Units
15-386Neural Computation9
15-387Computational Perception9
15-883Computational Models of Neural Systems12
85-419Introduction to Parallel Distributed Processing9
86-375Computational Perception9
Pitt-Mathematics-1800 Introduction to Mathematical Neuroscience9
B. Neuroscience
03-362Cellular Neuroscience9
03-363Systems Neuroscience9
03-761Neural Plasticity9
42-630Introduction to Neuroscience for Engineers
(crosslisted with 18-690)
12
85-765Cognitive NeuroscienceVar.
Pitt-Neuroscience 1000 Introduction to Neuroscience9
C. Cognitive Psychology
85-211Cognitive Psychology9
85-213Human Information Processing and Artifical Intelligence9
85-412Cognitive Modeling9
85-419Introduction to Parallel Distributed Processing9
85-426Learning in Humans and Machines9
85-765Cognitive NeuroscienceVar.
D. Intelligent System Analysis
10-601Introduction to Machine Learning (Masters)12
15-381Artificial Intelligence: Representation and Problem Solving9
15-386Neural Computation9
15-387Computational Perception9
15-494Cognitive Robotics: The Future of Robot Toys12
16-299Introduction to Feedback Control Systems12
16-311Introduction to Robotics12
16-385Computer Vision9
18-290Signals and Systems12
24-352Dynamic Systems and Controls12
36-225Introduction to Probability Theory9
36-247Statistics for Lab Sciences9
36-401Modern Regression9
36-410Introduction to Probability Modeling9
36-746Statistical Methods for Neuroscience and Psychology12
42-631Neural Data Analysis9
42-632Neural Signal Processing12
86-375Computational Perception9
86-631Neural Data Analysis9
Prerequisites

The required courses in the above four core areas require a number of basic prerequisites: basic programming skills at the level of 15-110 Principles of Computing and basic mathematical skills at the level of 21-122 Integration and Approximation or their equivalents. Some courses in Area D require additional prerequisites. Area B Biology courses require, at minimum, 03-121 Modern Biology. Students might skip the prerequisites if they have the permission of the instructor to take the required courses. Prerequisite courses are typically taken to satisfy the students' major or other requirements. In the event that these basic skill courses are not part of the prerequisite or required courses of a student's major, one of them can potentially count toward the five required courses (e.g. the depth elective), conditional on approval by the director of the minor program.

Research Requirements (Optional)

The minor itself does not require a research project. The student however may replace the depth elective with a year-long research project. In special circumstances, a research project can also be used to replace one of the five courses, as long as (1) the project is not required by the student's major or other minor, (2) the student has taken a course in each of the four core areas (not necessarily for the purpose of satisfying this minor's requirements), and (3) has taken at least three courses in this curriculum not counted toward the student's major or other minors. Students interested in participating in the research project should contact any faculty engaged in computational neuroscience or neural computation research at Carnegie Mellon or in the University of Pittsburgh. A useful webpage that provides listing of faculty in neural computation is www.cnbc.cmu.edu/computational-neuroscience. The director of the minor program will be happy to discuss with students about their research interest and direct them to the appropriate faculty.

Fellowship Opportunities

The Program in Neural Computation (PNC) administered by the Center for the Neural Basis of Cognition currently provides 3-4 competitive full-year fellowships ($11,000) to Carnegie Mellon undergraduate students to carry out mentored research in neural computation. The fellowship has course requirements similar to the requirements of the minor. Students do not apply to the fellowship program directly. They have to be nominated by the faculty members who are willing to mentor them. Therefore, students interested in the full-year fellowship program should contact and discuss research opportunities with any CNBC faculty at Carnegie Mellon or University of Pittsburgh working in the area of neural computation or computational neuroscience and ask for their nomination by sending email to Dr. Tai Sing Lee, who also administers the undergraduate fellowship program at Carnegie Mellon. See www.cnbc.cmu.edu/training/undergraduate/undergraduate-research-fellowships-in-computational-neuroscience/ for details.

The Program in Neural Computation also offers a summer training program for undergraduate students from any U.S. undergraduate college. The students will engage in a 10-week intense mentored research and attend a series of lectures in neural computation. See www.cnbc.cmu.edu/training/undergraduate/summer-undergraduate-research-program-in-computational-neuroscience/ for application information.

Robotics Additional Major

Director: Dr. Howie Choset
Administrative Coordinator: Barbara (B.J.) Fecich
Website: http://addlmajor.ri.cmu.edu/

The Additional Major in Robotics focuses on the theme that robotics is both multidisciplinary and interdisciplinary. This means that it draws from many fields, such as mechanical engineering, computer science and electrical engineering, and it also integrates these fields in a novel manner. The foundation of this program lies in motion and control. Upon this base, sensing, cognition, and action are layered. Since robotics involves building artifacts that embody these fundamentals, foci, and systems thinking, there is a "hands-on" course requirement. These foci are brought together by a unique systems perspective special to robotics. Students will complete a capstone course that will tie together previously learned skills and knowledge.

Admission

The Additional Major in Robotics is available to all Carnegie Mellon undergraduate students. Students should apply for the Robotics Additional Major their freshman year. Students in their sophomore year may apply, provided they meet the requirements and their schedule can accommodate the courses. The application is available via the program website and is due early February. Decisions on admittance to the Additional Major will be emailed to students in time for Fall registration. Application materials include:

  • Full name and email address
  • Home college, expected graduation date, and list of all declared Majors and Minors
  • Statement of purpose (maximum 1 page, single spaced, to articulate why the student wants to pursue the Robotics Additional Major)
  • Proposed schedule of required courses 
  • Unofficial Academic Record (can be downloaded from SIO)

Curriculum

Prerequisites
Calculus Units
21-259Calculus in Three Dimensions9
Linear Algebra (choose one)
18-202Mathematical Foundations of Electrical Engineering12
21-240Matrix Algebra with Applications10
21-241Matrices and Linear Transformations10
21-260Differential Equations9
24-311Numerical Methods12
Programming in C
15-122Principles of Imperative Computation10
or knowledge and experience programming in C
Required Courses

Choose 10 courses total (one from each category plus two electives):

Overview Units
16-311Introduction to Robotics12
Controls
06-464Chemical Engineering Process Control9
16-299Introduction to Feedback Control Systems12
18-370Fundamentals of Control12
24-451Feedback Control Systems12
16-xxxUpper-level RI course with instructor and Program Director's permission9-12
Kinematics
16-384Robot Kinematics and Dynamics12
16-xxxUpper-level RI course with instructor and Program Director's permission9-12
Machine Perception
15-463Computational Photography12
16-385Computer Vision9
16-421Vision Sensors12
16-423Designing Computer Vision Apps12
85-370Perception9
85-395Applications of Cognitive Science9
16-xxxUpper-level RI course with instructor and Program Director's permission9-12
Cognition and Reasoning
10-401Introduction to Machine Learning (Undergrad)12
or 10-601 Introduction to Machine Learning (Masters)
11-344Machine Learning in Practice12
15-381Artificial Intelligence: Representation and Problem Solving9
15-494Cognitive Robotics: The Future of Robot Toys12
16-xxxUpper-level RI course with instructor and Program Director's permission9-12
"Hands-on Course"
15-491Special Topic: CMRoboBits: AI and Robots for Daily-Life Problems12
16-362Mobile Robot Algorithms Laboratory12
16-423Designing Computer Vision Apps12
18-349Introduction to Embedded Systems12
18-578Mechatronic Design12
16-xxxUpper-level RI project course e.g., 16-861 or 16-865 or independent study with instructor and Program Director's permission9-12
Systems Engineering
16-450Robotics Systems Engineering12
Capstone Course
16-474Robotics Capstone12
Required Electives (choose two)
10-401Introduction to Machine Learning (Undergrad)12
or 10-601 Introduction to Machine Learning (Masters)
11-344Machine Learning in Practice12
15-381Artificial Intelligence: Representation and Problem Solving9
15-424Logical Foundations of Cyber-Physical Systems12
15-462Computer Graphics12
15-463Computational Photography12
15-491Special Topic: CMRoboBits: AI and Robots for Daily-Life Problems12
15-494Cognitive Robotics: The Future of Robot Toys12
16-264Humanoids12
16-362Mobile Robot Algorithms Laboratory12
16-385Computer Vision9
16-421Vision Sensors12
16-423Designing Computer Vision Apps12
16-597Undergraduate Reading and ResearchVar.
18-342Fundamentals of Embedded Systems12
18-349Introduction to Embedded Systems12
18-578Mechatronic Design12
85-370Perception9
85-395Applications of Cognitive Science9
85-412Cognitive Modeling9
85-419Introduction to Parallel Distributed Processing9
85-426Learning in Humans and Machines9

Students may count up to 12 units of 16-597 Undergraduate Reading and Research towards the major requirements. A student can also take additional courses from the core; e.g., a student who takes 16-385 as a core can take 16-421 as an elective.

Graduate level Robotics courses may be used to meet elective requirement with permission from the Program Director. Graduate level Mechanical Engineering and Electrical and Computer Engineering courses that are relevant to robotics may be used to meet the elective requirement with permission from the Program Director.

A 3.0 QPA in the Additional Major curriculum is required for graduation. Courses that are taken Pass/Fail or audited cannot be counted for the Additional Major.

Double-Counting Restriction

Students are permitted to double count a maximum of six courses from their Primary Major towards the Additional Major in Robotics. CS Majors are permitted to double count a maximum of five courses from their Primary Major towards the Additional Major in Robotics.

Robotics Minor

Director: Dr. Howie Choset
Administrative Coordinator: Barbara (B.J.) Fecich
Website: http://undergrad.ri.cmu.edu/academics/minor/

The Minor in Robotics provides an opportunity for undergraduate students at Carnegie Mellon to learn the principles and practices of robotics through theoretical studies and hands-on experience with robots. The Minor is open to students in any major of any college at Carnegie Mellon. Students initially learn the basics of robotics in an introductory robotics overview course. Additional required courses teach control systems and robotic manipulation. Students also choose from a wide selection of electives in robotics, perception, computer vision, cognition and cognitive science, or computer graphics. Students have a unique opportunity to undertake independent research projects, working under the guidance of Robotics Institute faculty members; this provides an excellent introduction to robotics research for those considering graduate studies.

All Robotics Minors are required to take Introduction to Robotics (16-311). This course is designed to help students understand the big picture of what is going on in robotics through topics such as kinematics, mechanisms, motion planning, sensor based planning, mobile robotics, sensors, and vision.  The minor also requires students to take a controls class and a kinematics class.  These courses provide students with the necessary intuition and technical background to move on to more advanced robotics courses. In addition to the required courses, students must take 2 electives. The student must have course selection approved by the Director during the application submission process. 

A 2.5 QPA in the Minor curriculum is required for graduation. Courses that are taken Pass/Fail or audited cannot be counted for the Minor.

Admission

Admission to the Undergraduate Minor in Robotics is limited to current Carnegie Mellon students. Students interested in signing up for the minor should fill out the application form available on the program website.

Prerequisite

Successful candidates for the Robotics Minor will have prerequisite knowledge of C language, basic programming skills, and familiarity with basic algorithms. Students can gain this knowledge by taking 15-122 Principles of Imperative Computation.

Required Courses
Overview: Units
16-311Introduction to Robotics12
Controls (choose one of the following):
06-464Chemical Engineering Process Control9
24-451Feedback Control Systems12
18-370Fundamentals of Control12
16-299Introduction to Feedback Control Systems
(Computer Science)
12
16-xxxUpper-level RI course with instructor and Program Director's permission
Kinematics (choose one of the following):
16-384Robot Kinematics and Dynamics12
16-xxxUpper-level RI course with instructor and Program Director's permission
Electives
Two Electives (chosen from the following): Units
10-401Introduction to Machine Learning (Undergrad)
(or 10-601 Introduction to Machine Learning)
12
11-344Machine Learning in Practice12
15-381Artificial Intelligence: Representation and Problem Solving9
15-424Logical Foundations of Cyber-Physical Systems12
15-462Computer Graphics12
15-463Computational Photography12
15-491Special Topic: CMRoboBits: AI and Robots for Daily-Life Problems12
15-494Cognitive Robotics: The Future of Robot Toys12
16-264Humanoids12
16-362Mobile Robot Algorithms Laboratory12
16-385Computer Vision9
16-421Vision Sensors12
16-423Designing Computer Vision Apps12
16-597Undergraduate Reading and ResearchVar.
18-342Fundamentals of Embedded Systems12
18-349Introduction to Embedded Systems12
18-578Mechatronic Design12
85-370Perception9
85-395Applications of Cognitive Science9
85-412Cognitive Modeling9
85-419Introduction to Parallel Distributed Processing9
85-426Learning in Humans and Machines9

Graduate level Robotics courses may be used to meet the elective requirement with permission from the Program Director. Graduate level Mechanical Engineering and Electrical and Computer Engineering courses that are relevant to robotics may be used to meet the elective requirement with permission from the Program Director.

Students may count up to 12 units of 16-597 Undergraduate Reading and Research towards the minor requirements.

Double-Counting Restriction

Courses being used to satisfy the requirements for the Robotics Minor may not be counted towards another minor. Students are permitted to double count a maximum of two courses from their Major (excluding General Education requirements) towards the Minor in Robotics. Free electives are not subject to the double counting policy.

Software Engineering Minor

Director: Claire Le Goues (clegoues@cs.cmu.edu)
Website: http://isri.cmu.edu/education/undergrad/

Effectively building modern software systems at scale requires not just programming skills, but also engineering skills. These skills include the ability to interact effectively with customers to gather the requirements for a system in a precise way; to develop a design that resolves competing quality attributes; to make tradeoffs among schedule, cost, features, and quality to maximize value to stakeholders; to work effectively with other engineers; and to assure the quality of the delivered software system. 

The Software Engineering minor is designed to teach the fundamental tools, techniques, and processes of software engineering.Through internships and a mentored project experience, students gain an understanding of the issues of scale and complexity that motivate software engineering tools and techniques.The core curriculum includes material both on engineering the software product and on the process, teamwork, and management skills that are essential to successful engineering. Graduates of the program should have the technical, process, and teamwork skills to be immediately productive in a mature engineering organization.

Admission

The Software Engineering Minor is open to undergraduate students in any major in the university. (SCS students should consult with their academic advisor for the existence of a Software Engineering concentration.) We encourage students to submit applications no later than 3 days before the beginning of the Spring and Fall course registration periods, so that subsequent decisions can help students plan their course schedules effectively. However, students may petition the Director for admission outside this general schedule.

To apply, send the directors an email.  Include in your email:

  • Full name
  • Andrew ID
  • Preferred email address (if different)
  • Semester you intend to graduate
  • QPA
  • All (currently) declared majors and minors, or home college if no major declared
  • Statement of purpose (maximum 1 page) - Describes why you want to take this minor and how it fits into your career goals
  • Proposed schedule of required courses and internship (this is your plan, NOT a commitment)
Prerequisite
Units
17-214Principles of Software Construction: Objects, Design, and Concurrency12
 Core Course Requirements
17-313Foundations of Software Engineering12
17-413Software Engineering Practicum12
Electives

The minor requires three elective courses, one selected from each of the following categories:

1. One domain-independent course focused on technical software engineering material:
15-414Bug Catching: Automated Program Verification9
17-355Program Analysis12
17-356Software Engineering for Startups12
17-615Software Process Definition9
17-651Models of Software Systems12
17-652Methods: Deciding What to Design12
17-653Managing Software Development
(prereq: 17-413 or an internship)
12
17-654Analysis of Software Artifacts12
17-655Architectures for Software Systems
(prereq: 17-413 or an internship)
12
Other Software Engineering graduate classes may be taken; you must get preapproval from the program director prior to taking the class.
2. One engineering-focused course with a significant software component:
15-410Operating System Design and Implementation15
15-412Operating System PracticumVar.
15-440Distributed Systems12
15-441Computer Networks12
17-437Web Application Development12
17-643Hardware for Software EngineersVar.
18-649Distributed Embedded Systems12
Other courses may be acceptable; you must get preapproval from the program director prior to taking the course.
3. One course that explores computer science problems related to existing and emerging technologies and their associated social, political, legal, business, and organizational contexts:
15-390Entrepreneurship for Computer Science9
17-200Ethics and Policy Issues in Computing9
17-331Information Security, Privacy, and Policy12
17-333Privacy Policy, Law, and Technology9
17-334Usable Privacy and Security9
17-562Law of Computer Technology9
19-402Telecommunications Technology and Policy for the Internet Age12
19-403Policies of Wireless Systems12
70-311Organizational Behavior9
70-414Entrepreneurship for Engineers9
70-421Entrepreneurship for Computer Scientists9
70-471Supply Chain Management9
88-341Team Dynamics and Leadership9
Required Internship and Reflection Course

A software engineering internship of a minimum of 8 full-time weeks in an industrial setting is required.  The student must be integrated into a team and exposed to industry pressures.  The intern may work in development, management, quality assurance, or other relevant positions.  The director of the SE minor program has sole discretion in approving an internship experience based on these criteria.  Students should confirm that an internship position is appropriate before accepting it, but internships that fulfill the criteria will also be accepted after the fact.

17-415Software Engineering Reflection6
Double Counting Rule

At most 2 of the courses used to fulfill the minor requirements may be counted towards any other major or minor program. This rule does not apply to 17-214 (a prerequisite for the minor) or courses counted for general education requirements.

The School of Computer Science will begin to offer concentrations for SCS students in various aspects of computing to provide greater depth to their education. Computer Science majors can substitute an SCS concentration for the minor requirement. Artificial Intelligence and Computational Biology majors can complete an SCS concentration if they wish, but it is not required for these degrees.

Note: At the present time, concentrations are not shown on official transcripts.

Concentrations will be introduced during the 2018-19 academic year. Consult the SCS undergraduate programs website for information about these concentrations as they are approved. For SCS students, consult with your academic advisor for more information about available concentrations and requirements.

Security & Privacy Concentration

Lujo Bauer, Concentration Coordinator (CIC 2203)

In a world where data breaches and cyber-attacks are ever-present, the need for technologists who have a solid understanding of the principles that underlie strong security and privacy practices is greater than ever. 

The Security & Privacy concentration is designed to expose students to the key facets of and concerns about computer security and privacy that drive practice, research, and legislation. On completing the curriculum, students will be well prepared to continue developing their interests in security or privacy through graduate study; to take jobs in security or privacy that will provide further training in applicable areas; and to be informed participants in public and other processes that shape how organizations and society develop to meet new challenges related to computer security or privacy.

How to Apply

The concentration is open to all undergraduates in the School of Computer Science. There is no formal admissions process. Students intending to pursue the concentration should contact the concentration coordinator to register their intention. Students who complete the concentration can contact the concentration coordinator to receive a certificate attesting to their successful completion.

Curriculum

A distinguishing feature of this field is the ubiquitous need to consider an adversary, and the resulting interplay between attack and defense that routinely advances both theory and practice. In order to understand widely-deployed defensive techniques and secure-by-design approaches, students must also understand the attacks that motivate them and the “adversarial mindset” that leads to new forms of attack. The curriculum is designed around this principle

Students in the Security & Privacy concentration will take courses that cover the basic principles (Introduction and Basics Course Area), the underlying theory (Theoretical Foundations Course Area), and the practical application (System Design Course Area) of security and privacy. Additionally, they will be required to select a course which covers either usability or policy (Context Course Area). Finally, students will have the opportunity to dive deep on a particular security & privacy topic by completing an elective of their choosing (Depth Course Area).

Requirements (5 courses, minimum 48 units):

Introduction/Portal Entry course Units
15-330Introduction to Computer Security
Students who have successfully completed 15-487 or 18-487 in Fall 2017 will be allowed to count that course as having satisfied this requirement for the concentration as long as they also successfully complete 17-333 (previously 08-533).
12
Theoretical Foundations course (choose one option): Units
15-503Introduction to Cryptography9
or the following two courses:
18-733Applied Cryptography12
18-734Foundation of Privacy12
System Design course (choose one): Units
15-316Software Foundations of Security and Privacy9
18-732Secure Software Systems12
Usability or Policy course (select one): Units
17-334Usable Privacy and Security9
or one of:
17-333Privacy Policy, Law, and Technology9
18-734Foundation of Privacy
(if not used for the Theoretical Foundations requirement)
12
Depth course (complete one option below): Units
Complete an elective course or at least 9 units of independent study in the security or privacy area. Consult with the concentration coordinator for elective options.9
Complete five, rather than four, courses from the list above to satisfy the requirements described above (this might be achieved by taking both a policy and a usability course, or taking the two-course foundations alternative).9-12

Prior Coursework

Any courses from the core or elective list successfully completed before Fall 2018 will likely also count toward concentration requirements, but check with the concentration coordinator to make sure your previous courses will count.

Anti-requisites

When two (or more) courses overlap significantly in the material they cover, only one can count toward the security and privacy concentration. Below is a list of anti-requisites; each bullet is a list of courses out of which only one can count toward the security and privacy concentration.

  • Software Foundations of Security and Privacy (15-316)
    Secure Software Systems (18-732)
  • Introduction to Cryptography (15-503)
    Applied Cryptography (18-733)

Excluded Courses

The following security and privacy courses may not be counted towards concentration requirements. These courses all serve specific important different purposes, but do not fit into the concentration as currently designed. For example, 17-331 is more suitable for students who are interested in a broader single-course introduction to information security, but has too much overlap with the concentration’s required intro course to be able to count toward the concentration.

  • Information Security and Privacy (17-331, previously 15-421, or equivalent crosslisted courses)
  • Introduction to Computer Security (18-730)