Advice from Former Students

Fall 2024 Summary

The end-of-semester survey asked Fall 2024 students what advice they would give to future students.

Here's the Gemini 2.0 Flash summary:

Prior Experience (Most Common Theme): Many responses emphasized the importance of prior programming experience or preparation:

  • "If you have no experience, consider taking CS10."
  • "Take a programming course prior to this if you haven't and really try to look beyond just syntax and basics, it will help you immensely to atleast be familiar with the language and ideas."
  • "To someone considering taking 61A with no coding background: you can do it. I had zero (and I mean zero) coding experience coming into 61A, and I felt like I was in a similar place in terms of understanding to other students who had coded before."
  • "I would recommend having prior coding experience"
  • "Make sure you have previous programming experience or understand the contents in AP CSA well before taking this class. It will be very challenging and time consuming if you are new to programming."
  • "Do not take this class if you don't have programming experience!"
  • "If you've never coded before, make sure to take an introductory course beforehand. It can be just a quick online introduction, but having no prior familiarity to cs concepts will make 61a exponentially more difficult"
  • "Need prior coding experience to succussed in this class."
  • "If you have no coding experience this is really hard"
  • "Make sure you are able to sufficiently do a CSA exam, and do their prep books over summer as its the best way to prep for the class especially if you don't come from a heavy CS background."
  • "Take CS10 or Data 8 before CS61a if you don't have programming experience, also watch videos before lectures"
  • "I took the class with absolutely no prior experience, and despite what everyone says, it is manageable."
  • "As someone who came into this class with virtually no formal coding experience, remember that it doesn't mean you can not do well in the class. You just need to be prepared to put much more work in than others who do have experience."
  • "If you have no experience, it's doable, undeniably hard, but doable."
  • "Be bold enough to try the course even if u had no prior coding experience like me!"
  • "Whether you've got Python programming experience or not, everyone's more-or-less in the same boat. Everyone is challenged in terms of developing logical solutions to questions, and the only added challenge for those without experience is learning the syntax... so if anything, just learn what the syntax does and leave the critical thinking skills to be developed by the class."

Lectures and Videos: A strong emphasis on using the provided video resources:

  • "Watch the lecture videos before the lectures or review them afterwards."
  • "Watch the videos. Definetely helps with understanding the lecture beforehand, and the reason why I was so lost during the second half of the semester."
  • "Go to lecture and watch the recordings; don't fall behind in the course"
  • "Hot take, but don't go to lectures, watch the recordings instead...pause the recording and make an honest attempt to solve it"
  • "Obviously watch the videos, try not to watch it at 2x speed (which is what I did and regret)...if you don't take time processing information, it will leave your brain by next morning"
  • "If you missed lecture for some reason, the lecture videos are an excellent way to recap. I have trouble focusing on hour-long videos, but Professor Denero's videos are rather excellent summaries."
  • "Watch the supplemental videos for the lectures, as they are where things are explained further."
  • "keep up with lectures, watch the videos, try to really understand everything along the way so it doesn't pile up at the end"
  • "ALWAYS watch the videos. They help so much - even if you don't go to a single lecture, the videos can carry you through this class."
  • "Watch videos before lecture"
  • "Make sure to watch lecture videos before the lectures, so that lectures can be utilized for asking questions and further understanding."
  • "Watch videos beforehand."
  • "WATCH DENERO VIDEOS AT THE BARE MINIMUM"
  • "Go to lecture and review it afterwards to make sure you have the concepts down"

