2. The Bachelor of Science Degree

  1. Undergraduate Programs
  2. Overall Requirements for the Degree
  3. University Requirements
  4. Laboratory Courses
  5. Upper-Division Core Courses
  6. Grading, Course Unit, and Advanced Placement Policies
  7. The EECS Minor

  1. Undergraduate Programs

    EECS Educational Objectives:

    1. Preparing graduates to pursue post-graduate education in electrical engineering, computer science, or related fields
    2. Preparing graduates for success in technical careers related to electrical and computer engineering, or computer science and engineering, and
    3. Preparing graduates to become leaders in fields related to electrical and computer engineering or computer science and engineering

    The Berkeley EECS major, offered through the College of Engineering (COE), combines fundamentals of computer science and electrical engineering in one major. The EECS Department offers two undergraduate programs: Electrical and Computer Engineering (ECE), and Computer Science and Engineering (CSE). Both of these programs are accredited through September 30, 2017. Students working for the B.S. degree select an Option within their program. Options can be changed at any time up until graduation.

    • Electrical and Computer Engineering (ECE)
      The ECE Program (Electrical Engineering) is best suited for students interested in focusing on Electrical Engineering upper division classes after completing the lower division requirements. The transcripts of ECE students indicate that their degree is from the Electrical and Computer Engineering program. There are no specific requirements for the ECE program beyond those of the EECS major.

      To achieve the educational objectives, the ECE program aims to provide students with the following:

      1. An ability to identify, formulate, and solve engineering problems by applying principles of engineering, science, and mathematics.
      2. An ability to apply both analysis and synthesis in the engineering design process, resulting in designs that meet desired needs.
      3. An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
      4. An ability to communicate effectively with a range of audiences.
      5. An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
      6. An ability to recognize the ongoing need for additional knowledge and locate, evaluate, integrate, and apply this knowledge appropriately.
      7. An ability to function effectively on teams that establish goals, plan tasks, meet deadlines, and analyze risk and uncertainty.
    • Computer Science and Engineering (CSE)
      The CSE Program (Computer Science) is best suited for students interested in focusing on Computer Science upper division classes after completing the lower division requirements. The transcripts of students in CSE indicate that their degree is from the Computer Science and Engineering Program. In order to complete the CSE program, 16 units of the major's upper division units must come from CS courses.

      To achieve the educational objectives, the CSE program aims to provide students with the following:

      1. An ability to apply knowledge of computing and mathematics appropriate to the program's student outcomes and to the discipline
      2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
      3. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
      4. An ability to function effectively on teams to accomplish a common goal
      5. An understanding of professional, ethical, legal, security and social issues and responsibilities
      6. An ability to communicate effectively with a range of audiences
      7. An ability to analyze the local and global impact of computing on individuals, organizations, and society
      8. Recognition of the need for and an ability to engage in continuing professional development
      9. An ability to use current techniques, skills, and tools necessary for computing practice

      Note that there are two different major programs in CS at Berkeley. One major leads to the Bachelor of Arts and the other, the CSE option within the EECS major, leads to the Bachelor of Science.

    Section Index Ugrad Handbook Index

  2. Overall Requirements for the Degree

    Generally, you must take a course of study that meets topic requirements in this section. If you have any questions after reading these descriptions, please contact your Engineering Student Services Adviser in 230 Bechtel Hall. The requirements can be found in the COE Undergraduate Guide.

    We require a minimum of 120 semester units.

    1. Natural science, mathematics, and statistics comprising
      • Natural science: 3 course requirement. Physics 7A and B (or H7A and B), and one course (with lab) chosen from among:
        • Physics 7C or H7C (recommended)
        • Chemistry 1A and 1AL (recommended), (Chem 1AL must be completed to receive any credit), Chemistry 1B, Chemistry 3A and 3AL, Chemistry 3B and 3BL, Chemistry 4A, 4B or 5.
        • Biology 1A/1AL (recommended) or Biology 1B
        • Astronomy 7A or B
        • Molecular and Cell Biology 32/32L; or any upper-division course of 3 or more semester units in Astronomy, Biology, Chemistry, Earth and Planetary Science (except EPS 170AC), Integrative Biology, Molecular and Cell Biology, Physics or Plant and Microbial Biology
      • Mathematics and statistics
        • Math 1A-B, 53 and 54
        • CS 70
    2. A total of 45 units of technical engineering courses comprised of at least 20 units of upper-division EECS courses. A student may count most letter-graded courses (lower or upper division) in the COE towards the 45 unit requirement. We encourage students to take courses outside the department. Whatever choices you make regarding your courses, check with an adviser in advance to make sure that the course will fulfill your requirements.

      Note: The 45 units of engineering courses cannot include: any course taken on a P/NP basis; courses numbered 24, 39, 84; BioE 100; CS C79, CS 195, CSH195; Engin 125, 130AC, 140; IEOR 172, IEOR 190 series; IEOR 191; ME 191AC, 190K; 191K. In the past, we've found the following courses to be of interest:

      • CEE 130
      • E 36, 45, 115, 177, and 120
      • MSE 102 and 111
      • ME 102A, 104, 134, and 135
      • NE 101 and 107

      This list is suggested and not exclusive.

    3. EECS lower-division core courses (which also count as technical engineering courses):
      • EE 20 and EE 40 (last term offered will be Fall 2015) OR
      • EE 16A and EE 16B
      • CS 61A, B/BL and C/CL

    4. Ethics Requirements:

      Students must complete one course about engineering ethics or the social implications of technology. This may be fulfilled by completing one of the following courses: CS 195, CS H195, BioE 100, ENGIN 125, ENGIN 157AC, ERG 100 or ERG C100, ISF 60, or ISF 100D. BioE100, ENGIN 125, ENGIN 157AC, ERG 100 or C100, ISF 60 and ISF 100D fulfill both a Humanities/Social Science requirement and the EECS ethics/social implications of technology requirement.

    5. Transfer Requirements:

      Students who transfer into EECS from other departments can substitute E7 for CS 61A, if they have taken E7 before entering the major. E7 will not serve to fill the prerequisite of upper division courses that call for 61A. Junior transfers who have received partial credit for CS 61A, CS61B and CS 61C taken at a community college may petition to complete the courses through supplementary work in CS47A, 47B, or 47C. For further information please check with your Engineering Student Services Adviser in 230 Bechtel.

      Transfer students must complete lower-division requirements within the first two semesters after admission.

      A student with junior-level status must take any remaining lower and upper-division technical courses required for the EECS major at UC Berkeley.

      You must still take a total of 45 units of engineering courses, including at least 20 units of upper division EECS courses. CS or EE 194 courses must be approved as a technical course. The 45 units of engineering courses cannot include: any course taken on a P/NP basis; courses numbered 24, 39, 84; BioE 100; CS C79, CS 195, CSH195; Engin 125, 130AC, 140; IEOR 172, IEOR 190 series; IEOR 191; ME 191AC, 190K; 191K.

    6. An upper-division engineering course providing a major design experience based on the knowledge and skills acquired in earlier coursework and incorporating engineering standards and realistic constraints (counts as engineering units for requirement 2). The current EECS design courses are:

      • EE C125, C128, 130, 140, 141, 143, C149, 192
      • CS C149, 150, 160, 162, 164, 169, 184, 186

        A course in other engineering departments having substantial engineering design content can be substituted by petition.
    7. Humanities and social sciences. The University and the College of Engineering have established degree requirements to promote a better understanding of the humanities and social studies. Students must satisfy the terms of the Entry level writing, Humanities and Social Studies requirements that are in effect at the time of their admission. The list of courses for this requirement is revised regularly. Students will be expected to satisfy this requirement by taking courses that are on the list when the course is taken. For more information on Humanities and other requirements please see the COE Undergraduate Guide.

      NOTE: Effective Fall 2013, CSH195 no longer fulfills a Humanities/Social Science requirement.

    8. Computing Service Courses. You may earn a maximum total of at most 5 units of credit toward graduation for courses labeled as "computing service" courses, which include CS 3S, CS 10, the CS 9 courses, and Engineering 110. You will receive no more than 1 unit of credit for each computing service course taken after the first or after any of the CS 61 courses. Any units beyond these limits will not count toward graduation, although they will count for the sole purpose of determining whether your study list falls within the minimum and maximum unit loads.

    9. English as a Second Language (ESL). You may apply no more than 3 units of ESL coursework toward the degree.

    10. Physical Education. You may apply no more than 4 units of physical education toward the degree.

    11. Independent Study: EE or CS 199. You may apply no more than 10 units of course 199 (Independent Study and Research) toward the degree.

    Section Index Ugrad Handbook Index

  3. University Requirements

    You are expected to make what is called "normal progress" toward your degree each year. Normal progress requires 30 units of completed required course work for EECS each year. Coursework outside the major requirements do not apply to normal progress. In any case, students must make minimal progress. Officially, minimal progress means that:

    • Unit Requirement: At the end of each semester, you have completed at least 15(N-1) units, where N is the number of Fall and Spring semesters you have been enrolled. We recommend, however, that you not let your total accumulated units drop much below 15N.
    • Semester Unit Requirement: Your final program each semester must contain at least 12 and at most 20.5 units. It must include at least two letter graded technical courses required for your major. All technical courses and courses required for the engineering major must be taken for a letter grade. Programs of less than 12 or more than 20.5 units require prior approval of the Associate Dean. For reasons of health or disability (as certified by a University physician or the Disabled Students Program), family obligations (e.g., single parent without alternative childcare arrangements), or employment of 15 hours or more per week with documented financial need, students may petition to enroll in less than the normal program. For the complete process, students should contact their Engineering Student Services (ESS) Adviser in 230 Bechtel. Reduced study lists still must contain two letter graded technical courses. Minimum units of study based on hours of employment per week are as follows:

      Hours of Employment 0 10 15 20 30 40
      Minimum Units 12 12 11 9 6 3

      You must submit any requests for a reduced study list and documentation substantiating it to your Engineering Student Services (ESS) Adviser in 230 Bechtel no later than the eighth week of classes each semester. You should not plan to carry a substantially reduced load for multiple semesters. With the exception of cases covered in the table above, the EECS degree is a full-time program.
    • Normative Time: Entering freshman are allowed eight semesters to graduate and transfers are allowed four semesters to graduate. If a student has been making normal progress each year and needs an extra semester to graduate, they must petition in advance for permission to do so. Students meet with their Engineering Student Services Adviser in 230 Bechtel to initiate an appeal for an extra semester. Note that two extra semesters are almost never approved. Enforcement of the minimum 12 unit and 2 technical courses per term requirement will continue until the last semester of completing the degree, during which the student may take less than the minimum units. (Students receiving Federal Financial Aid should consult with the financial aid office to determine if enrolling in fewer than 12 units will impact their aid package.) If a student completes his/her major requirements earlier than their final semester then they may petition to take few than 2 technical courses in a term but must continue to meet the minimum 12 unit per term requirement until their final semester.
    • Residence Requirement: You must complete your final 30 units, constituting two consecutive semesters, in residence in the College of Engineering on the Berkeley campus. For full College Policy refer to the current official College Undergraduate Handbook.
    • Humanities and Other Requirements: The set of requirements applicable to you depends on when you entered. A list of the current approved humanities courses may be obtained online or in person from the Engineering Student Services (ESS) Office in 230 Bechtel

    Section Index Ugrad Handbook Index

  4. Laboratory Courses

    Laboratory experience is an important part of your education at Berkeley. The table below gives the current list of upper-division courses that have associated physical, hardware, or software laboratories. We recommend that you take at least three of these courses. Since this table is subject to change, you should consult the most recent version of these Notes to make sure you are using up-to-date information.

    Refer to Berkeley Academic Guide for complete list.

    Upper-Division Courses

    EE105: Microelectronic Devices & Circuits CS150: Components & Design Techniques for Digital Systems
    EE 117 Electromagnetic Fields and Waves CS152: Computer Architecture & Engineering
    EE 123: Digital Signal Processing CS 160: User Interfaces
    EE 127A Optimization Models in Engineering CS 162: Operating Systems & System Programming
    EE 128: Feedback Control CS 164: Programming Languages & Compilers
    EE 140: Linear Integrated Circuits CS 169: Software Engineering
    EE 141: Digital Integrated CS 184: Foundations of Computer Graphics
    EE 142: Integrated Circuits for Communication CS 186: Introduction to Database Systems
    EE/CS C149: Intro to Embedded Systems
    EE 143: Microfabrication Technology
    EE 145L: Introductory Electronic Transducers
    EE C145O Lab in Mechanics of Organisms
    EE 192: Mechatronic Design Laboratory
    EE 125: Introduction to Robotics
    EE 145M: Introductory Microcomputer Interfacing
    Section Index Ugrad Handbook Index

  5. Upper-Division Core Courses

    As the engineering profession has expanded, courses of study selected by undergraduates have tended to become unduly specialized. After graduation, engineers are usually required to participate in projects that are not limited to their area of specialization. This fact necessitates a basic understanding of the fundamentals in many subfields of EECS. Moreover, changes in technology and the economy frequently require engineers to shift their area of specialization to avoid losing their jobs, so it is important to acquire the fundamentals of more than one area of EECS. The table below lists upper-division courses in the EECS curriculum which are intended to provide a basic familiarity with the various subject areas in the department. They are designed both for the specialist and for the non-specialist and contain a balance of theory and practice.

    Upper-Division Core Courses

    Microelectronic Devices & Circuits EE 105
    Electromagnetic Fields & Waves EE 117
    Signals & Systems EE 120
    Feedback Control EE 128
    Integrated-Circuit Devices EE 130
    Linear Integrated Circuits EE 140
    Integrated Circuits for Communications EE 142
    Components & Design Techniques For Digital Systems CS 150
    Random Processes in Communications Systems EE 126
    Computer Architecture & Engineering CS 152
    Operating Systems & System Programming CS 162
    Programming Languages & Compilers CS 164
    Software Engineering CS 169
    Efficient Algorithms & Intractable Problems CS 170
    Graphics CS 184
    Databases CS 186
    Artificial Intelligence CS 188
    Section Index Ugrad Handbook Index

  6. Grading, Course Unit, and Advanced Placement Policies

    Grading Scale: Your courses are either graded using the usual letter-grade scale (A-F, modified by a + or -), or Passed/Not Passed (P/NP). In a letter-graded course, a D- or better is considered a passing grade. In a P/NP course, a P grade corresponds to a C- or better. For any given semester, you may also receive a grade of I (Incomplete) or IP (In Progress), which is not counted toward satisfying your requirements. It is not used in computing your grade-point average until you complete the work. Technical courses are those in engineering, mathematics, chemistry, physics, statistics, biological sciences and computer science

    Graduate Courses: Graduate courses can be valuable for students who intend to pursue advanced degrees or who find a subject so intriguing that they want to find out about current research in the area. You must have completed at least 60 units of undergraduate course work and have an upper-division GPA of at least 3.0 in order to enroll in graduate coursework. Enrolling in graduate courses requires the instructor's permission. We will treat most EECS graduate courses as upper-division courses for the purposes of determining whether you have fulfilled your degree requirements. However, you must inform your Engineering Student Services (ESS) Adviser in 230 Bechtel if you intend to enroll in a graduate course.

    Incompletes: Your instructor may assign a grade of Incomplete if your work in a course has been of passing quality, but is incomplete for reasons beyond your control. You must make arrangements with your instructor to receive this grade before the end of the course. After you complete the work, submit a Petition to Remove an Incomplete Grade to the Registrar, who will "remove" the incomplete (a record of it actually remains on your transcript) and replace it with the grade assigned by the instructor.

    • You must remove an Incomplete grade received in the Fall semester by the first day of instruction in the following Fall semester.
    • You must remove an Incomplete grade received in the Spring or Summer by the first day of instruction of the following Spring semester.
    • If you are a bachelor's degree candidate, you must remove Incomplete grades in required courses by the last day of the last semester in which you are registered to avoid being dropped from the degree list.

    You should make arrangements with the instructor to complete the required coursework at least 30 days prior to these deadlines; faculty are not obliged to accept work submitted after that time. Petition forms are available from the Registrar and from the Engineering Student Services (ESS) Office (230 Bechtel); you will need to pay a processing fee to submit the completed form. If you fail to remove an Incomplete grade by the deadline, it reverts to an F (or an NP if you took the course P/NP).

    You may petition to relax these rules, but acceptance of such petitions is not automatic. In particular, you may petition to "freeze" up to two Incomplete grades so that they remain on the record, but never become F or NP; file such a petition in the Engineering Student Services (ESS) Office by the deadlines described above. A course in which you hold a frozen Incomplete grade may never be completed or repeated. Do not accumulate 12 or more semester units of unrevised Incomplete grades (frozen or otherwise), or you will require the Dean's permission to register.

    Repeating Courses: You may only repeat courses in which you receive a grade NP or less than C-. You may not repeat courses for a P/NP grade if you first took them for a letter grade. For the first 12 units' worth of repeated courses, the grade you receive the second time replaces the original grade in the course (although a record of the original remains on your transcript). Beyond 12 units of repeated courses, all grades assigned and units attempted count toward your grade-point average. A course repeated more than once will count as F in computing your grade-point average. If you do pass the course on one of these tries, however, it will still count toward satisfying your course requirements (subject credit only).

    Unit Credit: The maximum number of units that a student may transfer to the University from a community college is 70 semester units.

    Transferring Credit: The Office of Undergraduate Admissions determines the units of advanced-standing credit to be allowed for work successfully completed at another institution. The Engineering Student Services (ESS) Office will evaluate the work in terms of subject credit. Where there is a question regarding the equivalence of prior coursework, the student will be directed to the departmental faculty representative of the course in question for the determination of course satisfaction. Students attending California community colleges should refer to the Assist website to determine transferability and equivalency of courses.

    Subject Credit: A student who claims credit for coursework completed at a junior college or at a four-year university must see their Engineering Student Services (ESS) Adviser in 230 Bechtel who will assist the student in completing a course evaluation form for submission to the instructor in charge of the equivalent course at Berkeley.

    Advanced-Placement Credit: AP tests that satisfy some of the requirements can be found in the COE Undergraduate Guide. If you take a course for which you have already received AP credit, the College of Engineering or the Office of Undergraduate Admission may deduct the duplicated units. Refer to the COE Undergraduate Handbook for complete details on exams 1B and A -Level exams.

    Section Index Ugrad Handbook Index

  7. The EECS Minor

    The EECS minor, offered through the College of Engineering, is open to any undergraduate who has declared a major on the Berkeley campus with the exception of EECS majors. It is intended for students who have an interest in electrical engineering and computer science. Students interested only in computer science courses should consider the Computer Science minor. Applications are accepted throughout the year and are available from the Center for Student Affairs, 205 Cory Hall, or the EECS Minor website.

    Course Requirements

    • EE 16A or EE 20
    • EE 16B, or EE 40, or Physics 7B + EE 42, or EE 100
    • CS 61A or E 7
    • CS 61B or CS 61C
    • Any three upper division courses in EECS, for a minimum 9 units.

    NOTE: The last offering of EE20 and EE40 is Fall 2015. Students who have these courses completed can continue to use them to satisfy the EE minor requirement. Students who have completed EE20 and EE40 do not need to complete EE16A and EE16B. Students must complete an entire series, either EE20 and EE40 OR EE16A and EE16B. Students are not allowed to mix and match the series requirement.


    • You must take each of these courses for a letter grade; none may be taken Passed/Not Passed. You may substitute EE 42 or EE 100 for the EE 40 requirement, but if you use EE 42 to fulfill the EE 40 requirement you must also take Physics 7B as well.
    • You may substitute E 7 for CS 61A, but E 7 will not serve to fill the prerequisite requirements of upper-division courses that call for CS 61A.
    • You may not use EE 100 as one of the upper-division courses.
    • You may have no more than one overlapping upper-division course between your declared major and the EECS minor. College of Letters and Science Computer Science majors may not count upper-division computer science courses toward the minor.

    Admission to the minor requires a 3.0 GPA in the required lower-division courses listed above. To be given credit for the minor, you must maintain at least a 2.0 GPA in the upper-division courses taken to fulfill the requirements.

    Students in the EECS minor are not given registration priority.

    Section Index Ugrad Handbook Index