Double Major and Major/Minor Information: Difference between revisions

From Physics
Jump to navigation Jump to search
Line 12: Line 12:
'''Lower Division:'''
'''Lower Division:'''


CS61A
CS 61A <br>
CS61B
CS 61B <br>
CS61C
CS 61C <br>
CS 70
CS 70 <br>


EE16A
EE16A <br>
EE16B
EE16B


Math1A
Math1A <br>
Math1B
Math1B


To declare the CS major, one needs at least a 3.30 GPA average in CS61A, CS61B, and CS70.  
To declare the CS major, one needs at least a '''3.30''' GPA average in '''CS61A''', '''CS61B''', and '''CS70'''.  


'''Upper Division:'''
'''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 [https://eecs.berkeley.edu/resources/undergrads/cs/degree-reqs-upperdiv 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 are some popular choices of 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==
==Mathematics==

Revision as of 08:52, 27 April 2020

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:

CS 61A
CS 61B
CS 61C
CS 70

EE16A
EE16B

Math1A
Math1B

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 are some popular choices of 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 are allowed to replace Physics 89 with Math 54, but minors are 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

!!!!!!!!!!!!! Finish later

Math 113: Abstract Algebra

Math 104: Real Analysis

Math 185: Complex Analysis

Semi-Electives:

Pick 1 class from 2 of the following 3 categories:

Data Science

Economics