Practice (Extremely Common): The most frequent advice was to practice extensively:

  • "Practice questions, practice exam"
  • "DO THE PRACTICE MIDTERMS!! This is the best way to prepare for exams and ensure that you have a good grasp on the material."
  • "Do lots of past exams"
  • "Make sure to stay on top of the assignments and do lots of practice exams before midterms"
  • "Practice with practice exams, but don't overwork yourself"
  • "Do lots of practice problems and tests. A problem solving class not language class."
  • "Practice exams are the most important part of studying for exams"
  • "Grind out the practice test and start assignments early."
  • "Complete all the assignments and do as many of the practice tests as you can before each assessment."
  • "keep practicing"
  • "Practice Practice Practice! So many things just come together once you practice."
  • "practice problems are your best friend!!"
  • "Grind practice problems. Finding solutions on a tight timeframe is all about recognizing typical problem structures and remembering the general form of the code to solve it."
  • "Stay on time with curriculum and do a lot of practice tests"
  • "Take practice exams two weeks in advance and do one everyday"
  • "practice exams"
  • "Practice more"
  • "practice on exam questions! make sure you know why it is, not just memorize it"
  • "Do the homework and practice A LOT!"
  • "Practice past exams and attend exam prep for midterms!"
  • "do as many practice exams as possible"
  • "Practice questions from past exams to do better on future exams"
  • "Do practice tests as practice!"
  • "take a lot of practice tests to prepare for midterms and attend tutoring sessions / office hours."
  • "Put most your effort on doing past exams and go to OH often."
  • "Review after lecture and make sure you understand everything, attempt all the homework and lab problems and think through them before going to office hours. Practice, practice, practice!!!"
  • "Just go through practice tests to fully understand the concepts."
  • "Practice tests, practice tests, practice tests... Its the only way!"

Other Resources (Office Hours, Collaboration, etc.): Utilizing available support systems was also frequently mentioned:

  • "go to lecture!!!"
  • "if you don't have any prior programming experience, register for CSM"
  • "Try to collaborate and with others and try to make friends within the class."
  • "Attend lab and make sure you understand how each program is structured"
  • "GO TO OFFICE HOURS."
  • "Make sure you don't fall behind and visit office hours when you need help."
  • "Sign up for tutoring sections or go to office hours for extra support."
  • "really utilize discussions. learning is easier with others!"
  • "Take advantage of the outside programs like CSM to make studying later for exams easier"
  • "Attend discussions and labs as it helps you discuss the content with other students"
  • "Go to office hours and reach out for help early"
  • "Go to discussion. I am so, so grateful for the fact that I had an active discussion group. Make the tough choice and commit yourself to spending that hour each week solving problems with other people just as confused as you are-- I guarantee that you'll look back on the decision and have no doubt that it was worthwhile."
  • "ASK OTHER PEOPLE FOR HELP WHEN NEEDED, DON'T BE AFRAID TO MAKE FRIENDS!!!"
  • "Go to lecture and office hours, ask questions"
  • "Use the cs61a website a lot more than you think, there are a lot more office hours and even hours to get help from Denero himself if you look in the right places(office hours tab) :)"
  • "Collab with other students! This class can be hard if you have minimal programming experience and you try and do the work solo. Also, don't be afraid to go to Office hours"
  • "Despite having programming experience, I found this class extremely hard. Going to office hours and being a part of a tutoring section has helped."

General Advice (Staying on Top of Things, Mindset, etc.): Various pieces of advice on overall approach:

  • "Have fun with it!"
  • "Learn as much as possible!"
  • "Dont use gpt"
  • "be smart"
  • "Take it! Everyone needs to know Python."
  • "CS 61A is not about syntax but logic, try to understand the logic as much as possible"
  • "Understanding how coding works conceptually (ex. how to think about recursion) is super useful, more so than doing a bunch of practice problems without actually conceptually understanding them."

Spring 2024 Summary

The end-of-semester survey asked Spring 2024 students what advice they would give to future students.

Here's the GPT-4o summary:

