Happy to say that I got into my dream school since junior high - UC Berkeley! (Strangely rejected by Irvine, San Diego, and LA) I’ll be going into the College of Letters and Science, where my intended major will be Computer Science.
Just a few questions:
How can I best prepare for my freshman prerequisite courses for CS? I know Berkeley, especially their CS program, has a reputation for very hard, stressful intro classes; I want to avoid that as much as possible. Is there any summer online courses or books I can go through?
Just how difficult is their CS program?
What does a 3.3 GPA exactly mean to declare a major? In high school this would mean an unweighted GPA of mostly B's, what about at Berkeley? What happens if I don't meet that GPA to declare CS?
How can I maximize my freshman experience at Berkeley? Any things/tips I should look out for?
Senior year right now.... I'm being extremely lazy and erring on bad study habits. I'll have to rebuild them over this summer :P What study habits/routines especially worked for you at Berkeley and how should I best approach my studies?
Thank you so much for taking the time to read this! I’d really appreciate any and all advice!
The best preparation for intro CS at Berkeley is taking an early look at intro CS at Berkeley. Assuming you plan to go straight into the major prerequisites, I'd recommend looking over the first few weeks of CS 61A (http://cs61a.org/). There are also two "pre-61A" courses at Berkeley - CS 10, a general introduction to CS which is less technical than 61A, and CS/Data 8, an introductory course focused on data science. You could also look over resources for those classes. If you don't have summer plans, both courses are being taught in the summer bridge program - I might be teaching the Data 8 offering, so I'd encourage you to consider taking it :) link - http://slc.berkeley.edu/course-offerings
The CS program is fairly difficult, though perhaps easier than programs at a few other colleges (such as MIT), and probably easier than a few other Berkeley majors, such as Math. Overall, I would say that you'll know if you can handle it by the time you finish the three prereqs - if you can get a 3.3 in them, you can probably handle the upper-division courses (that's one of the reasons that that's the requirement to declare).
The 3.3 prerequisite for declaring CS refers to a requirement covering three specific courses - CS 61A, CS 61B, and CS 70. Berkeley has no grade weighting, and grades on the following scale: A+/A: 4, A-: 3.7, B+: 3.3, B: 3, B-: 2.7, etc. Those three courses are each four units, so the requirement is pretty simple - you need to average a B+ between the three of them. I'd say the most common method of taking the three courses is to take 61A first semester, 61B second, and 70 third, allowing you to focus on each prereq course in turn and declare at the end of your third semester. Many CS students also take EE16A, EE16B, and CS61C along with those three courses over their first three semesters, finishing all the lower-division requirements at the end of their third semester. More info available here - https://eecs.berkeley.edu/academics/undergraduate/cs-ba
Uhh... don't be afraid to try new things, get involved with a few student clubs/activities, all the basic stuff. Research before choosing your dorm. Get involved with the department - consider doing research or working as a TA. Talk to your professors.
These are pretty much what anyone would say, but...
Don't be afraid to go to office hours, both your GSIs' and your professors'. Even after four years, I am still sometimes surprised at how much more I can learn just coming to office hours and asking my GSI than from trying to learn by reading textbooks or online resources.
The most efficient (probably not best, but most efficient) way to study for exams is by doing past exams. Test banks such as the TBP test bank (https://tbp.berkeley.edu/courses/cs/61A/) are your friend. When I only have 6 hours to study for a midterm, I'll often just take the past 4 midterms from that class, as opposed to watching lectures or looking at my (nonexistent) notes.