Computational thinking is an essential skill in all engineering and scientific disciplines. The Minor in Computer Science will provide you with both depth and breadth in the field, as well as the opportunity to explore areas of their own interest. You’ll complete six subjects (totaling at least 72 units) including at least one software-intensive subject, at least one algorithms-intensive subject, and at least one advanced subject. Upon completion of the minor you’ll have the knowledge and skills needed to make effective use of computer science concepts and computing technology in your future career.
Applying for the Minor
The Minor in Computer Science is open to all undergraduates except those in courses 6-1, 6-2, 6-3, 6-7, 6-9, 6-14, 11-6, and 18C. You normally apply online by the end of your sophomore year but no later than Add Date one full term before the term in which you expect to receive the SB degree. If you missed the deadline to apply for the Minor, email the EECS Undergraduate Office for assistance.
The application form is completed online; there’s no need to fill out a paper application, nor to make an in-person appointment to apply.
Completing the Minor
Advising for the Minor is available through our online Question and Answer Forum, where you’ll get a fast response to both your public and private questions regarding academics or administration. You can also use that forum to set up an in-person appointment with the EECS Undergraduate Office if needed.
Once you’ve completed the minor, we’ll automatically notify the Registrar assuming you haven’t withdrawn your application from our online system — no completion forms required!
A Minor in Computer Science requires six subjects in Course 6. A minimum of four subjects taken for the Minor cannot also count toward a major or another minor. No substitutions of other courses are allowed. Note that subjects taken under the Junior-Senior P/D/F grading option cannot be used for the Minor unless they were completed before Fall 2016 (per special permission from CoC).
To complete the minor, students must take at least six subjects (six-unit subjects count as half-subjects) totaling at least 72 units from the lists below, including at least one software-intensive subject, at least one algorithms-intensive subject, and at least one advanced-level subject. Software-intensive and algorithms-intensive subjects are marked below.
Introductory Level: Select up to 12 units of the following introductory-level subjects; the unit count of each subject is given in parentheses.
- 6.100A[6.0001] Introduction to Computer Science Programming in Python (6)
- 6.100B[6.0002] Introduction to Computational Thinking and Data Science (6)
- 6.100L Introduction to Computer Science and Programming (6)
- 16.0002 Introduction to Computational Science and Engineering (6)
- 6.1900[6.0004] Introduction to Low-level Programming in C and Assembly (6)
- 6.9080[6.01] Introduction to EECS via Robotics (12)
- 6.3400[6.02] Introduction to EECS via Communication Networks (12)
- 6.9010[6.08] Introduction to EECS via Interconnected Embedded Systems (12)
Basic Level: Select up to 63 units of the following basic-level subjects; the unit count for each subject is given in parentheses.
- 6.1900[6.004] Computation Structures (12)
- 6.1201[6.006] Introduction to Algorithms (12); Algorithms-intensive
- 6.3800[6.008] Introduction to Inference (12)
- 6.1010[6.009] Fundamentals of Programming (12); Software-intensive
- 6.4100[6.034] Artificial Intelligence (12)
- 6.041A Introduction to Probability I (6)
- 6.041B Introduction to Probability II (6)
- 6.3700[6.041] Introduction to Probability (12)
- 6.1200[J][6.042[J]] Mathematics for Computer Science (12)
- 18.200 Principles of Discrete Applied Mathematics (15)
- 18.200A Principles of Discrete Applied Mathematics (12)
- 18.211 Combinatorial Analysis (12)
Advanced Level: Select at least 12 units of the following advanced-level subjects; the unit count for each subject is given in parentheses:
- 6.1020[6.031] Elements of Software Construction (15); Software-intensive
- 6.1800[6.033] Computer Systems Engineering (12)
- 6.1100[6.035] Computer Language Engineering (12); Software-intensive
- 6.3900[6.036] Introduction to Machine Learning (12)
- 6.1400[J][6.045[J]] Automata, Computability, and Complexity (12)
- 6.1220[J][6.046[J]] Design and Analysis of Algorithms (12); Algorithms-intensive
- 6.8701[6.047] Computational Biology: Genomes, Networks, Evolution (12)
- 6.4200[J][6.141[J]] Robotics: Science and Systems (12); Software-intensive
- 6.1040[6.170] Software Studio (12); Software-intensive
- 6.1060[6.172] Performance Engineering of Software Systems (18); Software-intensive
- 6.1920[6.175] Constructive Computer Architecture (12); Software-intensive
- 6.3730[J][6.419[J]] Statistics, Computation and Applications (12)
- 6.8391[6.801] Machine Vision (12)
- 6.8711[J]6.802[J] Computational Systems Biology: Deep Learning in the Life Sciences (12)
- 6.4140[6.803] The Human Intelligence Enterprise (12)
- 6.4120[J][6.804[J]] Computational Cognitive Science (12)
- 6.8611[6.806] Advanced Natural Language Processing (12)
- 6.4450[J][6.809[J], 6.185[J]] Interactive Music Systems (12); Software-intensive
- 6.4530[J][6.811[J]] Principles and Practice of Assistive Technology (12)
- 6.5831[6.814] Database Systems (12)
- 6.8731[6.815] Digital and Computational Photography (12)
- 6.5081[6.816] Multicore Programming (12); Software-intensive
- 6.8301[6.819] Advances in Computer Vision (12)
- 6.4400[6.837] Computer Graphics (12)
- 6.5151[6.905] Large-scale Symbolic Systems (12)
- 18.404 Theory of Computation (12)