Advice for Students Considering CS 61A:

  1. Preparation:
  • Prior Coding Experience: Strongly consider taking an introductory course like CS10 if you have no prior programming experience.

    • "If you have not had any coding experience, take CS10! It builds all the concepts from the ground up and is taught by a professor who deeply cares about your education."
    • "I cannot stress this enough, but if you do not have any coding experience take CS10! Although the class can be a bit of work (sometimes more than CS61A lol) it has prepared me more than enough for CS61A."
    • "If you have little to no coding experience this will be a hard course for you. Budget a significant amount of time weekly to spend on this course."
  • Data 8: Taking Data 8 before or instead of concurrently with CS 61A can be beneficial.

    • "Take Data8 before; taking concurrent is a bit hard."
    • "Just work really hard I guess, this class is pretty hard but if you took DATA 8 before it makes SQL super easy."
    • "My advice is to take CS 10 instead of Data 8 if they want to prepare for CS 61A. I heard that CS 10 was more helpful than Data 8."
  1. Study and Practice:
  • Practice Problems: Do lots of practice problems and exams.

    • "Do the practice exams if you want to perform well. Do them like crazy."
    • "Take lots of practice exams, trust the process."
    • "Do lots of practice problems, do not let yourself fall behind, and go to lecture."
  • Consistent Study: Stay on top of lectures, assignments, and practice problems. Do not fall behind.

    • "Stay on top of content, homework, and projects to the best degree possible! Once an assignment is released, start early and get help in office hours!"
    • "Stay ahead and make sure to come to lectures and videos don't get behind because it's difficult to catch up."
    • "Keep up with course material, do the labs and homeworks on your own as much as you can, they are the best practice for learning the material."
  • Understand Concepts: Ensure you deeply understand the material, not just superficially.

    • "Make sure to understand what exactly the code is doing- mutable trees is where this becomes especially handy."
    • "Do not let yourself fall behind... Please do as many problems as you can for exams. The more problems you do, the better you get at application-based problems and intuition."
    • "Understand the problem, and the process of solving it. Why is iteration necessary? Why can't recursion be applied?"
  1. Course Resources:
  • Office Hours: Utilize office hours for questions and clarifications.

    • "GO TO OFFICE HOURS! SPAM PRACTICE TESTS!"
    • "If you're struggling, go to office hours! The TAs are awesome."
    • "Get all the help you can! Don't be afraid of office hours: Denero is awesome and so are all of the TAs and AIs!"
  • Course Materials: Make use of videos, lectures, and online resources provided.

    • "Watch the video lectures before attending the course and try to get ahead."
    • "Make sure to watch the videos before lecture. It's really easy to get behind and very difficult to catch up once you do."
    • "The best way to learn CS is just practice. Watch the videos."
  • Study Groups: Form study groups to discuss and solve problems together.

    • "Make friends in the class."
    • "Find friends you can study and work on projects with."
    • "Make sure you make friends in class. A support group like that really helps."
  1. Time Management:
  • Start Early: Begin assignments, projects, and studying for exams early.

    • "Start all the homework/projects early!! That way you have time if you get stuck :)"
    • "Start the projects early, do not be afraid to use Ed as a resource."
    • "Start every assignment the day it's assigned to find weaknesses or struggles which you then have time to go to office hours and ask questions. No procrastination."
  • Regular Reviews: Regularly review lecture notes and previous assignments.

    • "Go back and revisit the examples from videos and lecture to make sure you really understand what is going on instead of accepting it and moving on."
    • "Keep up with lectures and go to lab!"
    • "Make sure that you understand every concept as the class goes on, as the class is very cumulative and every topic helps with the next."
  1. Mindset and Approach:
  • Persistence: Embrace the challenging nature of the course and persist through difficulties.

    • "Don't be worried if programming doesn't come naturally to you as it may others. Just keep practicing and learning!"
    • "Embrace the struggle!"
    • "Don't get discouraged when you see others doing well. It doesn't mean that you aren't capable of doing it too."
  • Ask Questions: Don’t hesitate to ask questions and seek help when needed.

    • "Ask questions!!!"
    • "Make sure to ask questions when you don't understand something, it will come up again later on."
    • "Ask for help as much as you can!"
  • Enjoy the Process: Appreciate the learning process and the development of problem-solving skills.

    • "Enjoy the moment."
    • "The entire course is centered around changing how you approach problems."
    • "Go ahead and take the course, it's fun, interesting, and teaches you a ton. Don't be intimidated by the reputation this course has."

