2. The Bachelor of Science Degree

  1. Undergraduate Program
  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 Program

    The Department offers two programs: Electrical and Computer Engineering (ECE) and Computer Science and Engineering (CSE). Each of these programs is ABET accredited through September 2015. We have designed a set of courses of study for these programs, called options, described further in later chapters. Students working towards the B.S. degree select an option within their program.

    The ECE options include Option I (Electronics), Option II (Communication, Networks, and Systems), Option III (Computer Systems), and Option V (General). There are also lists of sample courses of study that can be used as guidelines for planning balanced programs in the various areas contained in this handbook. The transcripts of students in these options indicate that their degree is from the Electrical and Computer Engineering program.

    The CSE program includes Option IV (Computer Science). The Computer Science option is for students with interests in all aspects of computer science, including design and analysis of algorithms, complexity theory, artificial intelligence, computer graphics, and database systems. The transcripts of students in Option IV indicate that their degree is from the Computer Science and Engineering Program.

    All EECS diplomas will state that the student received a Bachelor of Science Degree from the University of California, Berkeley College of Engineering. Diplomas do not indicate the EECS major or program.

    The ECE and CSE programs have the following broad objectives:

    • Preparing graduates to pursue post-graduate education in engineering or other professional fields.
    • Preparing graduates for success in technical careers related to electrical and computer engineering

    To achieve these objectives, both programs attempt to provide students with the following:

    1. An ability to configure, apply test conditions, and evaluate outcomes of experimental systems.
    2. An ability to design systems, components, or processes that conform to given specifications and cost constraints.
    3. An ability to work cooperatively, respectfully, creatively, and responsibly as a member of a team.
    4. An ability to identify, formulate, and solve engineering problems.
    5. An understanding of the norms of expected behavior in engineering practice and their underlying ethical foundations.
    6. An ability to communicate effectively by oral, written, and graphical means.
    7. An awareness of global & societal concerns and their importance in developing engineering solutions.
    8. An ability to independently acquire and apply required information, and an appreciation of the associated process of life-long learning.
    9. A knowledge of contemporary issues.
    10. An in-depth ability to use a combination of software, instrumentation, and experimental techniques practiced in circuits, physical electronics, communication, networks and systems, hardware, programming, and computer science theory.
    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 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 20N
      • EE 40
      • 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 EECS General Catalog 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
    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. 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

    • EECS 20N
    • EE 40, Physics 7B and EE 42 (both courses need to be taken to fulfill the requirement), or EE 100
    • CS 61A or E 7
    • CS 61B/BL or CS 61C/CL
    • Any three upper-division courses in EECS, total of 9 units minimum


    • 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 minor program have priority over the non-CS and non-EECS majors for entrance to courses. For upper-division computer science courses, however, their priority is just below that of CS minors. This priority is not recognized in the Tele-BEARS system. It becomes relevant when appealing denial of admission to the desired course.

    Section Index Ugrad Handbook Index