Minor in Computer Science

    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).

    Required Subjects

    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.0001 Introduction to Computer Science Programming in Python (6)
    • 6.0002 Introduction to Computational Thinking and Data Science (6)
    • 16.0002 Introduction to Computational Science and Engineering (6)
    • 6.01 Introduction to EECS via Robotics (12)
    • 6.02 Introduction to EECS via Communication Networks (12)
    • 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.004 Computation Structures (12)
    • 6.006 Introduction to Algorithms (12); Algorithms-intensive
    • 6.008 Introduction to Inference (12)
    • 6.009 Fundamentals of Programming (12); Software-intensive
    • 6.034 Artificial Intelligence (12)
    • 6.041A Introduction to Probability I (6)
    • 6.041B Introduction to Probability II (6)
    • 6.041 Introduction to Probability (12)
    • 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.031 Elements of Software Construction (15); Software-intensive
    • 6.033 Computer Systems Engineering (12)
    • 6.035 Computer Language Engineering (12); Software-intensive
    • 6.036 Introduction to Machine Learning (12)
    • 6.045[J] Automata, Computability, and Complexity (12)
    • 6.046[J] Design and Analysis of Algorithms (12); Algorithms-intensive
    • 6.047 Computational Biology: Genomes, Networks, Evolution (12)
    • 6.141[J] Robotics: Science and Systems (12); Software-intensive
    • 6.170 Software Studio (12); Software-intensive
    • 6.172 Performance Engineering of Software Systems (18); Software-intensive
    • 6.175 Constructive Computer Architecture (12); Software-intensive
    • 6.419[J] Statistics, Computation and Applications (12)
    • 6.801 Machine Vision (12)
    • 6.802[J] Computational Systems Biology: Deep Learning in the Life Sciences (12)
    • 6.803 The Human Intelligence Enterprise (12)
    • 6.804[J] Computational Cognitive Science (12)
    • 6.806 Advanced Natural Language Processing (12)
    • 6.809[J] Interactive Music Systems (12); Software-intensive
    • 6.811[J] Principles and Practice of Assistive Technology (12)
    • 6.814 Database Systems (12)
    • 6.815 Digital and Computational Photography (12)
    • 6.816 Multicore Programming (12); Software-intensive
    • 6.819 Advances in Computer Vision (12)
    • 6.837 Computer Graphics (12)
    • 6.905 Large-scale Symbolic Systems (12)
    • 18.404 Theory of Computation (12)