Within computer science, there are so many different disciplines to discover. After taking introductory CS classes, you still may not know which discipline to pursue, or maybe you don’t know how to explore them at Berkeley. But fear not! This guide will give an overview of the different disciplines as well as the related clubs, classes, and research opportunities at Berkeley.
Web & Mobile Development
Web development involves creating websites that fulfill and maintain functionality. On the other hand, mobile development involves developing mobile apps (iOS, Android) and optimizing websites for the mobile experience. Industry-wise, these two disciplines are split into frontend, backend, and fullstack. Frontend is the user interface on a webpage, meaning what the user interacts with. Common languages used include HTML, CSS, and JavaScript. Backend is the component of the system that isn’t seen by the user. It involves the server-side that stores/arranges data and supports the frontend. Common languages for backend development include PHP, C++, Java, Python, JavaScript, and Node.js. Fullstack is the development of both frontend and backend.
- Clubs
- Courses/Decals
- Web Design Decal
- CS 169: Software Engineering
Systems & Infrastructure
Computer infrastructure is the building and running of large scale software systems, which are the foundations of applications and networks. There are several subdisciplines of computer infrastructure, including cloud computing, systems design, computer networking, and cybersecurity.
Cloud Computing
Delivering various computing services (i.e. storage, servers, and applications) over the Internet, removing the need to physically install and maintain these services
- Courses/Decals
- Cloud Computing and Software as a Service Decal
- CS 198-059: Applications of Cloud Computing
Systems Design
Designing various elements of a system (architecture, interface, components) to meet user requirements and allow for scalability
- Courses/Decals
- CS 162: Operating Systems and System Programming
- CS 186: Introduction to Database Systems
- CS 152: Computer Architecture and Engineering
- Research
Computer Networking
Designing and managing a network of computing devices (laptops, smartphones, etc.) to allow them to communicate with one another and share data
- Clubs
- Open Computing Facility (OCF)
- Courses/Decals
- CS 168: Introduction to the Internet: Architecture and Protocols
- Research
Computer Networking
Protecting computer systems as well as the data/information they store from theft, damage, or unauthorized use
- Clubs
- BERKE1337 Computer Security Team
- Courses/Decals
- CS 161: Computer Security
- CS 171: Cryptography
- Research
- Berkeley Laboratory for Usable and Experimental Security (BLUES)
- Security Group (faculty, labs/centers, more courses)
Machine Learning and Artificial Intelligence
Artificial intelligence (AI) involves creating systems designed to think and act human-like. This allows systems to be capable of performing tasks that typically require human intelligence. While AI and machine learning (ML) are terms often used interchangeably, ML is a subset of AI that allows systems to learn and optimize processes without having to be specifically programmed to do that task. These machines take large amounts of data, process it through algorithms, then learn from the data (patterns, anomalies, etc).
- Clubs
- Courses/Decals
- CS 188: Intro to Artificial Intelligence
- CS 189/289A: Intro to Machine Learning
- CS 182: Designing, Visualizing & Understanding Deep Neural Networks
- CS 194-026: Intro to Computer Vision & Computational Photography
- CS 194-035: Data Engineering
- CS 194-080: Full Stack Deep Learning
- EECS 126: Probability & Random Processes
- EECS 127: Optimization Models in Engineering
- CS 184: Foundations of Computer Graphics
- More
- Research
General CS Resources
Outside of Berkeley’s courses/clubs/research, there are many other opportunities to explore computer science! Hackathons are a great way to explore different areas within tech through your own projects! Attend our very own CalHacks and apply for Cubstart, a starter course meant to inspire ideas and get you hacking. You can also explore a multitude of online courses and get hands-on with sites such as Udemy, freeCodeCamp, LinkedIn Learning, etc. Even if you still haven’t found your specific passion yet, don’t worry! Keep trying new things and you’ll find it!
If you would like to see examples and learn more on this topic, check out our EECS Disciplines 101 Workshop slides. For more information about the research areas within EECS, check out this link, where you can find more related classes and research labs.
About the Author
Jackie is a freshman studying EECS, who is passionate about closing the gender gap in tech and tackling issues related to climate change. She enjoys baking, crossing things off her bucket list, running, and collecting stationery.
LinkedIn: https://www.linkedin.com/in/jackiejroche/
Instagram: @jacketroche
Credits
Graphic credits to Emily Mistica – Publicity Officer.