Original

Here's what individual students wrote, grouped by topic by GPT-4o:

Practice and Studying

  • Practice Problems and Ask Questions
  • DO lots of practice exams to study for a midterm
  • Do lots of practice problems, do not let yourself fall behind, and go to lecture.
  • Take a lot of practice exams.
  • Do the practice exams if you want to perform well. Do them like crazy
  • Do a lot of practice problems
  • Make sure to do lots of practice problems and tests, and review errors closely
  • Do the practice exams to prepare.
  • Stay on top of watching lectures. Cramming for this class will be very difficult, and consistent practice is key.
  • Spam practice tests lol
  • Do previous exams as practice
  • Take as many practice tests as possible
  • Start studying before you'd ever think to, also midterm two is tough
  • Grind practice exams
  • Practice, Practice and oh yeah practice
  • Practice makes perfect. Kind of a cliche, but I definitely fully understand most of the concepts in this course after trying to implement them and making my hands dirty.
  • Practice Tests, Practice Tests, Practice Tests, and Practice Tests
  • Do homework without assistance and modify the problems to help practice on your own. To do well in this course you have to be curious about every little detail, just following the assigned work might not be enough.
  • Stay on top of the lectures and don't get caught up in everyone bragging about doing the bare minimum--do what works for you
  • CS61A is a very fast-paced class with semi-dense material, which is very intimidating to many in the beginning. But, watching the lecture videos ahead of time and utilizing all the past exams and resources CS61A provides will help you master the material and succeed in this class.
  • Do the practice tests!
  • Treat 61A as a math class in how you study (repeatedly do problems until you get the intuition to do problems). Do not treat it like a conceptual class where you just understand the concepts.
  • Make sure to do the practice exams and assignments, since they really help.
  • Stay on top of assignments, if I could go back and revise my study methods I would review every lecture and discussion right after class with a study buddy to see how much I retained and also attend office hours if we both do not understand. I emphasize office hours (online-if you cannot make the trip to Warren).
  • Don't let yourself fall behind...
  • Do as many problems as you can for exams. The more problems you do, the better you get at application based problems and intuition.
  • Really sit down and process the problems you're given. It's okay to not know how to do them right away but you really have to push through and make yourself really think through the problems instead of just looking at the answers the second you get lost.
  • Practice exams are your best friends for exam prep
  • Genuinely the most effective way to study is to not only do a lot of practice exams, but make sure you deeply understand the process for each question/answer (whether or not you get it correct--but especially if you get it incorrect).
  • Take Data 8 before; taking concurrent is a bit hard.

