2. The Bachelor of Science Degree
- Undergraduate Programs
- Overall Requirements for the Degree
- University Requirements
- Laboratory Courses
- Upper-Division Core Courses
- Grading, Course Unit, and Advanced Placement Policies
- The EECS Minor
EECS Educational Objectives:
- Preparing graduates to pursue post-graduate education in electrical engineering, computer science, or related fields
- Preparing graduates for success in technical careers related to electrical and computer engineering, or computer science and engineering, and
- 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:
- An ability to identify, formulate, and solve engineering problems by applying principles of engineering, science, and mathematics.
- An ability to apply both analysis and synthesis in the engineering design process, resulting in designs that meet desired needs.
- An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
- An ability to communicate effectively with a range of audiences.
- 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.
- An ability to recognize the ongoing need for additional knowledge and locate, evaluate, integrate, and apply this knowledge appropriately.
- 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:
- An ability to apply knowledge of computing and mathematics appropriate to the program's student outcomes and to the discipline
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
- An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- An ability to function effectively on teams to accomplish a common goal
- An understanding of professional, ethical, legal, security and social issues and responsibilities
- An ability to communicate effectively with a range of audiences
- An ability to analyze the local and global impact of computing on individuals, organizations, and society
- Recognition of the need for and an ability to engage in continuing professional development
- 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
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.
Natural science, mathematics, and statistics comprising
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
- Natural science: 3 course requirement. Physics 7A and B (or H7A and B), and one course (with lab) chosen from among:
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
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.
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
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.
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.
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.
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.
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.
English as a Second Language (ESL).
You may apply no more than 3 units of ESL coursework toward the degree.
You may apply no more than 4 units of physical education toward the degree.
- 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
- Natural science, mathematics, and statistics comprising
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
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.
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
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
AREA CORE COURSE 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
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
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.
- 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