-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBerkeley.txt
65 lines (65 loc) · 26.2 KB
/
Berkeley.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
MATH 1A Calculus This sequence is intended for majors in engineering and the physical sciences. An introduction to differential and integral calculus of functions of one variable, with applications and an introduction to transcendental functions.
MATH 1B Calculus Continuation of 1A. Techniques of integration; applications of integration. Infinite sequences and series. First-order ordinary differential equations. Second-order ordinary differential equations; oscillation and damping; series solutions of ordinary differential equations.
MATH 53 Multivariable Calculus Parametric equations and polar coordinates. Vectors in 2- and 3-dimensional Euclidean spaces. Partial derivatives. Multiple integrals. Vector calculus. Theorems of Green, Gauss, and Stokes.
COMPSCI 70 Discrete Mathematics and Probability Theory 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.
EECS Lower Division Core
Code Title
EECS 16A Designing Information Devices and Systems I 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.
EECS 16B Designing Information Devices and Systems II 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.
COMPSCI 61A The Structure and Interpretation of Computer Programs 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.
COMPSCI 61B Data Structures 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.
or COMPSCI 61BL Data Structures and Programming Methodology The same material as in 61B, but in a laboratory-based format.
COMPSCI 61C Great Ideas of Computer Architecture (Machine Structures) 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.
or COMPSCI 61CL Machine Structures (Lab-Centric) The same material as in 61C but in a lab-centric format.
Upper Division EECS Electives
Code Title
Select a minimum of 20 units of upper division EECS courses. 7
At least one of the courses must be a design elective. Select from the following design courses:
EL ENG C128 Feedback Control Systems [4] 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.
EL ENG 130 Integrated-Circuit Devices [4] 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.
EL ENG 140 Linear Integrated Circuits [4] 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.
EL ENG 143 Microfabrication Technology [4] 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.
EL ENG 192 Mechatronic Design Laboratory [4] 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.
COMPSCI 160 User Interface Design and Development [4] 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.
COMPSCI 161 Computer Security [4] 6 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.
COMPSCI 162 Operating Systems and System Programming [4] 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.
COMPSCI 164 Programming Languages and Compilers [4] 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.
COMPSCI 169 Software Engineering [2-4] Ideas and techniques for designing, developing, and modifying large software systems. Function-oriented and object-oriented modular design techniques, designing for re-use and maintainability. Specification and documentation. Verification and validation. Cost and quality metrics and estimation. Project team organization and management. Students will work in teams on a substantial programming project.
or COMPSCI 169A Introduction to Software Engineering 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.
or COMPSCI 169L Software Engineering Team Project 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 & integration.
or COMPSCI W169A Software Engineering 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.
COMPSCI 182 Designing, Visualizing and Understanding Deep Neural Networks [4] 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.
or COMPSCI L182 Designing, Visualizing and Understanding Deep Neural Networks 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.
or COMPSCI W182 Designing, Visualizing and Understanding Deep Neural Networks 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.
COMPSCI 184 Foundations of Computer Graphics [4] 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.
COMPSCI 186 Introduction to Database Systems [4] 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.
or COMPSCI W186 Introduction to Database Systems 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.
EECS C106A Introduction to Robotics [4] 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.
EECS C106B Robotic Manipulation and Interaction [4] This course is a sequel to EECS C106A/Bioengineering C106A, 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.
EECS 149 Introduction to Embedded Systems [4] 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.
"EECS 151
& 151LA" "Introduction to Digital Design and Integrated Circuits
and Application Specific Integrated Circuits Laboratory" 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.
"or EECS 151
& 151LB" "Introduction to Digital Design and Integrated Circuits
and Field-Programmable Gate Array Laboratory" 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.
Technical Elective: 4 units2
Ethics Requirement
Code Title
Select one course from the following:
BIO ENG 100 Ethics in Science and Engineering 5 The goal of this semester course is to present the issues of professional conduct in the practice of engineering, research, publication, public and private disclosures, and in managing professional and financial conflicts. The method is through historical didactic presentations, case studies, presentations of methods for problem solving in ethical matters, and classroom debates on contemporary ethical issues. The faculty will be drawn from national experts and faculty from religious studies, journalism, and law from the UC Berkeley campus.
COMPSCI 195 Social Implications of Computer Technology 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.
COMPSCI H195 Honors Social Implications of Computer Technology 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.
DATA C104 Human Contexts and Ethics of Data - DATA/History/STS 5 This course teaches you to use the tools of applied historical thinking and Science, Technology, and Society (STS) to recognize, analyze, and shape the human contexts and ethics of data. It addresses key topics such as doing ethical data science amid shifting definitions of human subjects, consent, and privacy; the changing relationship between data, democracy, and law; the role of data analytics in how corporations and governments provide public goods such as health and security to citizens; sensors, machine learning and artificial intelligence and changing landscapes of labor, industry, and city life. It prepares you to engage as a knowledgeable and responsible citizen and professional in the varied arenas of our datafied world.
ENE,RES C100 Energy and Society 5 Energy sources, uses, and impacts: an introduction to the technology, politics, economics, and environmental effects of energy in contemporary society. Energy and well-being; energy in international perspective, origins, and character of energy crisis.
ENGIN 125 Ethics, Engineering, and Society 5 How should engineers analyze and resolve the ethical issues inherent in engineering? This seminar-style course provides an introduction to how theories, concepts, and methods from the humanities and social science can be applied to ethical problems in engineering. Assignments incorporate group and independent research designed to provide students an opportunity to contribute novel findings to the emerging field of engineering ethics while building their analytical and communication skills. This course cannot be used to fulfill any engineering technical requirements (units or courses).
ENGIN 157AC Engineering, The Environment, and Society 5 This course engages students at the intersection of environmental justice, social justice, and engineering to explore how problems that are commonly defined in technical terms are at their roots deeply socially embedded. Through partnerships with community-based organizations, students are trained to recognize the socio-political nature of technical problems so that they may approach solutions in ways that prioritize social justice. Topics covered include environmental engineering as it relates to air, water, and soil contamination; race, class, and privilege; expertise; ethics; and engaged citizenship. This course cannot be used to complete any engineering technical unit requirements.
ENGIN 185 The Art of STEM Communication 5 This course provides engineering majors with the fundamental skills for effective technical communication. During the course of the semester, students will develop communications for public dissemination, covering a project or initiative within UC Berkeley’s College of Engineering. This work will call on students to: (a) cultivate interest in a broad range of topics related to Engineering; (b) become an engaged and critical reader of academic and general-interest science publications; (c) learn how to assess, plan for, and respond to a variety of communicative situations; (d) produce focused, and at the same time, narratively-rich, accounts of Engineering research.
HISTORY C184D Human Contexts and Ethics of Data - DATA/History/STS 5 This course teaches you to use the tools of applied historical thinking and Science, Technology, and Society (STS) to recognize, analyze, and shape the human contexts and ethics of data. It addresses key topics such as doing ethical data science amid shifting definitions of human subjects, consent, and privacy; the changing relationship between data, democracy, and law; the role of data analytics in how corporations and governments provide public goods such as health and security to citizens; sensors, machine learning and artificial intelligence and changing landscapes of labor, industry, and city life. It prepares you to engage as a knowledgeable and responsible citizen and professional in the varied arenas of our datafied world.
IAS 157AC Engineering, The Environment, and Society 5 This course engages students at the intersection of environmental justice, social justice, and engineering to explore how problems that are commonly defined in technical terms are at their roots deeply socially embedded. Through partnerships with community-based organizations, students are trained to recognize the socio-political nature of technical problems so that they may approach solutions in ways that prioritize social justice. Topics covered include environmental engineering as it relates to air, water, and soil contamination; race, class, and privilege; expertise; ethics; and engaged citizenship. This course cannot be used to complete any engineering technical unit requirements.
INFO 88A Data and Ethics This course provides an introduction to critical and ethical issues surrounding data and society. It blends social and historical perspectives on data with ethics, policy, and case examples to help students develop a workable understanding of current ethical issues in data science. Ethical and policy-related concepts addressed include: research ethics; privacy and surveillance; data and discrimination; and the “black box” of algorithms. Importantly, these issues will be addressed throughout the lifecycle of data--from collection to storage to analysis and application. Course assignments will emphasize researcher and practitioner reflexivity, allowing students to explore their own social and ethical commitments.
ISF 100D Introduction to Technology, Society, and Culture 5 This course surveys the technological revolutions of the 19th and 20th centuries, it then focuses on the development of the computer and the Internet. The final part examines the impact of the Internet on social movements.
ISF 100G Introduction to Science, Society, and Ethics 5 This interdisciplinary course will explore whether it has proven possible and desirable to understand society through value-free and positivistic scientific methods as predominantly developed in the transatlantic worlds of the 19th centuries. We shall explore questions that may be applied to the realms of public health and human biology, or to the social sciences generally, including anthropology, sociology, economics, and political science.
NWMEDIA 151AC Transforming Tech: Issues and Interventions in STEM and Silicon Valley 5 In this course, we will study major tech industry controversies and heavily criticized tech products, policies, and effects, including technologies used at the U.S.-Mexico border, social media platforms’ spread of disinformation and fake news, racial bias in algorithms, and internet trolling and harassment. We will also examine tech companies’ long-running tendency to exclude women and non-Asian minorities, and how tech workers have occasionally come under fire for the industry’s harms. Students will be required to brainstorm and design their own interventions into the workings of the tech sector to make it more inclusive, equitable, and diverse.
PUB POL C184 Energy and Society 5 Energy sources, uses, and impacts: an introduction to the technology, politics, economics, and environmental effects of energy in contemporary society. Energy and well-being; energy in international perspective, origins, and character of energy crisis.
STS C104D Human Contexts and Ethics of Data - DATA/History/STS 5 This course teaches you to use the tools of applied historical thinking and Science, Technology, and Society (STS) to recognize, analyze, and shape the human contexts and ethics of data. It addresses key topics such as doing ethical data science amid shifting definitions of human subjects, consent, and privacy; the changing relationship between data, democracy, and law; the role of data analytics in how corporations and governments provide public goods such as health and security to citizens; sensors, machine learning and artificial intelligence and changing landscapes of labor, industry, and city life. It prepares you to engage as a knowledgeable and responsible citizen and professional in the varied arenas of our datafied world.