Transitioning to Computer Science at UC Berkeley

Our thoughts and advice on how to start off strong in college-level CS classes.

Codebase
Berkeley Codebase
6 min readDec 1, 2020

--

By Connie, Jane, Julia, Rachel, and Raymond

Photo by Doug Birnbaum

For many students, the transition from high school to college can seem pretty daunting. Along with the new experiences of living away from parents and meeting new friends, there’s also a general uncertainty concerning what to expect academically.

The truth is, there is no right or wrong way to transition into college. Everyone will adjust differently depending on their backgrounds and that’s fine! But, here is our take on Berkeley’s infamous introductory CS courses, such as CS 61A, and tips that may help you transition smoothly into them.

With that said, please take our words with a grain of salt since we are only a small group of students and our opinions are not representative of everyone’s!

Going into college, one thing you’ll discover is that everyone enters with varying levels of experience. Specifically among prospective CS majors, you might have peers who are just dipping their toes in CS, as well as others who had started coding in the womb. For a handful of students, high school was where their CS journey began — experiences such as taking AP Computer Science, participating in hackathons, doing internships, or even competing in the USA Coding Olympiad guide their college pursuits.

These prior experiences can be useful for setting a basic foundation in CS concepts, preparing you to complete large projects, and introducing algorithms, which can make the transition to college-level CS courses a bit smoother. They can also help give you a first look into what CS is all about, and introduce a CS-specific perspective of problem-solving.

It may be tempting to compare yourself to where others are academically, but believe us when we say that although having a head start in computer science might be helpful at the start, it in no way determines a student’s success in the longer term, both in college and beyond. Whether you’ve had prior CS experience or not, college-level courses will be a new stage of learning more breadth and depth for everyone. High school experiences may help with the first few weeks of an introductory CS course, but it becomes an even playing field for most students when the curriculum advances beyond foundational concepts.

At Berkeley, there’s a variety of introductory CS courses that are offered, each designed for students to be able to learn computer science at their own desired pace based on their experience and confidence in the field.

Perhaps most famous and popular is CS 61A (Structure and Interpretation of Computer Programs), an intro to CS course taught primarily in Python, but also in Scheme/Lisp and SQL. With up to 2000 students every semester, CS 61A is one of the lower division requirements for Computer Science, Data Science, and Cognitive Science in the College of Letters & Science as well as Electrical Engineering Computer Science in the College of Engineering. While it is typically the first CS class students take at Berkeley, there are other introductory programming courses. CS 10 (Beauty and Joy of Computing) and Data 8 (Foundations of Data Science) are both great alternative options for those newer to coding, especially since these introductory courses are specifically geared towards them. The former focuses on understanding the core concepts in computer science in a more abstract, welcoming environment, while the latter combines computer programming and statistical inference in a more data science-centric perspective. Another less common alternative is CS 88 (Computational Structures in Data Science), a less fast-paced alternative to CS 61A, covering largely the same material but without Scheme/Lisp.

Here are the course websites for all the introductory CS courses in case you’re interested in looking deeper into the concepts covered in each!

One of the most common questions that many new college students wonder about is how the experience of taking classes changes. There are many differences between CS classes in college and high school, the first of which concerns the format and presentation of the material. While high school typically presents material in the form of daily instruction and more individualized support from teachers, the content in college is usually more fast paced and packs many complex ideas into 2–3 shorter lectures a week. The rest of the learning happens largely during weekly or biweekly discussion sections, which offers more practice applying the material taught in lecture, or on your own, reading the textbook or using other supplemental resources.

Assignments in college CS classes consist primarily of weekly homework and labs, and 4–6 larger projects over the course of the semester. There are also a lot fewer exams than typical high school unit or chapter tests, with only 1–2 midterms and a final. Unlike in high school, past course exams are usually available on course websites (see above!) or test banks provided by honor societies such as Tau Beta Pi and Eta Kappa Nu.

Coming from high school, the general expectation is that you have to ace all exams and have a perfect GPA to be considered smart and successful, but this is definitely not true in college. Classes are usually graded by preset bins (you need x points for a specific grade) or on a curve (you need to be x standard deviations from the mean to get a certain grade), meaning that you may not always have an idea of what your grade will be until after you’ve finished the final exam. Because mastering college classes requires critical thinking and a deep understanding of the content (not just memorizing facts or doing a straightforward calculation), you may not get the scores on exams you are used to striving for in high school. It’s very common for college exam scores to be lower than what you may expect; don’t panic! This is completely normal, and all courses take the difficulty of their exams into account when determining the bins and curves. Many of us have struggled with changing our perspective of how we evaluate ourselves based on our grades, but college should teach you to embrace learning for the sake of learning and not only for the number on your transcript.

There are many available resources in college to help you learn the material, such as office hours held by both professors and teaching assistants (TAs) who are either grad students or undergrad students who had recently taken the course. In addition, there are various types of free, personalized tutoring available at Berkeley. Just to name a few, Computer Science Mentors (CSM) is a student organization which provides weekly small group discussion sections (4–6 students), and Eta Kappa Nu also holds tutoring hours every weekday. There are also 1-on-1 tutoring sessions available across campus provided by students taking CS 370, a course about teaching computer science that many TAs take. CS course staff also commonly provide additional resources such as exam prep discussion sections, guerrilla sections (focusing on a set of topics), or exam walkthrough and review sessions.

One of the biggest pieces of advice we can offer is to not be afraid to ask for help. College content is going to be much harder than the content you learn in high school, so it’s okay if you don’t get it the first time you learn about it in lecture. Take time to go to office hours with professors and TAs, ask questions during lecture or discussion (there are probably many people who have the same question you do and are scared to ask!), and form study groups where you can.

If a lot of this seems overwhelming to you, you’re definitely not alone! This feeling of not being sure of yourself and your capabilities is something that everyone at Berkeley experiences to some degree. But always keep in mind that your reservations are the only limitations of your potential and learning! Our advice may sound cliche, but we hope this is an assurance that you’ll be going down the same path and overcoming the same challenges that thousands of other students have experienced when transitioning to computer science in college.

--

--

Codebase
Berkeley Codebase

Software development @ UC Berkeley — Building a community for meaningful industry impact. https://codebase.berkeley.edu/