Advice from Former Students

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