Course Resources and Office Hours

  • Go to office hours and start homework early.
  • Start all the homework/projects early!! That way you have time if you get stuck :)
  • The entire course is centered around changing how you approach problems. GO TO OFFICE HOURS! SPAM PRACTICE TESTS!
  • Don't fall behind and be caught up before labs / discussions on the videos
  • I would recommend going to all OH immediately if you need help! The staff is always welcoming and creates such a great environment to learn!
  • Go to the lectures in person, watch the videos before do NOT fall behind, attend CSM if you don't have experience, sit with problems you don't understand/ get wrong
  • Take advantage of all the resources CS61A offers/associated with CS61A (CSM, go to labs, discussions, midterm review sessions, final review sessions, small group tutoring, office hours, lecture)... also the best way to succeed is through practicing lots and lots of exam questions -- getting good and drawing diagrams, discussing with peers, explaining steps to yourself...
  • Ask questions!!!
  • The course gave me a breadth of intro CS knowledge, and discipline that I will take into my other courses and internships. It has helped me grow personally and professionally. It is a huge time commitment. Leave significant time to dedicate to the course, especially if you don't have prior coding experience. Practice problems are the best way to feel comfortable with the material and succeed. Doing the work meaningfully each week will help with exam preparation. Go to lectures and do the practice problems intentionally.
  • Make sure to attempt to stay on schedule!! It's super important to be doing the labs and homeworks on time so you don't fall behind.
  • Join CS Scholars and also a CSM section. Especially if you have a hard time self-studying.
  • Make sure to go to lectures and watch the videos, and if you get stuck, the best thing to do is to try to understand the thing you're stuck on rather than brute forcing your way through.
  • If you’re scared, just know there are a ton of options to receive help at office hours. Don’t be embarrassed as many use the resource. I spent quite a bit of time there. Also, grades don’t define your talents. Be proud of yourself and good luck.
  • Go to discussion and lab! The office hours facilitators are always so helpful, so go to that too.
  • If you’re struggling, go to office hours! The TAs are awesome
  • Go to office hours if you need the help!!!
  • Take advantage of all the resources. Everyone is there to help you succeed.
  • Be sure to follow the professor's pace and do the proj&hw&lab carefully!
  • Take your time watching the pre-lecture videos and stay up to date on them.
  • If you have not had any coding experience, take CS10! It builds all the concepts from the ground up and is taught by a professor who deeply cares about your education. If you are scared about falling behind for taking CS10, take it during the summer.
  • Watch the video lectures before attending the course and try to get ahead. Computer Science has a difficult learning curve, so prepare for that
  • Watch the videos before lecture
  • Watch the videos as soon as possible, AND DO ALL OF THE WORK YOURSELF.
  • Don't procrastinate on watching the lectures: it's easy to fall behind.
  • Keep up with lectures and go to lab!
  • Make sure you go to lectures and watch the videos, and if you get stuck, the best thing to do is to try to understand the thing you're stuck on rather than brute forcing your way through.
  • Stay on top of the lectures and don't get caught up in everyone bragging about doing the bare minimum--do what works for you
  • Keep up with the videos!!
  • Stay up to date and try to have fun with it. It is the most rewarding class I have ever taken.
  • Make sure you watch the videos for lecture, it helps a lot.
  • Watch all the videos and review for studying
  • Make sure to keep up with the course videos! It's really easy to get behind and very difficult to catch up once you do.
  • Actually listen when people say not to take it if you have very little to no coding experience. No matter how genius you are.
  • Stay on top of work don't fall behind
  • Bring your ass to lecture. And don't just tune out or give up when the problems get confusing.
  • Keep up with the course lecture and assignments throughout.
  • Do not fall behind in lecture ever
  • Actually do the problems
  • Don't fall behind.
  • Stay on top of workload, go to office hours, study way before exams, and ask for help as much as you can!
  • Start every assignment the day its assigned to find weaknesses or struggles which you then have time to go to office hours and ask questions. No procrastination. Find a partner you can rely on and really work with.
  • Take careful, well-written notes on a google doc. They're good for keeping you focused while watching the videos, serve you greatly for labs and homework and if you take good enough notes, can serve as great review material for midterms or the final.
  • Read the Syllabus in its entirety before the semester starts. Just really helps you understand how the course is structured so you can manage your own learning better.
  • Join a CSM section
  • If you don't have coding experience, it's okay. You can do it.
  • Join CSM
  • Get all the help you can! Don't be afraid of office hours: Denero is awesome and so are all of the TAs and AIs!

Prior Knowledge and Preparation

  • Know basic python
  • Know how to code previously, or take CS10
  • If you do not have any prior coding experience, please take CS10.
  • My advice is to take one of the other courses beforehand to get exposure to python beforehand.
  • Have some background experience in coding before taking CS61A.
  • If you've never done anything tech or CS, take CS10 first.
  • Start coding in elementary school
  • Learning a coding language beforehand would be invaluable as the structure of how computers think will begin to make more sense.
  • Take an intro course to CS prior to 61A if you have no prior experience in CS
  • Take CS10 before CS 61A!!
  • Take Data 8 or CS10 beforehand if you don't have a lot of experience, or even just attending a boot camp will definitely help you to be able to digest information at a better pace!
  • Have a basic understanding of python prior!
  • Don't take this class if you want to have time on doing many extracurricular activities
  • Do not take it if you have zero programming experience, it will be too hard