Double Major and Major/Minor Information
This page is about double majoring or major/minoring in physics and another discipline. For more information about the requirements for completing the physics major and minor, see How to major/minor in physics.
Why double major?
Broadly speaking, since the physics major itself is already pretty heavy on classes (compared to most majors), choosing to double major will likely result in spending most of your time completing requirement classes for both majors and not much time for electives in each. However, one would certainly gain requisite knowledge in both fields for specialization later on, if one wishes to do so (perhaps in grad school). The choice is ultimately up to you, your interests and your post-grad plans.
In this page, we will explore some of the more common choices of double major with physics.
Astrophysics
Computer Science
Lower Division: In order to declare the computer science major, you must complete the following lower-division requirements.
CS 61A: The Structure and Interpretation of Computer Programs
CS 61B: Data Structures
CS 61C: Machine Structures
CS 70: Discrete Mathematics and Probability Theory
EE16A: Designing Information Devices and Systems I
EE16B: Designing Information Devices and Systems II
Along with Math 1A and Math 1B. To declare the CS major, one needs at least a 3.30 GPA average in CS61A, CS61B, and CS70.
Upper Division:
There is a large number of choices of upper divs to take for the CS major, and in general the order in which you take the classes are flexible.
View their department website for exact details on the upper div requirement.
Note that all physics technical upper div electives qualify to satisfy the 7 units of Upper Division Technical Electives.
Here is a non-comprehensive list of popular upper division classes, ordered by course number. The bolded ones tend to be the most popular:
- CS 161: Computer Security
- 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.
- CS 162: Operating Systems and System Programming
- 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.
- CS 170: Efficient Algorithms and Intractable Problems
- This class teaches the design and analysis of algorithms, NP-completeness, intractable problems, etc. A challenging but very rewarding class.
- CS 184: Foundations of Computer Graphics
- 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.
- CS 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.
- CS 188: Introduction to Artificial Intelligence
- 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.
- CS 189: Introduction to Machine Learning
- 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.
Mathematics
Berkeley offers both the Applied Math and Pure Math majors. Within Applied Math, there is a great deal of flexibility in potential electives, in the form of 'clusters'. Pure Math is basically a cluster of applied math, i.e. a different set of potential electives. In fact, it is possible to take the exact same minimal amount of courses as both a Pure or Applied Math major. To be honest it is not clear why it is a separate major and not just a cluster within Applied Math. Therefore, perhaps it is best to just take what Math classes you find interesting and see what cluster/ major you end up becoming (along with some planning, of course).
Lower Division:
Most of the overlap with physics comes from the lower division requirements. Both majors require Math 1A, Math 1B, and Math 53. A 5 on AP Calculus BC can wave Math 1A and Math 1B. Math majors who are planning to either major or minor in physics are allowed to replace Physics 89 with Math 54. However, Physics majors who are minoring in math may not. Math majors must also take Math 55.
Upper Division:
If you are considering taking Math courses, it is perhaps best to time your semesters (if possible) to take certain courses before others. This is NOT AT ALL needed, but in an ideal world it may be preferable to take:
Math 110 before/with Physics 137A
Math 113: Abstract Algebra before/with Physics 137A/B
Math 104: Real Analysis
Math 185: Complex Analysis before/with Physics 110B
Semi-Electives:
Pick 1 class from 2 of the following 3 categories:
Computing: Math 124 Programming for Mathematical Applications or Math 128A Numerical Analysis
Geometry: Math 130 Classical Geometries, Math 140 Metric Differential Geometry, Math 141 Elementary Differential Topology, Math 142 Elementary Algebraic Topology, or Math 143 Elementary Algebraic Geometry
Logic and Foundations: Math 125A Intro to Logic, Math 135 Intro to Theory of Sets, Math 136 Incompleteness and Undecidability