General Tips #
No Prior Coding Experience #
If you haven’t coded before starting this course, you can still succeed, but it will be quite significantly harder. CS61A is not an easy course at all (even for those with a lot of programming experience), so it’s very important to make sure that you understand how to think computationally.
To do this, make sure to go to office hours regularly if you ever feel unsure about homework/lab problems. Some concepts learned in 61A are extremely difficult for first time programmers (for example higher order functions and recursion), so be sure to get practice in and get used to these concepts.
Also, please show up to labs and discussions. Your GSIs will have quite a lot of information they can share about how to tackle certain problems, or maybe give you another way of thinking when it comes to solving questions based on classes/recursion etc. In particular, labs are incredibly useful to show up to, especially after a few weeks. This is mainly because you can use labs as time to ask your GSI or the various AIs about projects and homework (not just labs!), which can give you more practice and just new perspectives of solving problems. Labs also get quite a bit less crowded after a few weeks (people don’t tend to show up to them) so you’ll have plenty of time to go over the problems you want to go over.
Applies to Everyone #
Make sure to do everything early - whether it be projects, homework, or lab assignments (alternatively you can choose to do lab assignments during your lab section, but I still recommend doing them earlier and asking for lab help from the beginning if you need it). Office hours are significantly more free during the start of projects or homework assignments, so if you start early and encounter a problem earlier, you’ll be able to join the office hours queue and not have to wait as long to get your ticket resolved.
Additionally, aim to finish everything including all the extra credit (available to everyone). I’d honestly recommend treating the extra credit deadlines as the real deadlines - the points are seriously incredibly important if you want to do well in this class even if it may not seem like many points. I’ve also found that starting things early and chipping in bit by bit (or even starting early and finishing everything in a day) is very useful in terms of helping yourself time manage - try it for yourself and see if you get similar results.
This isn’t as important if you have programming experience, but make an effort to show up to all discussions and labs. They’re very useful for getting tips on solving exam problems (which make up the bulk of the place where you can lose points in this course).
Speaking of which try to get as many points as you can off of projects/labs/homework to maximise the points you can lose in exams to still get the letter grade you need.
Drop Deadline #
If you don’t feel comfortable with the core concepts and foundations of CS61A after your first midterm, you will still have time to drop the class and take it next semester when you’re ready.
One thing I’d recommend doing if you’re feeling like dropping out of CS61A is to first take CS10 (which should take everyone from the waitlist) and then learn the basics of computational thinking in a far slower-paced course, then returning to CS61A afterwards. Data 8 is also not too bad in getting people prepared for CS61A, but it doesn’t prepare you as well compared to CS10 because it doesn’t go over recursion and higher order functions (both of which are somewhat difficult concepts to understand in CS61A).
Projects #
For project partners, aim to find someone of your own skill level so you both manage to code stuff. Whatever you do, make sure not to get carried by someone - it’s detrimental to your success not only in CS61A, but also in future CS courses. In fact, I think practice in CS61A is so important that I’d honestly recommend doing at least the first three projects by yourself if you can handle it; the practice you get from doing them solo is well worth the cost.