Education
University of California, Berkeley, December 2024.
Degrees
- B.S. Electrical Engineering and Computer Science (EECS)
- B.S. Mechanical Engineering
Courses
Computer Science & EECS
CS 61AThe Structure and Interpretation of Computer ProgramsMechanical Engineering
ME 40ThermodynamicsMathematics & Physics
MATH 53Multivariable CalculusGeneral Engineering
ENGIN 7Introduction to Computer Programming for Scientists and EngineersCourse Descriptions
Descriptions are from the official UC Berkeley catalog.
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 same material as in 61B, but in a laboratory-based format.
The catalog describes CS 61B (Data Structures) as: 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.
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.
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.
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.
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.
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.
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.
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.
This course offers an introduction to signals, systems, optimization, controls, and machine learning, all grounded in linear algebraic techniques. After a brief review of linear algebra, students will delve into topics such as signal processing, linear systems, feedback control, optimization methods, and foundational machine learning algorithms. Emphasizing practical applications, the course prepares EECS majors for advanced study by connecting mathematical concepts to real-world engineering problems.
The catalog now lists this course as “Foundations of Signals, Dynamical Systems, and Information Processing”. The description above is from the current catalog.
This course teaches the fundamentals needed to predict the behavior of real-world electronic phenomena and applications via mathematical models and circuit analytical methods that simplify initially complex problems, rendering them solvable and understandable. Among the specific topics to be covered are time and frequency domain representation, complex arithmetic, phasor analysis of systems governed by differential equations, Kirchhoff’s laws, physical examples of electronic elements and devices, RLC circuits, op amp-based signal processors, feedback methods, and circuit models for domains beyond the electronic. Class contact time includes lectures, discussions, and a laboratory component designed to help solidify learned concepts.
The catalog now lists this course as “Introduction to Circuits & Devices”. The description above is from the current catalog.
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.
This course introduces the scientific principles that deal with energy conversion among different forms, such as heat, work, internal, electrical, and chemical energy. The physical science of heat and temperature, and their relations to energy and work, are analyzed on the basis of the four fundamental thermodynamic laws (zeroth, first, second, and third). These principles are applied to various practical systems, including heat engines, refrigeration cycles, air conditioning, and chemical reacting systems.
A review of equilibrium for particles and rigid bodies. Application to truss structures. The concepts of deformation, strain, and stress. Equilibrium equations for a continuum. Elements of the theory of linear elasticity. The states of plane stress and plane strain. Solution of elementary elasticity problems (beam bending, torsion of circular bars). Euler buckling in elastic beams.
Electronics and Electrical Engineering 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 offers a broad survey of Electrical Engineering ideas to non-majors. In the laboratory students will learn in-depth how to design and build systems that exchange information with or are controlled from the cloud. Examples include solar harvesters, robots, and smart home devices. In the course project, the students will integrate what they have learned and build an Internet-of-Things application of their choice. The course has a mandatory lab fee.
Introduction to design and realization of mechatronics systems. Micro computer architectures. Basic computer IO devices. Embedded microprocessor systems and control, IO programming such as analogue to digital converters, PWM, serial and parallel outputs. Electrical components such as power supplies, operational amplifiers, transformers and filters. Shielding and grounding. Design of electric, hydraulic and pneumatic actuators. Design of sensors. Design of power transmission systems. Kinematics and dynamics of robotics devices. Basic feedback design to create robustness and performance.
This course introduces students to modern experimental techniques for mechanical engineering, and improves students’ teamwork and communication skills. Students will work in a laboratory setting on systems ranging in complexity from desktop experiments with only a few instruments up to systems such as an internal combustion engine with a wide variety of sensors. State-of-the-art software for data acquisition and analysis will be introduced and used throughout the course. The role of error and uncertainty, and uncertainty propagation, in measurements and analysis will be examined. Design of experiments will be addressed through examples and homework. The role and limitations of spectral analysis of digital data will be discussed.
This course is an introduction to the dynamics of particles and rigid bodies. The material, based on a Newtonian formulation of the governing equations, is illustrated with numerous examples ranging from one-dimensional motion of a single particle to planar motions of rigid bodies and systems of rigid bodies.
This course introduces the fundamentals and techniques of fluid mechanics with the aim of describing and controlling engineering flows.
This course covers elastic and plastic deformation under static and dynamic loads. Failure by yielding, fracture, fatigue, wear, and environmental factors are also examined. Topics include engineering materials, heat treatment, structure-property relationships, elastic deformation and multiaxial loading, plastic deformation and yield criteria, dislocation plasticity and strengthening mechanisms, creep, stress concentration effects, fracture, fatigue, and contact deformation.
This course covers transport processes of mass, momentum, and energy from a macroscopic view with emphasis both on understanding why matter behaves as it does and on developing practical problem solving skills. The course is divided into four parts: introduction, conduction, convection, and radiation.
Physical understanding of automotive vehicle dynamics including simple lateral, longitudinal and ride quality models. An overview of active safety systems will be introduced including the basic concepts and terminology, the state-of-the-art development, and basic principles of systems such as ABS, traction control, dynamic stability control, and roll stability control. Passive, semi-active and active suspension systems will be analyzed. Concepts of autonomous vehicle technology including drive-by-wire and steer-by-wire systems, adaptive cruise control and lane keeping systems. Design of software control systems for an actual 1/10 scale race vehicle.
Physical understanding of dynamics and feedback. Linear feedback control of dynamic systems. Mathematical tools for analysis and design. Stability. Modeling systems with differential equations. Linearization. Solution to linear, time-invariant differential equations.
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.
This course provides preparation for the conceptual design and prototyping of mechanical systems that use microprocessors to control machine activities, acquire and analyze data, and interact with operators. The architecture of microprocessors is related to problems in mechanical systems through study of systems, including electro-mechanical components, thermal components and a variety of instruments. Laboratory exercises lead through studies of different levels of software.
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.
Basic linear algebra; matrix arithmetic and determinants. Vector spaces; inner product spaces. Eigenvalues and eigenvectors; orthogonality, symmetric matrices. Linear second-order differential equations; first-order systems with constant coefficients. Fourier series.
Heat, electricity, and magnetism.
Fundamentals of computer programming and numerical methods with emphasis on engineering applications. The first part of the course provides an accelerated introduction to programming in Python, suitable for novices and those with prior experience. Topics include control structures, functions, data types, data handling, and visualization. Some programming in MATLAB will also be introduced. The second part of the course introduces several numerical methods commonly used in engineering. These include solving nonlinear equations, numerically integrating and differentiating functions, solving systems of linear equations, and simulating dynamical systems using ordinary differential equations.
The catalog now lists this course as “Introduction to Computer Programming and Numerical Methods”. The description above is from the current catalog.
Three-dimensional modeling for engineering design. This course will emphasize the use of CAD on computer workstations as a major graphical analysis and design tool. Students develop design skills, and practice applying these skills. A group design project, design and fabrication (3D print) of the tower and rotor is required. Hands-on creativity, teamwork, and effective communication are emphasized.
An introduction to manufacturing process technologies and the ways in which dimensional requirements for manufactured objects are precisely communicated, especially through graphical means. Fundamentals of cutting, casting, molding, additive manufacturing, and joining processes are introduced. Geometric dimensioning and tolerancing (GD&T), tolerance analysis for fabrication, concepts of process variability, and metrology techniques are introduced and practiced. 3-D visualization skills for engineering design are developed via sketching and presentation of 3-D geometries with 2-D engineering drawings. Computer-aided design software is used. Teamwork and effective communication are emphasized through lab activities and a design project.