Code | Title | Units |
---|---|---|
Calculus | 4 | |
Calculus | 4 | |
Linear Algebra and Differential Equations | 4 | |
or | Designing Information Devices and Systems I | |
or | Linear Algebra | |
Great Ideas of Computer Architecture (Machine Structures) | 4 |
Code | Title | Units |
---|---|---|
Select one design course from the following: | ||
Computer Architecture and Engineering | 4 | |
User Interface Design and Development | 4 | |
Computer Security (effective Spring 2019) | 4 | |
Operating Systems and System Programming | 4 | |
Programming Languages and Compilers | 4 | |
Introduction to the Internet: Architecture and Protocols | 4 | |
COMPSCI 169 | Course Not Available | |
Introduction to Software Engineering | 4 | |
Software Engineering Team Project | 4 | |
Intro to Computer Vision and Computational Photography | 4 | |
Designing, Visualizing and Understanding Deep Neural Networks | 4 | |
Foundations of Computer Graphics | 4 | |
Introduction to Database Systems | 4 | |
Introduction to Embedded and Cyber Physical Systems | 4 | |
Introduction to Digital Design and Integrated Circuits | 3 | |
Introduction to Robotics | 4 | |
Robotic Manipulation and Interaction | 4 | |
Feedback Control Systems | 4 | |
Integrated-Circuit Devices | 4 | |
Linear Integrated Circuits | 4 | |
Microfabrication Technology | 4 | |
Mechatronic Design Laboratory | 4 | |
Select 8 units upper-division CS courses and 8 units upper-division CS/EE/EECS courses from the following, or from the above list. | ||
( , STAT/DATA/COMPSCI C100, and Data 101 are the only non CS/EE/EECS titled classes that may be used to fulfill this requirement) | ||
Principles & Techniques of Data Science | 4 | |
or | Principles & Techniques of Data Science | |
Computer Security | 4 | |
Efficient Algorithms and Intractable Problems | 4 | |
Computability and Complexity | 4 | |
Algorithms for Computational Biology | 4 | |
Introduction to Artificial Intelligence | 4 | |
Introduction to Machine Learning | 4 | |
Introduction to Quantum Computing | 4 | |
Special Topics (15-Parallel Computing, 16-Introduction to Data Science [discontinued], 26-Computational Photography, 28-Computational Design and Fabrication, 30-Practical Networking, 31-Technology and Social Networks, 32-Computing for Social Good, 34-Cryptography [spring 2019], 35-Data Engineering, 73-Software Engineering for Scientific Computing, 80-Full Stack Deep Learning, 100-EECS for All: Social Justice in EECS, 126-PCP Design, 129-Designing, Visualizing and Understanding Deep Neural Networks [also fulfills design requirement], 131-Designing Technology to Counter Violent Extremism [Des Inv 190 does not count], 133-Collaborative Intelligent Agents and The DARPA Spectrum Challenge, 138-Cyberwar, 172-Computational Genomics, 177-Intro to Decentralized Finance, 196-Technology of Decentralization and Decentralized Intelligence, 198-Networks: Models, Processes & Algorithms, 224-Entrepreneurship in Web3, and 238-Special Topics in Zero Knowledge Proof.) | 4 | |
DATA 101 | Course Not Available | 4 |
Microelectronic Devices and Circuits | 4 | |
Power Electronics | 4 | |
Electromagnetic Fields and Waves | 4 | |
Introduction to Optical Engineering | 4 | |
Signals and Systems | 4 | |
Introduction to Digital Communication Systems | 4 | |
Introduction to Communication Networks | 4 | |
Digital Signal Processing | 4 | |
Probability and Random Processes | 4 | |
Optimization Models in Engineering | 4 | |
Feedback Control Systems | 4 | |
Integrated-Circuit Devices | 4 | |
Fundamentals of Photovoltaic Devices | 4 | |
Introduction to Electric Power Systems | 4 | |
Introduction to Electric Power Systems | 4 | |
Linear Integrated Circuits | 4 | |
Integrated Circuits for Communications | 4 | |
Fundamental Algorithms for Systems Modeling, Analysis, and Optimization | 4 | |
Medical Imaging Signals and Systems | 4 | |
Introductory Electronic Transducers Laboratory | 3 | |
Introductory Microcomputer Interfacing Laboratory | 3 | |
Laboratory in the Mechanics of Organisms | 3 | |
Introduction to Microelectromechanical Systems (MEMS) | 3 | |
Natural Language Processing | 4 | |
Technical electives: Effective Summer 2022, in addition to the 20 units of required CS coursework above, 4 units of technical electives must be taken from the list of approved non-computer science technical electives (see list below) for a total of 24 units for the major. See eecs.berkeley.edu/resources/undergrads/cs/degree-reqs/tech-electives for the most current list of approved technical electives. Students may not use CS upper division classes to fulfill the technical elective units. Contact with questions. | 24 |
Code | Title | Units |
---|---|---|
Evolution of the Human Brain | 4 | |
Principles of Computer Aided Architectural Design | 4 | |
Special Topics in Digital Design Theories and Methods | 4 | |
Principles of Computer Aided Architectural Design | 4 | |
Special Topics in Digital Design Theories and Methods | 4 | |
Advanced Digital Media: Game Design Methods | 4 | |
Planetary Astrophysics | 4 | |
All technical upper division undergraduate and graduate courses in BIO ENG, except , , , , and 196 | ||
All technical upper division undergraduate and graduate courses in CHEM | ||
All technical upper division undergraduate and graduate courses in CHEM ENG, except CHEM ENG 180 and 185 | ||
All technical upper division undergraduate and graduate courses in CIV ENG, except , , CIV ENG 252L, and CIV ENG 290R | ||
Cognitive Linguistics | 4 | |
Computational Models of Cognition | 4 | |
or | Computational Models of Cognition | |
Principles & Techniques of Data Science | 4 | |
DATA 101 | Course Not Available | 4 |
Data, Inference, and Decisions | 4 | |
Human Contexts and Ethics of Data - DATA/History/STS | 4 | |
Probability for Data Science | 4 | |
Data Mining and Analytics | 3 | |
Microeconomics | 4 | |
Macroeconomics | 4 | |
Microeconomics (Math Intensive) | 4 | |
Macroeconomics (Math Intensive) | 4 | |
Financial Economics | 4 | |
Econometrics | 4 | |
Econometrics (Math Intensive) | 4 | |
Economic Demography | 4 | |
All technical upper division undergraduate and approved graduate courses in EL ENG | ||
All technical upper division undergraduate and graduate courses in ENGIN, except ENGIN 102, , | ||
Mathematical Methods in Geophysics | 4 | |
Planetary Astrophysics | 4 | |
Global Climate Variability and Change | 4 | |
Cartographic Representation | 5 | |
Geographic Information Analysis | 4 | |
Geographic Information Science | 4 | |
IND ENG 185 | Course Not Available (Blockchain) | |
IND ENG 185 | Course Not Available (Internet and Data Privacy) | |
All technical upper division undergraduate and graduate courses in IND ENG, except , select 185, 186, 190 series, and 191 series | ||
Natural Language Processing | 4 | |
Introduction to User Experience Design | 4 | |
Theory and Practice of Tangible User Interfaces | 4 | |
All technical upper division undergraduate and graduate courses in integrative biology | ||
Cognitive Linguistics | 4 | |
Introduction to Linguistic Science | 4 | |
Syntax | 4 | |
All technical upper division undergraduate and graduate courses in MATH, except | ||
All technical upper division undergraduate and graduate courses in MECH ENG, except 191K | ||
All technical upper division undergraduate and graduate courses in MCELLBI | ||
Music Perception and Cognition | 4 | |
Sound and Music Computing with CNMAT Technologies | 4 | |
Computer Programming for Music Applications | 4 | |
Advanced Topics in Computer Music | 4 | |
All technical upper division undergraduate and graduate courses in PHYSICS | ||
Special Topics in New Media (1/290-Critical Practices) | 4 | |
Critical Making | 4 | |
Special Topics in New Media (Making Sense of Cultural Data) | 4 | |
Intermediate Logic | 4 | |
Intermediate Logic | 4 | |
Modal Logic | 4 | |
Game Theory in the Social Sciences | 4 | |
Game Theory in the Social Sciences | 4 | |
Computational Models of Cognition | 4 | |
Introduction to Probability and Statistics in Biology and Public Health | 4 | |
Introduction to Epidemiology and Human Disease | 4 | |
Public Health Microbiology | 4 | |
Infectious Disease Modeling | 2-4 | |
All technical upper division undergraduate and graduate courses in STAT | ||
Sound Design for Performance | 4 | |
Introduction to Finance | 4 | |
Intermediate Financial Accounting 1 | 4 | |
Intermediate Financial Accounting 2 | 4 |
This program is geared toward students who would like to pursue an education beyond the BS/BA, allowing them to achieve greater breadth and/or depth of knowledge, and who would like to try their hand at research as well. It is not intended for students who have definitely decided to pursue a PhD immediately following graduation. Those students are advised to apply for a PhD program at Berkeley or elsewhere during their senior year. Students who have been accepted into the Five-Year BA/MS or BS/MS are free to change their minds later and apply to enter the PhD program or apply to a PhD program at another university. Note that admission is competitive with all our PhD applicants.
The program is focused on interdisciplinary training at a graduate level; with at least 8 units of course work outside EECS required. Students will emerge as leaders in their technical and professional fields.
For further information regarding this program, please see visit the EECS Joint Bachelor's/Master's program page .
Students who have a strong interest in an area of study outside their major often decide to complete a minor program. These programs have set requirements and are noted officially on the diploma and the awards section of the transcript.
All minors must be declared before the first day of classes in your Expected Graduation Term (EGT). For summer graduates, minors must be declared prior to the first day of Summer Session A.
All upper-division courses must be taken for a letter grade.
A minimum of three of the upper-division courses taken to fulfill the minor requirements must be completed at UC Berkeley.
A minimum grade point average (GPA) of 2.0 is required in the upper-division courses to fulfill the minor requirements.
Courses used to fulfill the minor requirements may be applied toward the Seven-Course Breadth requirement, for Letters & Science students.
No more than one upper division course may be used to simultaneously fulfill requirements for a student's major and minor programs.
All minor requirements must be completed prior to the last day of finals during the semester in which the student plans to graduate. If students cannot finish all courses required for the minor by that time, they should see a College of Letters & Science adviser.
All minor requirements must be completed within the unit ceiling. (For further information regarding the unit ceiling, please see the College Requirements tab.)
Code | Title | Units |
---|---|---|
Lower Division Prerequisites | ||
The Structure and Interpretation of Computer Programs | 4 | |
Data Structures | 4 | |
or | Data Structures and Programming Methodology | |
Great Ideas of Computer Architecture (Machine Structures) | 4 | |
Discrete Mathematics and Probability Theory | 4 | |
Upper Division | ||
Select three upper-division, technical courses in Computer Science or EECS |
Essential skills, computational reasoning.
The Computational Reasoning requirement is designed to provide a basic understanding of and competency in concepts such as programming, algorithms, iteration, and data-structures.
The Human and Social Dynamics of Data and Technology requirement is designed for the purpose of developing an understanding of how technology and data interact with human and societal contexts, including ethical considerations and applications such as education, health, law, natural resources, and public policy.
The Statistical Reasoning requirement is designed to provide basic understanding of and competency in the scientific approach to statistical problem solving, including uncertainty, prediction, and estimation.
The Reading and Composition requirement is the same as for the College of Letters and Science; it requires two semesters of lower division work in composition in sequence. Students must complete parts A & B reading and composition courses in sequential order by the end of their fourth semester.
To see how to satisfy the R&C requirement, visit the College of Letters and Science Reading and Composition Requirement page .
The undergraduate breadth requirements are the same for CDSS students as for the College of Letters and Science, with the exception that a second semester foreign language course can be used to satisfy the International Studies breadth. To learn more about the L&S Seven-Course Breadth Requirement, visit the L&S Breadth Requirements page. To learn more about using a foreign language course to satisfy the International Studies breadth, visit the CDSS website page on Satisfying International Studies Breadth with a Foreign Language Course .
The undergraduate major programs in computer science, data science, and statistics have transitioned from the College of Letters & Science to CDSS. Students who were admitted in Spring 2024 or earlier have the option of completing either the L&S College Requirements , i.e., the breadth and essential skills requirements, or the CDSS college requirements (above).
All students must meet CDSS general policy (below). The one exception is with time-to-degree. Students admitted Fall 2022 or earlier are subject to the 130 unit maximum, rather than the 8 semester maximum (5 for transfer students).
Minimum units per semester: 12
Maximum units per semester: 20.5
Minimum cumulative GPA: 2.0
Minimum GPA for one semester: 1.5
Minimum total units: 120. Of these 120 units:
PE maximum units: 4
Special Studies maximum units: 16
Maximum 300-499 course units: 6
Minimum upper division units: 36
Maximum number of semesters: 8 for first-year entrants; 5 for transfer students; summer terms do not count toward the maximum
Minimum GPA in upper division and graduate courses identified for the major: 2.0
Meet all major requirements
M eet all general, curricular, and residence requirements of the University of California and the Berkeley campus
For more information about CDSS requirements, visit student resources and information on the College of Computing, Data Science, and Society website.
University of california requirements, entry level writing.
All students who will enter the University of California as freshmen must demonstrate their command of the English language by satisfying the Entry Level Writing Requirement (ELWR). The UC Entry Level Writing Requirement website provides information on how to satisfy the requirement.
The American History and Institutions (AH&I) requirements are based on the principle that a US resident graduated from an American university should have an understanding of the history and governmental institutions of the United States.
American cultures.
The American Cultures requirement is a Berkeley campus requirement, one that all undergraduate students at Berkeley need to pass in order to graduate. You satisfy the requirement by passing, with a grade not lower than C- or P, an American Cultures course. You may take an American Cultures course any time during your undergraduate career at Berkeley. The requirement was instituted in 1991 to introduce students to the diverse cultures of the United States through a comparative framework. Courses are offered in more than fifty departments in many different disciplines at both the lower and upper division level.
For more detailed information regarding the courses listed below (e.g., elective information, GPA requirements, etc.,), please see the Major Requirements tab.
Freshman | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Fall | Units | Spring | Units | |||||||||||||||||
4 | 4 | |||||||||||||||||||
4 | 4 | |||||||||||||||||||
Reading & Composition A | 4 | Reading & Composition B | 4 | |||||||||||||||||
CDSS Breadth | 3 | CDSS Breadth | 3 | |||||||||||||||||
15 | 15 | |||||||||||||||||||
Sophomore | ||||||||||||||||||||
Fall | Units | Spring | Units | Summer | Units | |||||||||||||||
4 | 4 | Internship | , , or | 4 | CDSS Breadth | 4 | Lower/Upper Division Elective | 4 | American Cultures Reqt | 4 | Study Abroad | Lower Division Elective | 3 | |||||||
15 | 12 | 0 | ||||||||||||||||||
Junior | ||||||||||||||||||||
Fall | Units | Spring | Units | Summer | Units | |||||||||||||||
4 | Upper Division CS major course (2 of 5) | 4 | Internship | UD CS major course (1 of 5) | 4 | Upper Division CS major course (3 of 5) | 4 | CDSS Breadth | 4 | Lower/Upper Division Elective | 3 | Study Abroad | Lower/Upper Division Elective | 3 | CDSS Breadth | 4 | ||||
15 | 15 | 0 | ||||||||||||||||||
Senior | ||||||||||||||||||||
Fall | Units | Spring | Units | |||||||||||||||||
Upper Division CS major course (4 of 5) | 4 | Upper Division CS major course (5 of 5) | 4 | |||||||||||||||||
Upper Division Elective major non-CS technical elective | 4 | Lower/Upper Division Elective | 4 | |||||||||||||||||
UD CDSS Elective | 4 | Lower/Upper Division Elective | 3 | |||||||||||||||||
UD CDSS Elective | 3 | |||||||||||||||||||
15 | 11 | |||||||||||||||||||
Total Units: 113 |
Course Definitions
Upper Division major CS major course: course meeting the 20 units of upper division CS requirement (at least one of these must be a Design Course).
Upper Division major technical elective: course meeting the 4 units of non-CS technical electives requirement.
This is a sample program plan. This plan assumes that the student has completed the Entry Level Writing, American History and Institutions, Quantitative Reasoning, and Foreign Language requirements prior to admission.
Students are strongly advised to work with an academic adviser to determine a personal program plan. Your program plan will differ depending on previous credit received, your course schedule, and available offerings.
COMPSCI 152 , COMPSCI 162 , COMPSCI 164 , COMPSCI 169 , COMPSCI 170 , COMPSCI 184 , and EECS 151 are known to have heavy workloads. It is not recommended to take these courses in combination.
Students are strongly advised to work with an academic adviser to determine a personal program plan. Your program plan will differ depending on previous credit received, your course schedule, and available offerings. Current students may make an appointment with a Computer Science Advisor in CalCentral; prospective students may make an appointment at https://berkeleycs.youcanbook.me/.
For students considering graduating in less than four years, it's important to acknowledge the reasons to undertake such a plan of study. While there are advantages to pursuing a three-year degree plan such as reducing financial burdens, they are not for everyone and do involve sacrifices; especially with respect to participating in co-curricular activities, depth of study, and summer internships, which typically lead to jobs upon graduation. All things considered, please see the tables for three and three and a half year degree options.
3.5 and 3 Year Plans
Major maps are experience maps that help undergraduates plan their Berkeley journey based on intended major or field of interest. Featuring student opportunities and resources from your college and department as well as across campus, each map includes curated suggestions for planning your studies, engaging outside the classroom, and pursuing your career goals in a timeline format.
Use the major map below to explore potential paths and design your own unique undergraduate experience:
View the Computer Science Major Map.
Electrical Engineering and Computer Sciences
Eecs 16a designing information devices and systems i 4 units.
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 This course and its follow-on course EECS16B focus on the fundamentals of designing modern information devices and systems that interface with the real world. Together, this course sequence provides a comprehensive foundation for core EECS topics in signal processing, learning, control, and circuit design while introducing key linear-algebraic concepts motivated by application contexts. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. The courses are aimed at entering students as well as non-majors seeking a broad foundation for the field. Designing Information Devices and Systems I: Read More [+]
Rules & Requirements
Prerequisites: MATH 1A and MATH 1B (1B may be taken concurrently); COMPSCI 61A (encouraged to be taken concurrently)
Hours & Format
Fall and/or spring: 15 weeks - 3 hours of lecture, 2 hours of discussion, and 3 hours of laboratory per week
Summer: 8 weeks - 6 hours of lecture, 4 hours of discussion, and 6 hours of laboratory per week
Additional Format: Three hours of lecture and three hours of laboratory and two hours of discussion per week. Six hours of lecture and six hours of laboratory and four hours of discussion per week for 8 weeks.
Additional Details
Subject/Course Level: Electrical Engin and Computer Sci/Undergraduate
Grading/Final exam status: Letter grade. Final exam required.
Instructors: Alon, Arcak, Ayazifar, Maharbiz, Niknejad, Ranade, Sahai, Subramanian, Tomlin
Formerly known as: Electrical Engineering 16A
Designing Information Devices and Systems I: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 This course is a follow-on to EECS 16A , and focuses on the fundamentals of designing and building modern information devices and systems that interface with the real world. The course sequence provides a comprehensive introduction to core EECS topics in machine learning, circuit design, control, and signal processing while developing key linear-algebraic concepts motivated by application contexts. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper exercises. The courses are aimed at entering students as well as non-majors seeking a broad introduction to the field. Designing Information Devices and Systems II: Read More [+]
Prerequisites: EECS 16A
Additional Format: Three hours of lecture and two hours of discussion and three hours of laboratory per week. Six hours of lecture and four hours of discussion and six hours of laboratory per week for 8 weeks.
Instructors: Alon, Ayazifar, Lustig, Maharbiz, Subramanian, Tomlin
Formerly known as: Electrical Engineering 16B
Designing Information Devices and Systems II: Read Less [-]
Terms offered: Fall 2021 This course allows students who have had a linear algebra and/or basic circuit theory course to complete the work in EE16A and be ready for EE16B or EE47E. The course focuses on the fundamentals of designing modern information devices and systems that interface with the real world and provides a comprehensive foundation for core EECS topics in signal processing, learning, control, and circuit design. Modeling is emphasized in a way that deepens mathematical maturity , and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. Completion of work in Electrical Engineering 16A: Read More [+]
Prerequisites: MATH 1A , MATH 1B , COMPSCI 61A (encouraged to be taken concurrently), college level courses in linear algebra and/or circuit theory, and consent of the instructor
Fall and/or spring: 15 weeks - 2-8 hours of self-paced per week
Summer: 8 weeks - 4-13 hours of self-paced per week
Additional Format: Two to eight hours of self-paced per week. Four to thirteen hours of self-paced per week for 8 weeks.
Completion of work in Electrical Engineering 16A: Read Less [-]
Terms offered: Prior to 2007 This course allows students who have had a linear algebra and/or basic circuit theory course to complete the work in EE16B. The course focuses on the fundamentals of designing modern information devices and systems that interface with the real world and provides a comprehensive foundation for core EECS topics in signal processing (DFT), learning (SVD/PCA), feedback control, and circuit design. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. Completion of work in Electrical Engineering 16B: Read More [+]
Prerequisites: MATH 1A , MATH 1B , and COMPSCI 61A ; and EECS 16A , EECS 47D , or MATH 54 ; college level courses in linear algebra and/or circuit theory, and consent of the instructor
Fall and/or spring: 15 weeks - 3-8 hours of self-paced per week
Summer: 8 weeks - 6-16 hours of self-paced per week
Additional Format: Three to eight hours of self-paced per week. Six to sixteen hours of self-paced per week for 8 weeks.
Completion of work in Electrical Engineering 16B: Read Less [-]
Terms offered: Prior to 2007 This course allows students who have had a discrete math and/or probability course to complete the work in CS70. Logic, infinity, and induction; applications include undecidability and stable marriage problem. Modular arithmetic and GCDs; applications include primality testing and cryptography. Polynomials; examples include error correcting codes and interpolation. Probability including sample spaces, independence, random variables, law of large numbers; examples include load balancing, existence arguments, Bayesian inference. Completion of work in Computer Science 70: Read More [+]
Prerequisites: Sophomore mathematical maturity, programming experience equivalent to that gained in COMPSCI 61A , a prior college level course on discrete math and/or probability, and consent of the instructor
Instructors: Ranade, Rao, Sahai, Seshia, Vazirani, Walrand
Completion of work in Computer Science 70: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Fall 2022, Fall 2021, Fall 2020, Fall 2019 This course is an introduction to the field of robotics. It covers the fundamentals of kinematics, dynamics, control of robot manipulators, robotic vision, sensing, forward & inverse kinematics of serial chain manipulators, the manipulator Jacobian, force relations, dynamics, & control. We will present techniques for geometric motion planning & obstacle avoidance. Open problems in trajectory generation with dynamic constraints will also be discussed. The course also presents the use of the same analytical techniques as manipulation for the analysis of images & computer vision. Low level vision, structure from motion, & an introduction to vision & learning will be covered. The course concludes with current applications of robotics. Introduction to Robotics: Read More [+]
Prerequisites: Familiarity with linear algebra at the level of EECS 16A / EECS 16B or Math 54. Experience coding in python at the level of COMPSCI 61A . Preferred: experience developing software at the level of COMPSCI 61B and experience using Linux
Credit Restrictions: Students will receive no credit for Electrical Engineering and Computer Science C106A/Bioengineering C106A after completing EE C106A/BioE C125, Electrical Engineering 206A, or Electrical Engineering and Computer Science 206A.
Fall and/or spring: 15 weeks - 3 hours of lecture, 1 hour of discussion, and 3 hours of laboratory per week
Summer: 8 weeks - 6 hours of lecture, 2 hours of discussion, and 6 hours of laboratory per week
Additional Format: Three hours of lecture and one hour of discussion and three hours of laboratory per week. Six hours of lecture and two hours of discussion and six hours of laboratory per week for 8 weeks.
Grading/Final exam status: Letter grade. Alternative to final exam.
Instructor: Sastry
Also listed as: BIO ENG C106A/MEC ENG C106A
Introduction to Robotics: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022, Spring 2021, Spring 2020, Spring 2019 The course is a sequel to EECS/BIOE/MEC106A/EECSC206A, which covers the mathematical fundamentals of robotics including kinematics, dynamics and control as well as an introduction to path planning, obstacle avoidance, and computer vision. This course will present several areas of robotics and active vision, at a deeper level and informed by current research. Concepts will include the review at an advanced level of robot control, the kinematics, dynamics and control of multi-fingered hands, grasping and manipulation of objects, mobile robots: including non-holonomic motion planning and control, path planning, Simultaneous Localization And Mapping (SLAM), and active vision. Additional research topics covered at the instructor's discretion. Robotic Manipulation and Interaction: Read More [+]
Prerequisites: EECS C106A / BIO ENG C106A / MEC ENG C106A / EECS C206A or an equivalent course. A strong programming background, knowledge of Python and Matlab, and some coursework in feedback controls (such as EL ENG C128 / MEC ENG C134 ) are also useful. Students who have not taken the prerequisite course should have a strong programming background, knowledge of Python and Matlab, and exposure to linear algebra, Lagrangian dynamics, and feedback controls at the intermediate level. EECS C106A
Credit Restrictions: Students will receive no credit for Electrical Engineering and Computer Science C106B/Bioengineering C106B after completing Electrical Engineering C106B/Bioengineering C125B, Electrical Engineering 206B, or Electrical Engineering and Computer Science 206B.
Additional Format: Three hours of lecture and one hour of discussion and three hours of laboratory per week.
Also listed as: BIO ENG C106B/MEC ENG C106B
Robotic Manipulation and Interaction: Read Less [-]
Terms offered: Not yet offered This course develops a fundamental understanding of computer vision (CV) and computer graphics (CG) that underpin the emerging AR/VR and Metaverse applications. The syllabus includes 3D perception, near-eye optics, depth cameras, 3D localization, and immersive 3D user experience. The companion lab helps students to acquire basic AR/VR coding skills in Unity and develop Metaverse applications. The course builds a strong foundation for students to take more advanced course: CS 294-137. Introduction to AR/VR and Applications in Metaverse: Read More [+]
Prerequisites: Familiarity with Linear Algebra at the level of EECS 16A /B or MATH 54 . Experience on coding proficiency and data structures at the level of CS61 A/B
Repeat rules: Course may be repeated for credit with instructor consent.
Fall and/or spring: 15 weeks - 3 hours of lecture and 2 hours of laboratory per week
Additional Format: Three hours of lecture and two hours of laboratory per week.
Grading/Final exam status: Letter grade. Alternate method of final assessment during regularly scheduled final exam group (e.g., presentation, final project, etc.).
Instructor: Yang
Introduction to AR/VR and Applications in Metaverse: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 This course covers the fundamentals of probability and random processes useful in fields such as networks, communication, signal processing, and control. Sample space, events, probability law. Conditional probability. Independence. Random variables. Distribution, density functions. Random vectors. Law of large numbers. Central limit theorem. Estimation and detection. Markov chains. Probability and Random Processes: Read More [+]
Prerequisites: COMPSCI 70 preferred but not required; Familiarity with linear algebra
Credit Restrictions: Students will receive no credit for EECS 126 after completing EE 126.
Fall and/or spring: 15 weeks - 3 hours of lecture and 1 hour of discussion per week
Additional Format: Three hours of lecture and one hour of discussion per week.
Instructor: Ramchandran
Probability and Random Processes: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 This course offers an introduction to optimization models and their applications, ranging from machine learning and statistics to decision-making and control, with emphasis on numerically tractable problems, such as linear or constrained least-squares optimization. Optimization Models in Engineering: Read More [+]
Prerequisites: EECS 16A and EECS 16B , or consent of instructor
Credit Restrictions: Students will receive no credit for EECS 127 after taking EECS 227AT or Electrical Engineering 127/227AT.
Additional Format: Three hours of Lecture and One hour of Discussion per week for 15 weeks.
Instructor: El Ghaoui
Formerly known as: Electrical Engineering 127
Optimization Models in Engineering: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Fall 2022 This course introduces students to the basics of modeling, analysis, and design of embedded, cyber-physical systems. Students learn how to integrate computation with physical processes to meet a desired specification. Topics include models of computation, control, analysis and verification, interfacing with the physical world, real-time behaviors, mapping to platforms, and distributed embedded systems. The course has a strong laboratory component , with emphasis on a semester-long sequence of projects. Introduction to Embedded and Cyber Physical Systems: Read More [+]
Objectives & Outcomes
Course Objectives: To develop the skills to realize embedded systems that are safe, reliable, and efficient in their use of resources. To learn how to model and design the joint dynamics of software, networks, and physical processes. To learn to think critically about technologies that are available for achieving such joint dynamics.
Prerequisites: COMPSCI 61C and COMPSCI 70 ; EECS 16A and EECS 16B , or permission of instructor
Fall and/or spring: 15 weeks - 3 hours of lecture and 3 hours of laboratory per week
Additional Format: Three hours of lecture and three hours of laboratory per week.
Instructors: Seshia, Lee, Dutta
Introduction to Embedded and Cyber Physical Systems: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 An introduction to digital and system design. The material provides a top-down view of the principles, components, and methodologies for large scale digital system design. The underlying CMOS devices and manufacturing technologies are introduced, but quickly abstracted to higher-levels to focus the class on design of larger digital modules for both FPGAs (field programmable gate arrays) and ASICs (application specific integrated circuits). The class includes extensive use of industrial grade design automation and verification tools for assignments, labs and projects. The class has two lab options: ASIC Lab ( EECS 151LA ) and FPGA Lab ( EECS 151LB ). Students must enroll in at least one of the labs concurrently with the class. Introduction to Digital Design and Integrated Circuits: Read More [+]
Course Objectives: The Verilog hardware description language is introduced and used. Basic digital system design concepts, Boolean operations/combinational logic, sequential elements and finite-state-machines, are described. Design of larger building blocks such as arithmetic units, interconnection networks, input/output units, as well as memory design (SRAM, Caches, FIFOs) and integration are also covered. Parallelism, pipelining and other micro-architectural optimizations are introduced. A number of physical design issues visible at the architecture level are covered as well, such as interconnects, power, and reliability.
Prerequisites: EECS 16A and EECS 16B
Credit Restrictions: Students must enroll concurrently in at least one the lab flavors EECS151LA or EECS151LB. Students wishing to take a second lab flavor next term can sign-up only for that Lab section and receive a Letter grade. The pre-requisite for “Lab-only” enrollment that term will be EECS151 from previous terms.
Instructors: Stojanovic, Wawrzynek
Introduction to Digital Design and Integrated Circuits: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 This lab lays the foundation of modern digital design by first presenting the scripting and hardware description language base for specification of digital systems and interactions with tool flows. The labs are centered on a large design with the focus on rapid design space exploration. The lab exercises culminate with a project design, e.g., implementation of a three-stage RISC-V processor with a register file and caches. The design is mapped to simulation and layout specification. Application Specific Integrated Circuits Laboratory: Read More [+]
Course Objectives: Software testing of digital designs is covered leading to a set of exercises that cover the design flow. Digital synthesis, floor-planning, placement and routing are covered, as well as tools to evaluate timing and power consumption. Chip-level assembly is covered, including instantiation of custom blocks: I/O pads, memories, PLLs, etc.
Prerequisites: COMPSCI 61C , EECS 16A , EECS 16B , and EL ENG 105
Fall and/or spring: 15 weeks - 3 hours of laboratory per week
Additional Format: Three hours of laboratory per week.
Grading/Final exam status: Letter grade. Final exam not required.
Application Specific Integrated Circuits Laboratory: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 This lab covers the design of modern digital systems with Field-Programmable Gate Array (FPGA) platforms. A series of lab exercises provide the background and practice of digital design using a modern FPGA design tool flow. Digital synthesis, partitioning, placement, routing, and simulation tools for FPGAs are covered in detail. The labs exercises culminate with a large design project, e.g., an implementation of a full three-stage RISC-V processor system, with caches, graphics acceleration, and external peripheral components. The design is mapped and demonstrated on an FPGA hardware platform. Field-Programmable Gate Array Laboratory: Read More [+]
Prerequisites: EECS 16A , EECS 16B , and COMPSCI 61C ; EL ENG 105 recommended
Field-Programmable Gate Array Laboratory: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024, Fall 2023, Spring 2023, Fall 2022, Spring 2022, Fall 2021, Summer 2021 8 Week Session, Fall 2020 Foundations of data science from three perspectives: inferential thinking, computational thinking, and real-world relevance. Given data arising from some real-world phenomenon, how does one analyze that data so as to understand that phenomenon? The course teaches critical concepts and skills in computer programming and statistical inference, in conjunction with hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. It delves into social and legal issues surrounding data analysis, including issues of privacy and data ownership. Foundations of Data Science: Read More [+]
Prerequisites: This course may be taken on its own, but students are encouraged to take it concurrently with a data science connector course (numbered 88 in a range of departments)
Credit Restrictions: Students will receive no credit for DATA C8 \ COMPSCI C8 \ INFO C8 \ STAT C8 after completing COMPSCI 8, or DATA 8. A deficient grade in DATA C8 \ COMPSCI C8 \ INFO C8 \ STAT C8 may be removed by taking COMPSCI 8, COMPSCI 8, or DATA 8.
Summer: 8 weeks - 6 hours of lecture and 4 hours of laboratory per week
Additional Format: Three hours of lecture and two hours of laboratory per week. Six hours of lecture and four hours of laboratory per week for 8 weeks.
Subject/Course Level: Computer Science/Undergraduate
Formerly known as: Computer Science C8/Statistics C8/Information C8
Also listed as: DATA C8/INFO C8/STAT C8
Foundations of Data Science: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 An introductory course for students with minimal prior exposure to computer science. Prepares students for future computer science courses and empowers them to utilize programming to solve problems in their field of study. Presents an overview of the history, great principles, and transformative applications of computer science, as well as a comprehensive introduction to programming. Topics include abstraction, recursion, algorithmic complexity, higher-order functions, concurrency, social implications of computing (privacy, education, algorithmic bias), and engaging research areas (data science, AI, HCI). Students will program in Snap! (a friendly graphical language) and Python, and will design and implement two projects of their choice. The Beauty and Joy of Computing: Read More [+]
Credit Restrictions: Students will receive no credit for 10 after having taken W10, 61A, 61B, or 61C.
Fall and/or spring: 15 weeks - 2 hours of lecture, 1 hour of discussion, and 4 hours of laboratory per week
Summer: 8 weeks - 4 hours of lecture, 2 hours of discussion, and 8 hours of laboratory per week
Additional Format: Two hours of lecture and one hour of discussion and four hours of laboratory per week. Four hours of lecture and two hours of discussion and eight hours of laboratory per week for 8 weeks.
Instructors: Garcia, Hug
The Beauty and Joy of Computing: Read Less [-]
Terms offered: Fall 2012 This course meets the programming prerequisite for 61A. An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing. Beautiful applications that have changed the world. How computing empowers discovery and progress in other fields. Relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests. The Beauty and Joy of Computing: Read More [+]
Credit Restrictions: Students will receive no credit for W10 after taking 10, 61A, 61B or 61C. A deficient grade in 10 may be removed by taking W10.
Fall and/or spring: 15 weeks - 2 hours of web-based lecture and 5 hours of web-based discussion per week
Summer: 8 weeks - 4 hours of web-based lecture and 10 hours of web-based discussion per week
Additional Format: Two hours of web-based lecture, four hours of web-based laboratory, and one hour of web-based discussion per week. Four hours of web-based lecture, eight hours of web-based laboratory, and two hours of web-based discussion per week for eight weeks.
Online: This is an online course.
Terms offered: Fall 2019, Fall 2018, Spring 2018 Computer Science 36 is a seminar for CS Scholars who are concurrently taking CS61A: The Structure and Interpretation of Computer Programs. CS Scholars is a cohort-model program to provide support in exploring and potentially declaring a CS major for students with little to no computational background prior to coming to the university. CS 36 provides an introduction to the CS curriculum at UC Berkeley, and the overall CS landscape in both industry and academia—through the lens of accessibility and its relevance to diversity. Additionally, CS36 provides technical instruction to review concepts in CS61A, in order to support CS Scholars’ individual learning and success in the CS61A course. CS Scholars Seminar: The Educational Climate in CS & CS61A technical discussions: Read More [+]
Student Learning Outcomes: Students will know where to find several support services including tutoring, advising, counseling, and career advice. Students will perform as well as possible in the CS61A prerequisite for the CS major. They will also have customized program plans for completing the major within four years.
Prerequisites: Prerequisite satisfied Concurrently: Participating in the CS Scholars program, and concurrently taking COMPSCI 61A
Fall and/or spring: 15 weeks - 2 hours of seminar per week
Additional Format: Two hours of seminar per week.
Grading/Final exam status: Offered for pass/not pass grade only. Alternative to final exam.
Instructor: Hunn
CS Scholars Seminar: The Educational Climate in CS & CS61A technical discussions: Read Less [-]
Terms offered: Fall 2023, Spring 2022, Spring 2019 Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25. Freshman/Sophomore Seminar: Read More [+]
Prerequisites: Priority given to freshmen and sophomores
Repeat rules: Course may be repeated for credit when topic changes.
Fall and/or spring: 15 weeks - 2-3 hours of seminar per week
Additional Format: Two to three hours of seminar per week.
Grading/Final exam status: Offered for pass/not pass grade only. Final Exam To be decided by the instructor when the class is offered.
Freshman/Sophomore Seminar: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Implementation of generic operations. Streams and iterators. Implementation techniques for supporting functional, object-oriented, and constraint-based programming in the Scheme programming language. Together with 9D, 47A constitutes an abbreviated, self-paced version of 61A for students who have already taken a course equivalent to 61B. Completion of Work in Computer Science 61A: Read More [+]
Prerequisites: COMPSCI 61B , COMPSCI 9D, and consent of instructor
Credit Restrictions: Students will receive no credit for 47A after taking 61A.
Fall and/or spring: 15 weeks - 0 hours of self-paced per week
Additional Format: Zero hour of self-paced per week.
Instructor: Garcia
Completion of Work in Computer Science 61A: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Iterators. Hashing, applied to strings and multi-dimensional structures. Heaps. Storage management. Design and implementation of a program containing hundreds of lines of code. Students who have completed a portion of the subject matter of COMPSCI 61B may, with consent of instructor, complete COMPSCI 61B in this self-paced course. Please note that students in the College of Engineering are required to receive additional permission from the College as well as the EECS department for the course to count in place of COMPSCI 61B . Completion of Work in Computer Science 61B: Read More [+]
Prerequisites: A course in data structures, COMPSCI 9G, and consent of instructor
Credit Restrictions: Students will receive no credit for 47B after taking 61B.
Completion of Work in Computer Science 61B: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 MIPS instruction set simulation. The assembly and linking process. Caches and virtual memory. Pipelined computer organization. Students with sufficient partial credit in 61C may, with consent of instructor, complete the credit in this self-paced course. Completion of Work in Computer Science 61C: Read More [+]
Prerequisites: Experience with assembly language including writing an interrupt handler, COMPSCI 9C, and consent of instructor
Credit Restrictions: Students will receive no credit for COMPSCI 47C after completing COMPSCI 61C , or COMPSCI 61CL.
Completion of Work in Computer Science 61C: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. Techniques include procedural abstraction; control abstraction using recursion, higher-order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. The course exposes students to programming paradigms, including functional, object-oriented, and declarative approaches. It includes an introduction to asymptotic analysis of algorithms. There are several significant programming projects. The Structure and Interpretation of Computer Programs: Read More [+]
Prerequisites: MATH 1A (may be taken concurrently) or Math 10A or Math 16A. Programming experience equivalent to that gained from a score of 3 or above on the Advanced Placement Computer Science exam
Credit Restrictions: Students will receive no credit for COMPSCI 61A after completing COMPSCI 47A , COMPSCI 61AS, or COMPSCI W61A . A deficient grade in COMPSCI 61A may be removed by taking COMPSCI 61AS, or COMPSCI W61A .
Fall and/or spring: 15 weeks - 3 hours of lecture, 1.5 hours of discussion, and 1.5 hours of laboratory per week
Summer: 8 weeks - 6 hours of lecture, 3 hours of discussion, and 3 hours of laboratory per week
Additional Format: Three hours of lecture and one and one-half hours of discussion and one and one-half hours of laboratory per week. Six hours of lecture and three hours of discussion and three hours of laboratory per week for 8 weeks.
Instructors: Garcia, Hilfinger
The Structure and Interpretation of Computer Programs: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language. Data Structures: Read More [+]
Prerequisites: COMPSCI 61A , COMPSCI 88, or ENGIN 7
Credit Restrictions: Students will receive no credit for COMPSCI 61B after completing COMPSCI 61BL , or COMPSCI 47B . A deficient grade in COMPSCI 61B may be removed by taking COMPSCI 61BL .
Fall and/or spring: 15 weeks - 3 hours of lecture, 1 hour of discussion, and 2 hours of laboratory per week
Summer: 8 weeks - 6 hours of lecture, 2 hours of discussion, and 4 hours of laboratory per week
Additional Format: Three hours of lecture and one hour of discussion and two hours of laboratory per week. Six hours of lecture and two hours of discussion and four hours of laboratory per week for 8 weeks.
Instructors: Hilfinger, Shewchuk
Data Structures: Read Less [-]
Terms offered: Summer 2024 8 Week Session, Summer 2023 8 Week Session, Summer 2022 8 Week Session The same material as in 61B, but in a laboratory-based format. Data Structures and Programming Methodology: Read More [+]
Credit Restrictions: Students will receive no credit for COMPSCI 61BL after completing COMPSCI 47B , or COMPSCI 61B . A deficient grade in COMPSCI 61BL may be removed by taking COMPSCI 61B .
Fall and/or spring: 15 weeks - 1 hour of lecture and 6 hours of laboratory per week
Summer: 8 weeks - 2 hours of lecture and 12 hours of laboratory per week
Additional Format: One hour of lecture and six hours of laboratory per week. Two hours of lecture and twelve hours of laboratory per week for 8 weeks.
Instructor: Hilfinger
Data Structures and Programming Methodology: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 The internal organization and operation of digital computers. Machine architecture, support for high-level languages (logic, arithmetic, instruction sequencing) and operating systems (I/O, interrupts, memory management, process switching). Elements of computer logic design. Tradeoffs involved in fundamental architectural design decisions. Great Ideas of Computer Architecture (Machine Structures): Read More [+]
Prerequisites: COMPSCI 61A , along with either COMPSCI 61B or COMPSCI 61BL , or programming experience equivalent to that gained in COMPSCI 9C, COMPSCI 9F, or COMPSCI 9G
Credit Restrictions: Students will receive no credit for COMPSCI 61C after completing COMPSCI 61CL.
Additional Format: Two hours of lecture, one hour of discussion, and an average of six hours of self-scheduled programming laboratory per week.
Instructors: Garcia, Katz, Stojanovic
Great Ideas of Computer Architecture (Machine Structures): Read Less [-]
Terms offered: Summer 2019 8 Week Session An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. Techniques include procedural abstraction; control abstraction using recursion, higher-order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. The course exposes students to programming paradigms, including functional , object-oriented, and declarative approaches. It includes an introduction to asymptotic analysis of algorithms. There are several significant programming projects. The Structure and Interpretation of Computer Programs (Online): Read More [+]
Prerequisites: MATH 1A (may be taken concurrently); programming experience equivalent to that gained from a score of 3 or above on the Advanced Placement Computer Science A exam
Credit Restrictions: Students will receive no credit for Computer Science W61A after completing Computer Science 47A or Computer Science 61A. A deficient grade in Computer Science W61A may be removed by taking Computer Science 61A.
Fall and/or spring: 15 weeks - 3 hours of web-based lecture, 1.5 hours of laboratory, and 1.5 hours of web-based discussion per week
Summer: 8 weeks - 6 hours of web-based lecture, 3 hours of laboratory, and 3 hours of web-based discussion per week
Additional Format: One and one-half hours of laboratory and one and one-half hours of web-based discussion and three hours of web-based lecture per week. Three hours of laboratory and three hours of web-based discussion and six hours of web-based lecture per week for 8 weeks.
Instructor: Denero
The Structure and Interpretation of Computer Programs (Online): Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 Logic, infinity, and induction; applications include undecidability and stable marriage problem. Modular arithmetic and GCDs; applications include primality testing and cryptography. Polynomials; examples include error correcting codes and interpolation. Probability including sample spaces, independence, random variables, law of large numbers; examples include load balancing, existence arguments, Bayesian inference. Discrete Mathematics and Probability Theory: Read More [+]
Prerequisites: Sophomore mathematical maturity, and programming experience equivalent to that gained with a score of 3 or above on the Advanced Placement Computer Science A exam
Credit Restrictions: Students will receive no credit for Computer Science 70 after taking Mathematics 55.
Fall and/or spring: 15 weeks - 3 hours of lecture and 2 hours of discussion per week
Summer: 8 weeks - 6 hours of lecture and 4 hours of discussion per week
Additional Format: Three hours of lecture and two hours of discussion per week. Six hours of lecture and four hours of discussion per week for 8 weeks.
Instructors: Rao, Vazirani, Wagner, Sahai
Discrete Mathematics and Probability Theory: Read Less [-]
Terms offered: Fall 2007 Sophomore seminars are small interactive courses offered by faculty members in departments all across the campus. Sophomore seminars offer opportunity for close, regular intellectual contact between faculty members and students in the crucial second year. The topics vary from department to department and semester to semester. Enrollment limited to 15 sophomores. Sophomore Seminar: Read More [+]
Prerequisites: At discretion of instructor
Fall and/or spring: 5 weeks - 3-6 hours of seminar per week 10 weeks - 1.5-3 hours of seminar per week 15 weeks - 1-2 hours of seminar per week
Summer: 6 weeks - 2.5-5 hours of seminar per week 8 weeks - 2-4 hours of seminar per week
Additional Format: unit(s):one hour of seminar per week; 2 unit(s):two hours of seminar per week. unit(s):one and one-half hours of seminar per week; 2 unit(s):three hours of seminar per week for 10 weeks. unit(s):two hours of seminar per week; 2 unit(s):four hours of seminar per week for 8 weeks. unit(s):two and one-half hours of seminar per week; 2 unit(s):five hours of seminar per week for 6 weeks. unit(s):three hours of seminar per week; 2 unit(s):six hours of seminar per week for five weeks.
Grading/Final exam status: The grading option will be decided by the instructor when the class is offered. Final exam required.
Sophomore Seminar: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024, Spring 2023, Fall 2022 Development of Computer Science topics appearing in Foundations of Data Science (C8); expands computational concepts and techniques of abstraction. Understanding the structures that underlie the programs, algorithms, and languages used in data science and elsewhere. Mastery of a particular programming language while studying general techniques for managing program complexity, e.g., functional, object-oriented , and declarative programming. Provides practical experience with composing larger systems through several significant programming projects. Computational Structures in Data Science: Read More [+]
Course Objectives: Develop a foundation of computer science concepts that arise in the context of data analytics, including algorithm, representation, interpretation, abstraction, sequencing, conditional, function, iteration, recursion, types, objects, and testing, and develop proficiency in the application of these concepts in the context of a modern programming language at a scale of whole programs on par with a traditional CS introduction course.
Student Learning Outcomes: Students will be able to demonstrate a working knowledge of these concepts and a proficiency of programming based upon them sufficient to construct substantial stand-alone programs.
Prerequisites: This course is a Data Science connector course and may only be taken concurrently with or after COMPSCI C8 / DATA C8 / INFO C8 / STAT C8 . Students may take more than one Data Science connector (88) course if they wish, concurrent with or after having taken the C8 course
Credit Restrictions: Students will receive no credit for DATA C88C after completing COMPSCI 61A .
Fall and/or spring: 15 weeks - 2-2 hours of lecture, 2-2 hours of laboratory, and 0-1 hours of supplement per week
Summer: 8 weeks - 4-4 hours of lecture, 4-4 hours of laboratory, and 0-2 hours of supplement per week
Additional Format: Two hours of lecture and two hours of laboratory and zero to one hours of supplement per week. Four hours of lecture and four hours of laboratory and zero to two hours of supplement per week for 8 weeks.
Instructors: Ball, Culler
Formerly known as: Computer Science 88
Also listed as: DATA C88C
Computational Structures in Data Science: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024, Summer 2023 8 Week Session, Fall 2022, Fall 2021, Fall 2020 In this course, students will explore the data science lifecycle, including question formulation, data collection and cleaning, exploratory data analysis and visualization, statistical inference and prediction, and decision-making. This class will focus on quantitative critical thinking and key principles and techniques needed to carry out this cycle. These include languages for transforming, querying and analyzing data; algorithms for machine learning methods including regression, classification and clustering; principles behind creating informative data visualizations; statistical concepts of measurement error and prediction; and techniques for scalable data processing. Principles & Techniques of Data Science: Read More [+]
Prerequisites: COMPSCI C8 / DATA C8 / INFO C8 / STAT C8 with a C- or better, or Pass; and COMPSCI 61A , COMPSCI/DATA C88C, or ENGIN 7 with a C- or better, or Pass; Corequisite: MATH 54 , 56 or EECS 16A (C- or better, or Pass, required if completed prior to Data C100)
Credit Restrictions: Students will receive no credit for DATA C100 \ STAT C100 \ COMPSCI C100 after completing DATA 100. A deficient grade in DATA C100 \ STAT C100 \ COMPSCI C100 may be removed by taking DATA 100.
Fall and/or spring: 15 weeks - 3-3 hours of lecture, 1-1 hours of discussion, and 0-1 hours of laboratory per week
Summer: 8 weeks - 6-6 hours of lecture, 2-2 hours of discussion, and 0-2 hours of laboratory per week
Additional Format: Three hours of lecture and one hour of discussion and zero to one hours of laboratory per week. Six hours of lecture and two hours of discussion and zero to two hours of laboratory per week for 8 weeks.
Instructors: Gonzalez, Nourozi, Perez, Yan
Formerly known as: Statistics C100/Computer Science C100
Also listed as: DATA C100/STAT C100
Principles & Techniques of Data Science: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 Instruction set architecture, microcoding, pipelining (simple and complex). Memory hierarchies and virtual memory. Processor parallelism: VLIW, vectors, multithreading. Multiprocessors. Computer Architecture and Engineering: Read More [+]
Prerequisites: COMPSCI 61C
Instructors: Asanovic, Culler, Kubiatowicz, Wawrzynek
Computer Architecture and Engineering: Read Less [-]
Terms offered: Summer 2024 8 Week Session, Spring 2024, Summer 2023 8 Week Session The design, implementation, and evaluation of user interfaces. User-centered design and task analysis. Conceptual models and interface metaphors. Usability inspection and evaluation methods. Analysis of user study data. Input methods (keyboard, pointing, touch, tangible) and input models. Visual design principles. Interface prototyping and implementation methodologies and tools. Students will develop a user interface for a specific task and target user group in teams. User Interface Design and Development: Read More [+]
Prerequisites: COMPSCI 61B or COMPSCI 61BL
Credit Restrictions: Students will receive no credit for Computer Science 160 after taking Computer Science 260A.
Summer: 8 weeks - 6 hours of lecture and 2 hours of discussion per week
Additional Format: Three hours of lecture and one hour of discussion per week. Six hours of lecture and two hours of discussion per week for 8 weeks.
Instructors: Agrawala, Canny, Hartmann, Paulos
User Interface Design and Development: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 Introduction to computer security. Cryptography, including encryption, authentication, hash functions, cryptographic protocols, and applications. Operating system security, access control. Network security, firewalls, viruses, and worms. Software security, defensive programming, and language-based security. Case studies from real-world systems. Computer Security: Read More [+]
Prerequisites: COMPSCI 61B , COMPSCI 61C , and COMPSCI 70
Fall and/or spring: 15 weeks - 3-3 hours of lecture and 1-1.5 hours of discussion per week
Summer: 8 weeks - 6-6 hours of lecture and 2-3 hours of discussion per week
Additional Format: Three hours of lecture and one to one and one-half hours of discussion per week. Six hours of lecture and two to three hours of discussion per week for 8 weeks.
Instructors: Paxson, Song, Wagner
Computer Security: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Basic concepts of operating systems and system programming. Utility programs, subsystems, multiple-program systems. Processes, interprocess communication, and synchronization. Memory allocation, segmentation, paging. Loading and linking, libraries. Resource allocation, scheduling, performance evaluation. File systems, storage devices, I/O systems. Protection, security, and privacy. Operating Systems and System Programming: Read More [+]
Instructors: Joseph, Kubiatowicz, Stoica
Operating Systems and System Programming: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Survey of programming languages. The design of modern programming languages. Principles and techniques of scanning, parsing, semantic analysis, and code generation. Implementation of compilers, interpreters, and assemblers. Overview of run-time organization and error handling. Programming Languages and Compilers: Read More [+]
Prerequisites: COMPSCI 61B and COMPSCI 61C
Instructors: Bodik, Hilfinger, Necula
Programming Languages and Compilers: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2022 This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and algorithms used within this architecture. Topics include layering, addressing, intradomain routing, interdomain routing, reliable delivery, congestion control, and the core protocols (e.g., TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet, wireless). Introduction to the Internet: Architecture and Protocols: Read More [+]
Prerequisites: COMPSCI 61B and COMPSCI 162
Instructors: Katz, Paxson, Ratnasamy, Shenker, Stoica
Introduction to the Internet: Architecture and Protocols: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Fall 2023 Ideas and techniques for designing, developing, and modifying large software systems. Service-oriented architecture, behavior-driven design with user stories, cloud computing, test-driven development, automated testing, cost and quality metrics for maintainability and effort estimation, practical performance and security in software operations, design patterns and refactoring, specification and documentation, agile project team organization and management. Introduction to Software Engineering: Read More [+]
Student Learning Outcomes: Students will learn how to approach and add functionality to a legacy code base; Students will learn how to identify, measure, and resolve maintainability problems in code; Students will learn how to work with nontechnical customers and convert customer requirements into a software plan that can be effort-estimated, built, and deployed to the public cloud, including the use of behavior-driven design, user stories, and velocity; Students will learn how to write automated tests and measure test coverage; Students will learn practical security and performance considerations for SaaS applications. Students will learn the architecture and machinery of software as a service; the agile/XP methodology for software development and how it compares with other methodologies, including "Plan-and-document" methodologies; Students will learn the role of software design patterns in refactoring, and how to identify opportunities to use them;
Prerequisites: COMPSCI C88C or DATA C88C or COMPSCI 61A or COMPSCI 47A ; and COMPSCI 61B or COMPSCI 61BL or COMPSCI 47B
Credit Restrictions: Students will receive no credit for COMPSCI 169A after completing COMPSCI 169, or COMPSCI W169A . A deficient grade in COMPSCI 169A may be removed by taking COMPSCI 169, or COMPSCI W169A .
Instructors: Fox, Ball
Introduction to Software Engineering: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 Open-ended design project enhancing or creating software for real customers in an agile team setting. Teamwork coordination, effective customer meetings, pre- and post-iteration team meetings, running scrums and standups, technical communication. Contributing as a team to an open-source project; tools and workflows associated with open source collaboration, including fork-and-pull, rebase, upstream merge, continuous deployment & inte gration. Software Engineering Team Project: Read More [+]
Course Objectives: Students will work in a team to develop new software or enhance existing software for a customer with a real business need.
Student Learning Outcomes: Students will learn how to conduct effective meetings with nontechnical customers and work with their feedback; Students will learn how to coordinate teamwork on developing, testing, and deploying features; and in most cases, how to approach a legacy codebase and add features to it. Students will learn to run a small team including rotation of team roles such as product owner, scrum master, and so on;
Prerequisites: COMPSCI 169A or COMPSCI W169A
Credit Restrictions: Students will receive no credit for COMPSCI 169L after completing COMPSCI 169.
Fall and/or spring: 15 weeks - 3 hours of discussion and 8 hours of fieldwork per week
Summer: 8 weeks - 6 hours of discussion and 16 hours of fieldwork per week
Additional Format: Three hours of discussion and eight hours of fieldwork per week. Six hours of discussion and sixteen hours of fieldwork per week for 8 weeks.
Instructors: Fox, Sen
Software Engineering Team Project: Read Less [-]
Terms offered: Summer 2021 8 Week Session, Fall 2020, Summer 2020 8 Week Session This course presents ideas and techniques for designing, developing, and modifying large software systems using Agile techniques and tools. Topics include: function-oriented and object-oriented modular design techniques, designing for re-use and maintainability including proper use of design patterns, behavior-driven design, test-driven development, user stories for requirements elicitation & documentation , verification and validation, cost and quality metrics and estimation, project team organization and management, analyzing and refactoring legacy code. Software Engineering: Read More [+]
Student Learning Outcomes: Students will learn how to apply BDD & TDD to identify the main parts of a legacy code base, measure code quality, and refactor code to improve its quality; Students will learn how to apply behavior-driven development (BDD) to elicit customer needs and express them as user stories that will drive development; Students will learn how to apply the key ideas of learning a new framework to construct and deploy simple Rails applications; Students will learn how to apply the key ideas of learning a new language in order to construct programs in Ruby; Students will learn how to construct unit- and module-level tests and measure their coverage; Students will learn how to exercise best practices in planning, effort estimation, and coordination of the efforts of small software teams, using appropriate tools to support those practices; Students will learn how to identify and repair potential app-level security and performance problems. Students will learn how to recognize when an appropriate Design Pattern may improve code quality, and refactor code to apply those Design Patterns; Students will learn how to summarize the key architectural elements of RESTful SaaS applications and microservices; Students will learn to articulate the primary differences between Agile and Plan-and-Document methodologies;
Prerequisites: COMPSCI 61A and COMPSCI 61B
Credit Restrictions: Students will receive no credit for COMPSCI W169A after completing COMPSCI 169, or COMPSCI 169A . A deficient grade in COMPSCI W169A may be removed by taking COMPSCI 169, or COMPSCI 169A .
Fall and/or spring: 15 weeks - 3 hours of web-based lecture and 1 hour of discussion per week
Summer: 8 weeks - 6 hours of web-based lecture and 0 hours of discussion per week
Additional Format: One hour of discussion and three hours of web-based lecture per week. Zero hour of discussion and six hours of web-based lecture per week for 8 weeks.
Software Engineering: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Concept and basic techniques in the design and analysis of algorithms; models of computation; lower bounds; algorithms for optimum search trees, balanced trees and UNION-FIND algorithms; numerical and algebraic algorithms; combinatorial algorithms. Turing machines, how to count steps, deterministic and nondeterministic Turing machines, NP-completeness. Unsolvable and intractable problems. Efficient Algorithms and Intractable Problems: Read More [+]
Prerequisites: COMPSCI 61B and COMPSCI 70
Instructors: Demmel, Papadimitriou, Rao, Wagner, Vazirani
Efficient Algorithms and Intractable Problems: Read Less [-]
Terms offered: Spring 2024, Spring 2021 Cryptography or cryptology is the science of designing algorithms and protocols for enabling parties to communicate and compute securely in an untrusted environment (e.g. secure communication, digital signature, etc.) Over the last four decades, cryptography has transformed from an ad hoc collection of mysterious tricks into a rigorous science based on firm complexity-theoretic foundations. This modern complexity-theoretic approach to cryptography will be the focus. E.g., in the context of encryption we will begin by giving a precise mathematical definition for what it means to be a secure encryption scheme and then give a construction (realizing this security notion) assuming various computational hardness assumptions (e.g. factoring). Cryptography: Read More [+]
Prerequisites: COMPSCI 70
Instructor: Garg
Cryptography: Read Less [-]
Terms offered: Fall 2024, Fall 2022, Spring 2022 Finite automata, Turing machines and RAMs. Undecidable, exponential, and polynomial-time problems. Polynomial-time equivalence of all reasonable models of computation. Nondeterministic Turing machines. Theory of NP-completeness: Cook's theorem, NP-completeness of basic problems. Selected topics in language theory, complexity and randomness. Computability and Complexity: Read More [+]
Prerequisites: COMPSCI 170
Instructors: Papadimitriou, Seshia, Sinclair, Vazirani
Computability and Complexity: Read Less [-]
Terms offered: Spring 2023, Spring 2022, Fall 2019 Permutations, combinations, principle of inclusion and exclusion, generating functions, Ramsey theory. Expectation and variance, Chebychev's inequality, Chernov bounds. Birthday paradox, coupon collector's problem, Markov chains and entropy computations, universal hashing, random number generation, random graphs and probabilistic existence bounds. Combinatorics and Discrete Probability: Read More [+]
Instructors: Bartlett, Papadimitriou, Sinclair, Vazirani
Combinatorics and Discrete Probability: Read Less [-]
Terms offered: Fall 2020, Fall 2018, Fall 2017 Algorithms and probabilistic models that arise in various computational biology applications: suffix trees, suffix arrays, pattern matching, repeat finding, sequence alignment, phylogenetics, genome rearrangements, hidden Markov models, gene finding, motif finding, stochastic context free grammars, RNA secondary structure. There are no biology prerequisites for this course, but a strong quantitative background will be essential. Algorithms for Computational Biology: Read More [+]
Prerequisites: COMPSCI 70 and COMPSCI 170 ; experience programming in a language such as C, C++, Java, or Python
Instructor: Song
Algorithms for Computational Biology: Read Less [-]
Terms offered: Fall 2022 This course will provide familiarity with algorithms and probabilistic models that arise in various computational biology applications, such as suffix trees, suffix arrays, pattern matching, repeat finding, sequence alignment, phylogenetics, hidden Markov models, gene finding, motif finding, linear/logistic regression, random forests, convolutional neural networks, genome-wide association studies, pathogenicity prediction, and sequence-to-epigenome prediction. Algorithms for Computational Biology: Read More [+]
Student Learning Outcomes: Understand the basic elements of molecular, cell, and evolutionary biology. Understand the key probabilistic and machine learning models used in computational biology applications. Understand various data structures and algorithms that arise in computational biology.
Prerequisites: COMPSCI 70 and COMPSCI 170 , MATH 54 or EECS 16A or an equivalent linear algebra course
Credit Restrictions: Students will receive no credit for COMPSCI C176 after completing COMPSCI 176 . A deficient grade in COMPSCI C176 may be removed by taking COMPSCI 176 .
Instructors: Song, Yun, Ioannidis
Also listed as: CMPBIO C176
Terms offered: Spring 2024 The class provides an introduction to algorithmic questions in economic design. The class will cover problems of public goods and social choice, as well as allocative questions and private consumption. The focus is on normative questions: From the perspective of social goals, these are efficiency, fairness, and equity. In terms of private goals, the focus is on revenue maximization. The course will cover voting, fair division, pricing and market mechanisms. There is an emphasis on the algorithmic questions that arise naturally in economic design. Algorithmic Economics: Read More [+]
Prerequisites: Students should be comfortable with formal mathematical proofs, and will be expected to write proofs on their own
Also listed as: ECON C147
Algorithmic Economics: Read Less [-]
Terms offered: Fall 2024, Fall 2023 This advanced undergraduate course introduces students to computing with visual data (images and video). We will cover acquisition, representation, and manipulation of visual information from digital photographs (image processing), image analysis and visual understanding (computer vision), and image synthesis (computational photography). Key algorithms will be presented, ranging from classical to contemporary, with an emphasis on using these techniques to build practical systems. The hands-on emphasis will be reflected in the programming assignments, where students will acquire their own images and develop, largely from scratch, image analysis and synthesis tools for real-world applications. Intro to Computer Vision and Computational Photography: Read More [+]
Course Objectives: Students will learn classic algorithms in image manipulation with Gaussian and Laplacian Pyramids, understand the hierarchy of image transformations including homographies, and how to warp an image with these transformations. Students will learn how to apply Convolutional Neural Networks for computer vision problems and how they can be used for image manipulation. Students will learn the fundamentals of 3D vision: stereo, multi-view geometry, camera calibration, structure-from-motion, multi-view stereo, and the plenoptic function. Students will learn the fundamentals of image processing from the mechanics of a pin-hole camera, representation of images as pixels, physics of light and the process of image formation, to manipulating the visual information using signal processing techniques in the spatial and frequency domains.
Student Learning Outcomes: After this class, students will be comfortable implementing, from scratch, these algorithms in modern programming languages and deep learning libraries.
Prerequisites: COMPSCI 61B , COMPSCI 70 , and MATH 53 (or other vector calculus course). MATH 54 , MATH 110 , or EECS 16A . COMPSCI 182 is strongly recommended
Instructors: Efros, Kanazawa
Intro to Computer Vision and Computational Photography: Read Less [-]
Terms offered: Fall 2023, Spring 2023, Fall 2022 Deep Networks have revolutionized computer vision, language technology, robotics and control. They have growing impact in many other areas of science and engineering. They do not however, follow a closed or compact set of theoretical principles. In Yann Lecun's words they require "an interplay between intuitive insights, theoretical modeling, practical implementations, empirical studies, and scientific analyses." This course attempts to cover that ground. Designing, Visualizing and Understanding Deep Neural Networks: Read More [+]
Student Learning Outcomes: Students will come to understand visualizing deep networks. Exploring the training and use of deep networks with visualization tools. Students will learn design principles and best practices: design motifs that work well in particular domains, structure optimization and parameter optimization. Understanding deep networks. Methods with formal guarantees: generative and adversarial models, tensor factorization.
Prerequisites: MATH 53 , MATH 54 , and COMPSCI 61B ; COMPSCI 70 or STAT 134 ; COMPSCI 189 is recommended
Credit Restrictions: Students will receive no credit for COMPSCI 182 after completing COMPSCI W182, or COMPSCI L182. A deficient grade in COMPSCI 182 may be removed by taking COMPSCI W182, or COMPSCI L182.
Instructor: Canny
Designing, Visualizing and Understanding Deep Neural Networks: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 Techniques of modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation, and their matrix representations. Homogeneous coordinates, projective and perspective transformations. Algorithms for clipping, hidden surface removal, rasterization, and anti-aliasing. Scan-line based and ray-based rendering algorithms. Lighting models for reflection, refraction, transparency. Foundations of Computer Graphics: Read More [+]
Prerequisites: COMPSCI 61B or COMPSCI 61BL ; programming skills in C, C++, or Java; linear algebra and calculus
Credit Restrictions: Students will receive no credit for Comp Sci 184 after taking Comp Sci 284A.
Instructors: O'Brien, Ng
Foundations of Computer Graphics: Read Less [-]
Terms offered: Not yet offered This course will cover the intersection of control, reinforcement learning, and deep learning. This course will provide an advanced treatment of the reinforcement learning formalism, the most critical model-free reinforcement learning algorithms (policy gradients, value function and Q-function learning, and actor-critic), a discussion of model-based reinforcement learning algorithms, an overview of imitation learning, and a range of advanced topics, including exploration, model-based learning with video prediction, transfer learning, multi-task learning, and meta-learning. Homework assignments will cover imitation learning, policy gradients, Q-learning, and model-based reinforcement learning, as well as a final project. Deep Reinforcement Learning, Decision Making, and Control: Read More [+]
Prerequisites: CS189/289A or equivalent is a prerequisite for the course. This course will assume some familiarity with reinforcement learning, numerical optimization and machine learning, as well as a basic working knowledge of how to train deep neural networks (which is taught in CS182 and briefly covered in CS189)
Instructor: Levine
Deep Reinforcement Learning, Decision Making, and Control: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Access methods and file systems to facilitate data access. Hierarchical, network, relational, and object-oriented data models. Query languages for models. Embedding query languages in programming languages. Database services including protection, integrity control, and alternative views of data. High-level interfaces including application generators, browsers, and report writers. Introduction to transaction processing. Database system implementation to be done as term project. Introduction to Database Systems: Read More [+]
Prerequisites: COMPSCI 61C or COMPSCI 47C . COMPSCI 47C may be taken as a co-requisite for transfer students
Credit Restrictions: Students will receive no credit for COMPSCI 186 after completing COMPSCI W186 . A deficient grade in COMPSCI 186 may be removed by taking COMPSCI W186 .
Instructors: Cheung, Hellerstein
Introduction to Database Systems: Read Less [-]
Terms offered: Fall 2021, Spring 2021, Spring 2020 Broad introduction to systems for storing, querying, updating and managing large databases. Computer science skills synthesizing viewpoints from low-level systems architecture to high-level modeling and declarative logic. System internals, including the complex details of query optimization and execution, concurrency control, indexing, and memory management. More abstract issues in query languages and data modeling – students are exposed to formal relational languages, SQL, full-text search, entity-relationship modeling, normalization, and physical database design. Recent technological trends in the field, including “Big Data” programming libraries like MapReduce, and distributed key-value stores with various consistency models. Introduction to Database Systems: Read More [+]
Credit Restrictions: Students will receive no credit for COMPSCI W186 after completing COMPSCI 186 . A deficient grade in COMPSCI W186 may be removed by taking COMPSCI 186 .
Summer: 8 weeks - 6 hours of web-based lecture and 2 hours of discussion per week
Additional Format: One hour of discussion and three hours of web-based lecture per week. Two hours of discussion and six hours of web-based lecture per week for 8 weeks.
Instructor: Hellerstein
Terms offered: Not yet offered This course will cover the principles and practices of managing data at scale, with a focus on use cases in data analysis and machine learning. We will cover the entire life cycle of data management and science, ranging from data preparation to exploration, visualization and analysis, to machine learning and collaboration, with a focus on ensuring reliable, scalable operationalization. Data Engineering: Read More [+]
Prerequisites: COMPSCI 61B , or INFO 206B , or equivalent courses in programming with a C- or better, or Pass; and COMPSCI C100 / DATA C100 / STAT C100 , or COMPSCI 189 , or INFO 251 , or DATA 144 , or equivalent upper-division course in data science with a C- or better, or Pass
Instructors: Hellerstein, Jain, Parameswaran, Yan
Formerly known as: Data Science, Undergraduate 101
Also listed as: DATA C101
Data Engineering: Read Less [-]
Terms offered: Fall 2024, Summer 2024 8 Week Session, Spring 2024 Ideas and techniques underlying the design of intelligent computer systems. Topics include search, game playing, knowledge representation, inference, planning, reasoning under uncertainty, machine learning, robotics, perception, and language understanding. Introduction to Artificial Intelligence: Read More [+]
Prerequisites: COMPSCI 61A , COMPSCI 61B , and COMPSCI 70
Instructors: Abbeel, Klein, Russell
Introduction to Artificial Intelligence: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Theoretical foundations, algorithms, methodologies, and applications for machine learning. Topics may include supervised methods for regression and classication (linear models, trees, neural networks, ensemble methods, instance-based methods); generative and discriminative probabilistic models; Bayesian parametric learning; density estimation and clustering; Bayesian networks; time series models; dimensionality reduction; programming projects covering a variety of real-world applications. Introduction to Machine Learning: Read More [+]
Prerequisites: MATH 53 and MATH 54 ; and COMPSCI 70 or consent of instructor
Credit Restrictions: Students will receive no credit for Comp Sci 189 after taking Comp Sci 289A.
Instructors: Abbeel, Bartlett, Darrell, El Ghaoui, Jordan, Klein, Malik, Russell
Introduction to Machine Learning: Read Less [-]
Terms offered: Spring 2024, Fall 2023, Spring 2023 This multidisciplinary course provides an introduction to fundamental conceptual aspects of quantum mechanics from a computational and informational theoretic perspective, as well as physical implementations and technological applications of quantum information science. Basic sections of quantum algorithms, complexity, and cryptography, will be touched upon, as well as pertinent physical realizations from nanoscale science and engineering. Introduction to Quantum Computing: Read More [+]
Prerequisites: Linear Algebra ( EECS 16A or PHYSICS 89 or MATH 54 ) AND either discrete mathematics ( COMPSCI 70 or MATH 55 ), or quantum mechanics ( PHYSICS 7C or PHYSICS 137A or CHEM 120A )
Also listed as: CHEM C191/PHYSICS C191
Introduction to Quantum Computing: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Topics will vary semester to semester. See the Computer Science Division announcements. Special Topics: Read More [+]
Prerequisites: Consent of instructor
Fall and/or spring: 15 weeks - 1-4 hours of lecture per week
Summer: 8 weeks - 2-8 hours of lecture per week
Additional Format: One to four hours of lecture per week. Two to eight hours of lecture per week for 8 weeks.
Special Topics: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Spring 2023 Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students will lead discussions on additional topics. Social Implications of Computer Technology: Read More [+]
Credit Restrictions: Students will receive no credit for 195 after taking C195/Interdisciplinary Field Study C155 or H195.
Fall and/or spring: 15 weeks - 1.5 hours of lecture per week
Additional Format: Three hours of lecture/discussion per week.
Grading/Final exam status: Offered for pass/not pass grade only. Final exam not required.
Instructor: Harvey
Social Implications of Computer Technology: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Spring 2023 Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students may lead discussions on additional topics. Honors Social Implications of Computer Technology: Read More [+]
Credit Restrictions: Student will receive no credit for H195 after taking 195 or C195.
Fall and/or spring: 15 weeks - 1.5 hours of lecture and 1.5 hours of discussion per week
Additional Format: One and one-half hours of Lecture and One and one-half hours of Discussion per week for 15 weeks.
Honors Social Implications of Computer Technology: Read Less [-]
Terms offered: Fall 2021, Fall 2020, Fall 2016 Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science. Senior Honors Thesis Research: Read More [+]
Prerequisites: Open only to students in the computer science honors program
Fall and/or spring: 15 weeks - 1-4 hours of independent study per week
Additional Format: Individual research.
Senior Honors Thesis Research: Read Less [-]
Terms offered: Spring 2023, Spring 2010, Spring 2009 Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science. Senior Honors Thesis Research: Read More [+]
Terms offered: Fall 2024, Fall 2023, Spring 2019 Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. Field Study: Read More [+]
Prerequisites: Consent of instructor (see department adviser)
Repeat rules: Course may be repeated for credit without restriction.
Fall and/or spring: 15 weeks - 1-4 hours of fieldwork per week
Summer: 6 weeks - 2.5-10 hours of fieldwork per week 8 weeks - 2-7.5 hours of fieldwork per week
Additional Format: One to Four hour of Fieldwork per week for 15 weeks. Two to Seven and one-half hours of Fieldwork per week for 8 weeks. Two and one-half to Ten hours of Fieldwork per week for 6 weeks.
Field Study: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Group study of selected topics in Computer Sciences, usually relating to new developments. Directed Group Studies for Advanced Undergraduates: Read More [+]
Prerequisites: 2.0 GPA or better; 60 units completed
Fall and/or spring: 15 weeks - 1-4 hours of directed group study per week
Additional Format: Course format varies with section.
Directed Group Studies for Advanced Undergraduates: Read Less [-]
Terms offered: Fall 2021, Spring 2020, Fall 2018 Supervised independent study. Enrollment restrictions apply. Supervised Independent Study: Read More [+]
Prerequisites: Consent of instructor and major adviser
Credit Restrictions: Enrollment is restricted; see the Introduction to Courses and Curricula section of this catalog.
Fall and/or spring: 15 weeks - 0 hours of independent study per week
Summer: 6 weeks - 1-5 hours of independent study per week 8 weeks - 1-4 hours of independent study per week
Additional Format: Individual conferences.
Supervised Independent Study: Read Less [-]
Terms offered: Fall 2022, Fall 2021, Fall 2017 The Freshman Seminar Program has been designed to provide new students with the opportunity to explore an intellectual topic with a faculty member in a small seminar setting. Freshman seminars are offered in all campus departments, and topics may vary from department to department and semester to semester. Freshman Seminar: Read More [+]
Fall and/or spring: 15 weeks - 1 hour of seminar per week
Additional Format: One hour of Seminar per week for 15 weeks.
Subject/Course Level: Electrical Engineering/Undergraduate
Freshman Seminar: Read Less [-]
Terms offered: Fall 2011 A Berkeley Electrical Engineering and Computer Sciences degree opens the door to many opportunities, but what exactly are they? Graduation is only a few years away and it's not too early to find out. In this seminar students will hear from practicing engineers who recently graduated. What are they working on? Are they working in a team? What do they wish they had learned better? How did they find their jobs? What Electrical Engineers Do--Feedback from Recent Graduates: Read More [+]
Fall and/or spring: 15 weeks - 1 hour of lecture per week
Additional Format: One hour of Lecture per week for 15 weeks.
Instructor: Boser
What Electrical Engineers Do--Feedback from Recent Graduates: Read Less [-]
Terms offered: Spring 2023, Fall 2022, Spring 2022 Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25. Freshman/Sophomore Seminar: Read More [+]
Fall and/or spring: 15 weeks - 2-4 hours of seminar per week
Additional Format: Two to four hours of seminar per week.
Terms offered: Fall 2013, Summer 2013 8 Week Session, Spring 2013 This course serves as an introduction to the principles of electrical engineering, starting from the basic concepts of voltage and current and circuit elements of resistors, capacitors, and inductors. Circuit analysis is taught using Kirchhoff's voltage and current laws with Thevenin and Norton equivalents. Operational amplifiers with feedback are introduced as basic building blocks for amplication and filtering. Semiconductor devices including diodes and MOSFETS and their IV characteristics are covered. Applications of diodes for rectification, and design of MOSFETs in common source amplifiers are taught. Digital logic gates and design using CMOS as well as simple flip-flops are introduced. Speed and scaling issues for CMOS are considered. The course includes as motivating examples designs of high level applications including logic circuits, amplifiers, power supplies, and communication links. Introduction to Digital Electronics: Read More [+]
Prerequisites: Mathematics 1B
Credit Restrictions: Students will receive no credit for 42 after taking 40 or 100.
Additional Format: Three hours of Lecture and One hour of Discussion per week for 15 weeks. Six hours of Lecture and Two hours of Discussion per week for 8 weeks.
Introduction to Digital Electronics: Read Less [-]
Terms offered: Spring 2020, Spring 2019, Fall 2018 Electronics has become pervasive in our lives as a powerful technology with applications in a wide range of fields including healthcare, environmental monitoring, robotics, or entertainment. This course teaches how to build electronic circuits that interact with the environment through sensors and actuators and how to communicate wirelessly with the internet to cooperate with other devices and with humans. In the laboratory students design and build representative samples such as solar harvesters, robots, that exchange information with or are controlled from the cloud. Electronics for the Internet of Things: Read More [+]
Course Objectives: Electronics has become a powerful and ubiquitous technology supporting solutions to a wide range of applications in fields ranging from science, engineering, healthcare, environmental monitoring, transportation, to entertainment. The objective of this course is to teach students majoring in these and related subjects how to use electronic devices to solve problems in their areas of expertise. Through the lecture and laboratory, students gain insight into the possibilities and limitations of the technology and how to use electronics to help solve problems. Students learn to use electronics to interact with the environment through sound, light, temperature, motion using sensors and actuators, and how to use electronic computation to orchestrate the interactions and exchange information wirelessly over the internet.
Student Learning Outcomes: Deploy electronic sensors and interface them to microcontrollers through digital and analog channels as well as common protocols (I2C, SPI), Design, build and test electronic devices leveraging these concepts. Interact with the internet and cloud services using protocols such as http, MQTT, Blynk, Interface DC motors, steppers and servos to microcontrollers, Represent information with voltage, current, power, and energy and how to measure these quantities with laboratory equipment, To use and program low-cost and low-power microcontrollers for sensing, actuation, and information processing, and find and use program libraries supporting these tasks Understand and make basic low-pass and high-pass filters, Wheatstone bridge etc. Use electronics to sense and actuate physical parameters such as temperature, humidity, sound, light, and motion,
Prerequisites: ENGIN 7 , COMPSCI 10 , or equivalent background in computer programming (including COMPSCI 61A or COMPSCI C8 / INFO C8 / STAT C8 ); MATH 1A or equivalent background in Calculus
Additional Format: Three hours of lecture and three hours of laboratory and two hours of discussion per week.
Electronics for the Internet of Things: Read Less [-]
Terms offered: Fall 2022, Spring 2022, Fall 2021 Sophomore seminars are small interactive courses offered by faculty members in departments all across the campus. Sophomore seminars offer opportunity for close, regular intellectual contact between faculty members and students in the crucial second year. The topics vary from department to department and semester to semester. Enrollment limited to 15 sophomores. Sophomore Seminar: Read More [+]
Summer: 6 weeks - 2.5-5 hours of seminar per week 8 weeks - 1.5-3.5 hours of seminar per week
Additional Format: unit(s):one hour of seminar per week; 2 unit(s):two hours of seminar per week. unit(s):one and one-half hours of seminar per week; 2 unit(s):three hours of seminar per week for 10 weeks. unit(s):one and one-half hours of seminar per week; 2 unit(s):three and one-half hours of seminar per week for 8 weeks. unit(s):two and one-half hours of seminar per week; 2 unit(s):five hours of seminar per week for 6 weeks. unit(s):three hours of seminar per week; 2 unit(s):six hours of seminar per week for five weeks.
Terms offered: Summer 2024 3 Week Session, Spring 2016, Fall 2015 Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. Field Study: Read More [+]
Terms offered: Fall 2021, Fall 2020, Fall 2016 Group study of selected topics in electrical engineering, usually relating to new developments. Directed Group Study for Undergraduates: Read More [+]
Additional Format: Course format varies.
Directed Group Study for Undergraduates: Read Less [-]
Terms offered: Spring 2016, Fall 2015, Spring 2015 Supervised independent study and research for students with fewer than 60 units completed. Individual Study and Research for Undergraduates: Read More [+]
Prerequisites: Freshman or sophomore standing and consent of instructor. Minimum GPA of 3.4 required
Additional Format: One to four hours of independent study per week. One to four hours of independent study per week for 8 weeks. One to five hours of independent study per week for 6 weeks.
Individual Study and Research for Undergraduates: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 This course covers the fundamental circuit and device concepts needed to understand analog integrated circuits. After an overview of the basic properties of semiconductors, the p-n junction and MOS capacitors are described and the MOSFET is modeled as a large-signal device. Two port small-signal amplifiers and their realization using single stage and multistage CMOS building blocks are discussed. Sinusoidal steady-state signals are introduced and the techniques of phasor analysis are developed, including impedance and the magnitude and phase response of linear circuits. The frequency responses of single and multi-stage amplifiers are analyzed. Differential amplifiers are introduced. Microelectronic Devices and Circuits: Read More [+]
Credit Restrictions: Students will receive no credit for EL ENG 105 after completing EL ENG 240A , or EL ENG 140 .
Additional Format: Three hours of Lecture, One hour of Discussion, and Three hours of Laboratory per week for 15 weeks.
Microelectronic Devices and Circuits: Read Less [-]
Terms offered: Fall 2017, Fall 2016, Fall 2015 An introduction to the kinematics, dynamics, and control of robot manipulators, robotic vision, and sensing. The course covers forward and inverse kinematics of serial chain manipulators, the manipulator Jacobian, force relations, dynamics, and control. It presents elementary principles on proximity, tactile, and force sensing, vision sensors, camera calibration, stereo construction, and motion detection. The course concludes with current applications of robotics in active perception, medical robotics, and other areas. Introduction to Robotics: Read More [+]
Prerequisites: EL ENG 120 or consent of instructor
Instructor: Bajcsy
Formerly known as: Electrical Engineering C125/Bioengineering C125
Also listed as: BIO ENG C125
Terms offered: Spring 2017, Spring 2016 This course is a sequel to Electrical Engineering C106A/Bioengineering C125, which covers kinematics, dynamics and control of a single robot. This course will cover dynamics and control of groups of robotic manipulators coordinating with each other and interacting with the environment. Concepts will include an introduction to grasping and the constrained manipulation, contacts and force control for interaction with the environment. We will also cover active perception guided manipulation, as well as the manipulation of non-rigid objects. Throughout, we will emphasize design and human-robot interactions, and applications to applications in manufacturing, service robotics, tele-surgery, and locomotion. Robotic Manipulation and Interaction: Read More [+]
Prerequisites: EECS C106A / BIO ENG C125 or consent of the instructor
Additional Format: Three hours of lecture and three hours of laboratory and one hour of discussion per week.
Instructors: Bajcsy, Sastry
Also listed as: BIO ENG C125B
Terms offered: Spring 2024 This course is designed to provide an introduction to electric power conversion, distribution, and generation with renewable energy sources. The course will introduce fundamental concepts in the area of electric power, such as complex and reactive power, phasors, impedance, magnetic circuits and transformers, power factor, power quality, three-phase power, ac-dc conversion, and a conceptual overview of renewable energy and the integration of sustainable energy sources on the electric grid.Real world applications, ranging from ground-fault circuit interrupters to residential power distribution and solar photovoltaic dc-ac inverters will be explored in live lecture demonstration. Introduction to Electric Power and Renewable Energy: Read More [+]
Prerequisites: Differential equations and linear algebra (Math 54 or equivalent). Electricity and magnetism (Physics 7B or equivalent). Introduction to electric circuits (EE 16AB or equivalent). Students should enter the course with a basic working knowledge of RLC circuits
Instructor: Pilawa
Introduction to Electric Power and Renewable Energy: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Fall 2022 Power conversion circuits and techniques. Characterization and design of magnetic devices including transformers, reactors, and electromagnetic machinery. Characteristics of bipolar and MOS power semiconductor devices. Applications to motor control, switching power supplies, lighting, power systems, and other areas as appropriate. Power Electronics: Read More [+]
Prerequisites: EL ENG 105 or background in circuit analysis (KVL, KCL, voltage/current relationships, etc.)
Instructors: Pilawa, Boles
Power Electronics: Read Less [-]
Terms offered: Spring 2024 This course is the second in a two-semester series to equip students with the skills needed to analyze, design, and prototype power electronic converters. While EE 113/213A provides an overview of power electronics fundamentals and applications, EE 113B/213B focuses on the practical design and hardware implementation of power converters. The primary focus of EE 113B/213B is time in the laboratory, with sequential modules on topics such as power electronic components, PCB layout, closed-loop control, and experimental validation. At the end of the course, students will have designed, prototyped, and validated a power converter from scratch, demonstrating a skill set that is critical for power electronics engineers in research and industry. Power Electronics Design: Read More [+]
Fall and/or spring: 15 weeks - 1.5 hours of lecture and 6 hours of laboratory per week
Additional Format: One and one-half hours of lecture and six hours of laboratory per week.
Instructor: Boles
Power Electronics Design: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 Review of static electric and magnetic fields and applications; Maxwell's equations; transmission lines; propagation and reflection of plane waves; introduction to guided waves, microwave networks, and radiation and antennas. Minilabs on statics, transmission lines, and waves. Explanation of cellphone antennas, WiFi communication, and other wireless technologies. Electromagnetic Fields and Waves: Read More [+]
Prerequisites: EECS 16B , MATH 53 , and MATH 54 ; PHYSICS 7B or equivalent that covers AC circuits and electromagnetics up to Maxwell's equations
Additional Format: Three hours of lecture and one hour of discussion and two hours of laboratory per week.
Instructor: Yablonovitch
Electromagnetic Fields and Waves: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Fall 2022 Fundamental principles of optical systems. Geometrical optics and aberration theory. Stops and apertures, prisms, and mirrors. Diffraction and interference. Optical materials and coatings. Radiometry and photometry. Basic optical devices and the human eye. The design of optical systems. Lasers, fiber optics, and holography. Introduction to Optical Engineering: Read More [+]
Prerequisites: MATH 53 ; EECS 16A and EECS 16B , or MATH 54
Credit Restrictions: Students will receive no credit for Electrical Engineering 118 after taking Electrical Engineering 218A. A deficient grade in Electrical Engineering 119 may be removed by taking Electrical Engineering 118.
Instructors: Waller, Kante
Introduction to Optical Engineering: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Continuous and discrete-time transform analysis techniques with illustrative applications. Linear and time-invariant systems, transfer functions. Fourier series, Fourier transform, Laplace and Z-transforms. Sampling and reconstruction. Solution of differential and difference equations using transforms. Frequency response, Bode plots, stability analysis. Illustrated by analysis of communication systems and feedback control systems. Signals and Systems: Read More [+]
Fall and/or spring: 15 weeks - 4 hours of lecture and 1 hour of recitation per week
Additional Format: Four hours of Lecture and One hour of Recitation per week for 15 weeks.
Signals and Systems: Read Less [-]
Terms offered: Spring 2016, Fall 2014, Fall 2013 Introduction to the basic principles of the design and analysis of modern digital communication systems. Topics include source coding, channel coding, baseband and passband modulation techniques, receiver design, and channel equalization. Applications to design of digital telephone modems, compact disks, and digital wireless communication systems. Concepts illustrated by a sequence of MATLAB exercises. Introduction to Digital Communication Systems: Read More [+]
Prerequisites: EECS 16A , EECS 16B , and COMPSCI 70
Introduction to Digital Communication Systems: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 This course focuses on the fundamentals of the wired and wireless communication networks. The course covers both the architectural principles for making these networks scalable and robust, as well as the key techniques essential for analyzing and designing them. The topics include graph theory, Markov chains, queuing, optimization techniques, the physical and link layers, switching, transport, cellular networks and Wi-Fi. Introduction to Communication Networks: Read More [+]
Introduction to Communication Networks: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 Discrete time signals and systems: Fourier and Z transforms, DFT, 2-dimensional versions. Digital signal processing topics: flow graphs, realizations, FFT, chirp-Z algorithms, Hilbert transform relations, quantization effects, linear prediction. Digital filter design methods: windowing, frequency sampling, S-to-Z methods, frequency-transformation methods, optimization methods, 2-dimensional filter design. Digital Signal Processing: Read More [+]
Prerequisites: EL ENG 120
Fall and/or spring: 15 weeks - 3 hours of lecture, 1 hour of discussion, and 1 hour of laboratory per week
Additional Format: Three hours of Lecture, One hour of Discussion, and One hour of Laboratory per week for 15 weeks.
Digital Signal Processing: Read Less [-]
Terms offered: Spring 2017, Fall 2016, Spring 2016 This course covers the fundamentals of probability and random processes useful in fields such as networks, communication, signal processing, and control. Sample space, events, probability law. Conditional probability. Independence. Random variables. Distribution, density functions. Random vectors. Law of large numbers. Central limit theorem. Estimation and detection. Markov chains. Probability and Random Processes: Read More [+]
Terms offered: Spring 2024, Spring 2023, Spring 2022 Analysis and synthesis of linear feedback control systems in transform and time domains. Control system design by root locus, frequency response, and state space methods. Applications to electro-mechanical and mechatronics systems. Feedback Control Systems: Read More [+]
Prerequisites: EECS 16A or MEC ENG 100 ; MEC ENG 132 or EL ENG 120
Also listed as: MEC ENG C134
Feedback Control Systems: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Overview of electronic properties of semiconductor. Metal-semiconductor contacts, pn junctions, bipolar transistors, and MOS field-effect transistors. Properties that are significant to device operation for integrated circuits. Silicon device fabrication technology. Integrated-Circuit Devices: Read More [+]
Credit Restrictions: Students will receive no credit for El Eng 130 after taking El Eng 230A.
Integrated-Circuit Devices: Read Less [-]
Terms offered: Spring 2024, Spring 2023, Spring 2022 This course is designed to give an introduction to, and overview of, the fundamentals of photovoltaic devices. Students will learn how solar cells work, understand the concepts and models of solar cell device physics, and formulate and solve relevant physical problems related to photovoltaic devices. Monocrystalline, thin film and third generation solar cells will be discussed and analyzed. Light management and economic considerations in a solar cell system will also be covered. Fundamentals of Photovoltaic Devices: Read More [+]
Prerequisites: EECS 16A and EECS 16B ; or Math 54 and Physics 7B; or equivalent
Instructor: Arias
Fundamentals of Photovoltaic Devices: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Fall 2022 Overview of conventional electric power conversion and delivery, emphasizing a systemic understanding of the electric grid with primary focus at the transmission level, aimed toward recognizing needs and opportunities for technological innovation. Topics include aspects of a.c. system design, electric generators, components of transmission and distribution systems, power flow analysis, system planning and operation, performance measures, and limitations of legacy technologies. Introduction to Electric Power Systems: Read More [+]
Prerequisites: Physics 7B; EECS 16A and EECS 16B , or consent of instructor
Instructor: von Meier
Introduction to Electric Power Systems: Read Less [-]
Terms offered: Spring 2023, Spring 2022, Spring 2021 Overview of recent and potential future evolution of electric power systems with focus on new and emerging technologies for power conversion and delivery, primarily at the distribution level. Topics include power electronics applications, solar and wind generation, distribution system design and operation, electric energy storage, information management and communications, demand response, and microgrids. Introduction to Electric Power Systems: Read More [+]
Prerequisites: EL ENG 137A or consent of instructor
Terms offered: Fall 2024, Spring 2024, Fall 2023 Single and multiple stage transistor amplifiers. Operational amplifiers. Feedback amplifiers, 2-port formulation, source, load, and feedback network loading. Frequency response of cascaded amplifiers, gain-bandwidth exchange, compensation, dominant pole techniques, root locus. Supply and temperature independent biasing and references. Selected applications of analog circuits such as analog-to-digital converters, switched capacitor filters, and comparators. Hardware laboratory and design project. Linear Integrated Circuits: Read More [+]
Prerequisites: EL ENG 105
Credit Restrictions: Students will receive no credit for El Eng 140 after taking El Eng 240A.
Instructors: Alon, Sanders
Linear Integrated Circuits: Read Less [-]
Terms offered: Spring 2024, Fall 2023, Spring 2023 Analysis and design of electronic circuits for communication systems, with an emphasis on integrated circuits for wireless communication systems. Analysis of noise and distortion in amplifiers with application to radio receiver design. Power amplifier design with application to wireless radio transmitters. Radio-frequency mixers, oscillators, phase-locked loops, modulators, and demodulators. Integrated Circuits for Communications: Read More [+]
Prerequisites: EECS 16A , EECS 16B , and EL ENG 105
Credit Restrictions: Students will receive no credit for El Eng 142 after taking El Eng 242A.
Integrated Circuits for Communications: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Integrated circuit device fabrication and surface micromachining technology. Thermal oxidation, ion implantation, impurity diffusion, film deposition, expitaxy, lithography, etching, contacts and interconnections, and process integration issues. Device design and mask layout, relation between physical structure and electrical/mechanical performance. MOS transistors and poly-Si surface microstructures will be fabricated in the laboratory and evaluated. Microfabrication Technology: Read More [+]
Prerequisites: PHYSICS 7B
Additional Format: Three hours of Lecture and Three hours of Laboratory per week for 15 weeks.
Microfabrication Technology: Read Less [-]
Terms offered: Fall 2015, Fall 2014, Fall 2013 The modeling, analysis, and optimization of complex systems requires a range of algorithms and design software. This course reviews the fundamental techniques underlying the design methodology for complex systems, using integrated circuit design as example. Topics include design flows, discrete and continuous models and algorithms, and strategies for implementing algorithms efficiently and correctly in software. Laboratory assignments and a class project will expose students to state-of-the-art tools. Fundamental Algorithms for Systems Modeling, Analysis, and Optimization: Read More [+]
Prerequisites: EECS 16A and COMPSCI 70 , or consent of instructor
Fall and/or spring: 15 weeks - 4 hours of lecture per week
Additional Format: Four hours of lecture per week.
Instructors: Keutzer, Lee, Roychowdhury, Seshia
Fundamental Algorithms for Systems Modeling, Analysis, and Optimization: Read Less [-]
Terms offered: Fall 2024, Fall 2023, Fall 2022 Biomedical imaging is a clinically important application of engineering, applied mathematics, physics, and medicine. In this course, we apply linear systems theory and basic physics to analyze X-ray imaging, computerized tomography, nuclear medicine, and MRI. We cover the basic physics and instrumentation that characterizes medical image as an ideal perfect-resolution image blurred by an impulse response. This material could prepare the student for a career in designing new medical imaging systems that reliably detect small tumors or infarcts. Medical Imaging Signals and Systems: Read More [+]
Prerequisites: Prerequisites are introductory level skills in Python/Matlab; and either EECS 16A , EECS 16B , and EL ENG 120 ; or MATH 54 , BIO ENG 105 , and BIO ENG 101
Instructor: Conolly
Also listed as: BIO ENG C165
Medical Imaging Signals and Systems: Read Less [-]
Terms offered: Fall 2014, Fall 2013, Fall 2012 Laboratory exercises exploring a variety of electronic transducers for measuring physical quantities such as temperature, force, displacement, sound, light, ionic potential; the use of circuits for low-level differential amplification and analog signal processing; and the use of microcomputers for digital sampling and display. Lectures cover principles explored in the laboratory exercises; construction, response and signal to noise of electronic transducers and actuators; and design of circuits for sensing and controlling physical quantities. Introductory Electronic Transducers Laboratory: Read More [+]
Fall and/or spring: 15 weeks - 2 hours of lecture and 3 hours of laboratory per week
Additional Format: Two hours of Lecture and Three hours of Laboratory per week for 15 weeks.
Instructor: Derenzo
Also listed as: BIO ENG C145L
Introductory Electronic Transducers Laboratory: Read Less [-]
Terms offered: Spring 2013, Spring 2012, Spring 2011 Laboratory exercises constructing basic interfacing circuits and writing 20-100 line C programs for data acquisition, storage, analysis, display, and control. Use of the IBM PC with microprogrammable digital counter/timer, parallel I/O port. Circuit components include anti-aliasing filters, the S/H amplifier, A/D and D/A converters. Exercises include effects of aliasing in periodic sampling, fast Fourier transforms of basic waveforms, the use of the Hanning filter for leakage reduction, Fourier analysis of the human voice, digital filters, and control using Fourier deconvolution. Lectures cover principles explored in the lab exercises and design of microcomputer-based systems for data acquisitions, analysis and control. Introductory Microcomputer Interfacing Laboratory: Read More [+]
Prerequisites: EE 16A & 16B
Also listed as: BIO ENG C145M
Introductory Microcomputer Interfacing Laboratory: Read Less [-]
Terms offered: Spring 2015, Spring 2014, Spring 2013, Spring 2012 Introduction to laboratory and field study of the biomechanics of animals and plants using fundamental biomechanical techniques and equipment. Course has a series of rotations involving students in experiments demonstrating how solid and fluid mechanics can be used to discover the way in which diverse organisms move and interact with their physical environment. The laboratories emphasize sampling methodology, experimental design , and statistical interpretation of results. Latter third of course devoted to independent research projects. Written reports and class presentation of project results are required. Laboratory in the Mechanics of Organisms: Read More [+]
Prerequisites: INTEGBI 135 or consent of instructor. For Electrical Engineering and Computer Sciences students: EL ENG 105 , EL ENG 120 or COMPSCI 184
Credit Restrictions: Students will receive no credit for C135L after taking 135L.
Fall and/or spring: 15 weeks - 6 hours of laboratory, 1 hour of discussion, and 1 hour of fieldwork per week
Additional Format: Six hours of laboratory and one hour of discussion per week, plus one field trip.
Formerly known as: Integrative Biology 135L
Also listed as: BIO ENG C136L/INTEGBI C135L
Laboratory in the Mechanics of Organisms: Read Less [-]
Terms offered: Spring 2015 This is a lab course that covers the design of modern Application-Specific Integrated Circuits (ASICs). The labs lay the foundation of modern digital design by first setting-up the scripting and hardware description language base for specification of digital systems and interactions with tool flows. Software testing of digital designs is covered leading into a set of labs that cover the design flow. Digital synthesis, floorplanning, placement and routing are covered , as well as tools to evaluate design timing and power. Chip-level assembly is covered, instantiation of custom IP blocks: I/O pads, memories, PLLs, etc. The labs culminate with a project design – implementation of a 3-stage RISC-V processor with register file and caches. Application Specific Integrated Circuits Laboratory: Read More [+]
Course Objectives: This course is a one-time offering to supplement the CS150 course offered in the Fall 2014, with a lab and project section that cover the Application-Specific Integrated Circuit Design. The CS150 lectures in the Fall 2014 already covered the necessary lecture material, so students who took the CS150 lab in the Fall of 2014 will have a chance to expand their skills into the area of Application-Specific Integrated Circuit design. Hence the pre-requisite for this course is that a student has taken the CS150 course in the Fall 2014.
Prerequisites: EECS 16B ; EL ENG 105 recommended
Credit Restrictions: Students will receive no credit for Electrical Engineering 146L after taking Fall 2014 version of Electrical Engineering 141/241A.
Fall and/or spring: 15 weeks - 3 hours of laboratory and 1 hour of discussion per week
Additional Format: Three hours of laboratory and one hour of discussion per week.
Instructor: Stojanovic
Terms offered: Fall 2024, Fall 2023, Fall 2022 This course will teach fundamentals of micromachining and microfabrication techniques, including planar thin-film process technologies, photolithographic techniques, deposition and etching techniques, and the other technologies that are central to MEMS fabrication. It will pay special attention to teaching of fundamentals necessary for the design and analysis of devices and systems in mechanical, electrical, fluidic, and thermal energy/signal domains , and will teach basic techniques for multi-domain analysis. Fundamentals of sensing and transduction mechanisms including capacitive and piezoresistive techniques, and design and analysis of micmicromachined miniature sensors and actuators using these techniques will be covered. Introduction to Microelectromechanical Systems (MEMS): Read More [+]
Credit Restrictions: Students will receive no credit for El Eng 147 after taking El Eng 247A.
Instructors: Maharbiz, Nguyen, Pister
Introduction to Microelectromechanical Systems (MEMS): Read Less [-]
Terms offered: Spring 2021, Spring 2020, Spring 2019 Design project course, focusing on application of theoretical principles in electrical engineering to control of a small-scale system, such as a mobile robot. Small teams of students will design and construct a mechatronic system incorporating sensors, actuators, and intelligence. Mechatronic Design Laboratory: Read More [+]
Prerequisites: EECS 16A , EECS 16B , COMPSCI 61A , COMPSCI 61B , COMPSCI 61C , and EL ENG 120
Fall and/or spring: 15 weeks - 1.5 hours of lecture and 10 hours of laboratory per week
Additional Format: One and one-half hours of Lecture and Ten hours of Laboratory per week for 15 weeks.
Instructor: Fearing
Mechatronic Design Laboratory: Read Less [-]
Terms offered: Fall 2024, Spring 2024, Fall 2023 Topics will vary semester to semester. See the Electrical Engineering announcements. Special Topics: Read More [+]
Additional Format: One to four hours of lecture per week.
Terms offered: Spring 2016, Fall 2015, Spring 2015 Thesis work under the supervision of a faculty member. A minimum of four units must be taken; the units may be distributed between one and two semesters in any way. To obtain credit a satisfactory thesis must be submitted at the end of the two semesters to the Electrical and Engineering and Computer Science Department archive. Students who complete four units and a thesis in one semester receive a letter grade at the end of H196A. Students who do not, receive an IP in H196A and must enroll in H196B. Senior Honors Thesis Research: Read More [+]
Prerequisites: Open only to students in the Electrical Engineering and Computer Science honors program
Grading/Final exam status: Letter grade. This is part one of a year long series course. A provisional grade of IP (in progress) will be applied and later replaced with the final grade after completing part two of the series. Final exam required.
Terms offered: Spring 2016, Spring 2015, Spring 2014 Thesis work under the supervision of a faculty member. A minimum of four units must be taken; the units may be distributed between one and two semesters in any way. To obtain credit a satisfactory thesis must be submitted at the end of the two semesters to the Electrical and Engineering and Computer Science Department archive. Students who complete four units and a thesis in one semester receive a letter grade at the end of H196A. Students who do not, receive an IP in H196A and must enroll in H196B. Senior Honors Thesis Research: Read More [+]
Grading/Final exam status: Letter grade. This is part two of a year long series course. Upon completion, the final grade will be applied to both parts of the series. Final exam required.
Terms offered: Fall 2023, Fall 2022, Fall 2021 Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. Field Study: Read More [+]
Terms offered: Spring 2024, Fall 2023, Spring 2023 Group study of selected topics in electrical engineering, usually relating to new developments. Directed Group Study for Advanced Undergraduates: Read More [+]
Additional Format: To vary with section.
Directed Group Study for Advanced Undergraduates: Read Less [-]
Terms offered: Summer 2024 10 Week Session, Spring 2023, Fall 2018 Supervised independent study. Enrollment restrictions apply. Supervised Independent Study: Read More [+]
Department of electrical engineering and computer science.
253 Cory Hall
Phone: 510-664-4436
https://cdss.berkeley.edu/
Phone: 510-642-3214
Fax: 510-643-7846
http://www.eecs.berkeley.edu/
Claire Tomlin, PhD
721 Sutardja Dai Hall
Phone: 510-643-6610
574 Cory Hall
Phone: 510-642-6251
Susanne Kauer
221 Cory Hall
Phone: 510-642-3694
Antoine Davis
377 Soda Hall
Phone: 510-642-7214
Audrey Sillers
Phone: 510-664-7181
Charlene Duncan
349 Soda Hall
Phone: 510-642-2357
Cs scheduler.
Cindy Conners
Phone: 510-643-6002
Carol Marshall
Phone: 510-664-4600
Javier Garcia
Phone: 510-664-5230
When you print this page, you are actually printing everything within the tabs on the page you are on: this may include all the Related Courses and Faculty, in addition to the Requirements or Overview. If you just want to print information on specific tabs, you're better off downloading a PDF of the page, opening it, and then selecting the pages you really want to print.
The PDF will include all information unique to this page.
Jennifer considers herself a lifelong learner with a growth mindset and an innate curiosity.
Computer science involves the design, development, and maintenance of software and hardware systems. Computer science also encompasses the study of algorithms, data structures, and programming languages.
In addition to covering all of the topics above, computer science courses also often include a project component, which gives students the opportunity to apply what they have learned to a real-world problem.
Computer science courses are an excellent way for students to develop the skills that are necessary for a career in computer science as a computer scientist , software developer , or computer programmer .
There are many reasons why someone would want to get certified in their field. For some, it is required by their employer. For others, it is a way to show their dedication to their chosen profession.
And still, others see it as a way to improve their marketability and earn a higher salary. But not everyone can afford to pay for a certification course or coding bootcamp . Fortunately, there are many free and low-cost courses available that can provide the same benefits.
Some of the reputable online resources that offer computer science courses include Coursera, Udacity, and edX. edX offers self-paced computer science courses that cover topics like object-oriented programming and penetration testing .
Udacity has a popular introductory course on Python . If you’re looking for something a little more in-depth, IBM offers a full-stack developer course on Coursera.
The courses are self-paced, and there is typically a certification fee upon completion. These courses can help you learn the basics of computer science and get started in your career.
Free intro to python.
Ibm full stack software developer professional certificate.
Introduction to object-oriented programming with java iii.
In the world we live in today, technology is constantly evolving and changing. Computer science is the study of how computers work and how they can be used to solve problems.
It is a rapidly growing field that offers many opportunities for those who are interested in it.
There are many reasons why someone might want to study computer science. For one, it is a rapidly growing field with many job opportunities. Computer science graduates are in high demand, and the salaries for computer science jobs are usually very good.
Additionally, studying computer science can give you a better understanding of how computers work and how to use them effectively.
If you’re considering studying computer science, there are many things to consider. However, overall, it is a field with great potential for those who are interested in it.
With the right skills and knowledge, you can have a successful career in computer science.
With so many computer science courses available, it can be tough to decide which ones to take. This article will list the best types of computer science courses to help you make the most of your education.
Through these courses, students gain an understanding of fundamental computer science concepts. They also learn how to apply these concepts to real-world scenarios. Graduates of computer science courses are highly sought-after by employers.
So if you’re looking to boost your employability, consider enrolling in a computer science course. You’ll gain invaluable skills that will help you excel in your career.
Computer science courses are ideal for individuals interested in technology, problem-solving, and software development. They are suitable for those looking to pursue careers in IT, software engineering, data analysis, and more.
These courses cover a wide range of topics, including programming languages, software development, algorithms, data structures, database management, artificial intelligence, and network security.
The duration varies depending on the course’s depth and complexity. Introductory courses might last a few weeks, while degree programs can take several years to complete.
Prerequisites vary by course level. Beginner courses might require basic math skills, while advanced courses may need prior knowledge in programming or related fields.
Graduates can pursue various roles, such as software developers , systems analysts, data scientists , and network architects, among others, in diverse industries like technology, finance, healthcare, and government.
Related discussions.
Last reply 2 weeks ago
Last reply 3 weeks ago
Last reply 4 weeks ago
Last reply 1 month ago
Last reply 2 months ago
How to revise for GCSE Computer Science exams: AQA explains what to do
Students react after GCSE Computer Science Paper 1 on 15 May 2024
Students react after GCSE Computer Science Paper 2 on 21 May 2024
These YouTubers can help get your exam revision on track
The M.S. in Computer Science offers students with a bachelor's degree the opportunity to improve their training with advanced study in computer science.
We cater to students with basic analytic skills and a strong aptitude for mathematics, programming, and logical reasoning. You don’t need a bachelor’s degree in computer science specifically for the program, but a technical undergraduate background will set you up for success.
Our program isn’t based on a fixed set of courses. Instead, you’ll construct your own course of study, in consultation with your advisor. The program requires only coursework; research is optional, though approximately a third of our students have some research involvement during the course of their studies, and there is a thesis option.
Most students will complete the program in three semesters, but if you’re switching to computer science from another field, you may need an additional semester to fill gaps in your undergraduate training. The M.S. program is distinct from the Ph.D. program in computer science, and master's students will not usually continue into the Ph.D. program and will not receive preferential treatment if they apply.
You must complete six broad requirements:
Pass* 96-108 units in qualifying master’s courses from the curriculum list in the MSCS Handbook . This is typically eight courses.
Pass up to 12 MSCS elective units.
Pass one course from the available Systems courses. (counts toward Qualifying unit)
Pass one course from the available Theoretical Foundations courses. (counts toward Qualifying unit)
Pass one course from the available Artificial Intelligence courses. (counts toward Qualifying unit)
Maintain a 3.0 QPA.
(* "Passing” is considered receiving a letter grade of C or higher.)
Some students may need to take additional courses that do not satisfy any program requirement, in order to satisfy pre-requisites for other courses. For example, most students will be expected to take 15-213/513 (Introduction to Computer Systems).
15-213/513 can be taken over the Internet during the summer, and new master’s students are encouraged to do so before they arrive. Students who completed their undergraduate work at CMU can apply up to two courses taken as an undergraduate toward requirements for the M.S., provided the two courses were not previously used to satisfy any requirement.
You can see a detailed description of the program's requirements and curriculum in our MSCS Handbook .
How to Apply
For questions specific to the Master of Science in Computer Science (MSCS) please email: [email protected]
IMAGES
COMMENTS
Introduction. This exemplar material serves as a general guide. It provides the following benefits to a teacher: Gives teachers an appreciation of the variety of work that can be produced for this unit. Shows how the mark scheme has been applied by a senior assessor. Provides examples of both good and weak application of different parts of the ...
Are you looking for the best introductions to computer science? I've ranked the top courses available online, following a robust methodology. And they're all free to audit. You can read about it below. But if you're in a hurry, here are my top picks. Click on one to skip to
Learn select topics from computer science - algorithms (how we solve common problems in computer science and measure the efficiency of our solutions), cryptography (how we protect secret information), and information theory (how we encode and compress information).
Get access to our online database of Computer Science Coursework writing samples. All the documents are authentic, quality, and plagiarism-free. ⭐️ Find the Best Examples
This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently.
Get started in Computer Science (CS) with Codecademy's courses & tutorials. Excel in algorithms, data structures, and programming languages.
Coming up with a good A-Level Computer Science NEA project idea can be hard... Check out all these project ideas that'll kick start your brain into action!
This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently.
This document is an example of a coursework (Programming Project) done for A level Computer Science with OCR. It follows the 2015 specification.
SBC refers to the following (five) categories: HUM, SBS, ARTS, USA, GLO Students may satisfy the Pursue Deeper Understanding and Prepare for Life-Long Learning categories of the SBC by completing CSE 300 and one of the following course clusters: CSE 305, 308 CSE 306, 308
Sample schedules and plans of study. Here are some suggested paths for the the Computer Science concentration based on the new (Fall 2021) concentration requirements. These are just examples: there are many possible pathways through the degree. Interested students should consult with the Director of Undergraduate Studies for guidance.
Berkeley emphasizes the science of computer science, which means much more than just computer programming. It includes the theory of computation, the design and analysis of algorithms, the architecture and logic design of computers, programming languages, compilers, operating systems, scientific computation, computer graphics, databases ...
Looking to learn the basics of computer science? Check out this list of available computer science courses.
4. Hello, could anyone share Y13 Computer Science projects from last year as an example for what I should/should not do. I am asking because my teacher doesnt have any examples due to the fact that this NEA is brand new and was first examined last year I think. It would be appreciated if you shared pre 2016 example projects, too!
M.S. in Computer Science. We cater to students with basic analytic skills and a strong aptitude for mathematics, programming, and logical reasoning. You don't need a bachelor's degree in computer science specifically for the program, but a technical undergraduate background will set you up for success.
S C S SCSatCMU B.S. IN COMPUTER SCIENCE Note: For Students with AP Computer Science or College Credit in Introductory Programming and AP Calculus, AB or college credit for Calculus I.