Acing CS Courses

How to study effectively, maintain a high GPA, graduate at the top of your class

Why do I need good grades?

Getting good grades can be helpful if you are:

  • applying to your first internship
  • applying to research positions
  • applying to graduate school
  • applying to scholarships

(This list is not exhaustive.)

Of course, other aspects of your resume (such as work experience, relevant projects, publications, etc.) matter as well in your applications to industry jobs and graduate school. However, a high GPA can open the door to these opportunities (especially if you don’t have much content on your resume), which could help bolster your overall application. In addition, some recruiters and application reviewers, especially in graduate school, don’t even review applications from candidates who don’t meet some minimum GPA requirement.

One last thing to note here is that if you don’t have work authorization in the U.S., going to graduate school may be your only option for now. If this is the case, it is even more important to do well in school. Therefore, it’s better to be safe than sorry and take your coursework seriously!

How to study effectively and maintain good grades

I attended an undergraduate university where every CS course was graded on a curve. “A” grades were not just handed out; you had to work hard to get them because all the students were smart and studied hard. Still, I was fortunately able to develop habits that helped me do fairly well and eventually graduate at the top of my class even though I wasn’t any smarter than the average student at my school.

Here are some tips that helped me:

  • Minimize the time that you spend in your dorm room, unless that is where you are most productive. Try to study in environments where other people are also working. This will keep you accountable and help you stay focused. (For me, I often get distracted and end up watching YouTube videos or scrolling through social media if I stay in my dorm.)
  • Attend every lecture for your courses and sit near the front of the class. This will help you stay focused on the lecture. You might also befriend other motivated students who you can study with for exams, or collaborate with to complete assignments.
  • During the lecture, take detailed hand-written notes. If the class moves by so fast that it’s hard to take notes by hand, you can type out your notes on a laptop to take notes faster.
  • TAKE PRACTICE EXAMS from similar courses at other universities. These are often available online (check MIT, CMU, Stanford, Berkeley, etc. for courses that are similar to the one that you’re taking). Skip exam questions that require knowledge of content that you didn’t cover (unless you have extra time to learn new content, which can sometimes help you build intuition for solving problems that come up in your course).
  • Pretend that your final exams and deadlines are one day earlier than they actually are (or one week, if you’re ambitious). This way you’ll have time for any last-minute work or studying that you need to do, and you’ll allow time for your brain to digest all the information you’ve reviewed.
  • Space out your studying so that your brain digests and remembers the material better. You should start studying for final exams 1-2 weeks in advance if possible.
  • For courses with important group projects, think about who you want to work with early on, and meet/befriend those students so that you can actually work together on projects. The team composition can make or break your projects (and thus your final grade).
  • Go to the professor’s and TAs’ office hours for help on homework and projects, and for tips on studying for the exam. They might give you tips that help you save a lot of time on assignments. They might also reveal something that might be useful to know when studying for the exam.
  • Help other students understand the course material. You might think, “Why should I help others if we’re graded on a curve, and them doing better means that I get a worse grade in the class?” Here are some points to consider: (1) You might learn something new yourself, discover that you actually need to review something or learn it more deeply, or strengthen your intuition by teaching others. (2) Student whom you help will be more inclined to help you when you need it. (3) Other students, and sometimes the TAs and professors, might notice that you help others and be nicer to you (outside of class, in office hours, in post-graduation life when you leverage connections to find jobs, etc.). Overall, it’s good to not think of your colleagues as competitors, even if your environment is competitive, and it’s good to be selfless, even if you only care about yourself. Good things eventually come back around.
  • Don’t take classes with professors who are known to make the course extremely difficult if there are other alternatives. Yes, you may learn more by going through fire, but if your goal is to optimize your grades, it’s better to go with the less intense options. No one outside your department or university will know about the difficulty of taking a class with that one professor anyway; they only see your GPA. If you really want to learn more, you can audit hard courses or take free courses online. Don’t shoot yourself in the foot by testing yourself with high-risk, low-reward scenarios. Your life as an undocumented immigrant is already difficult. Don’t make it even more difficult!
  • Don’t take too many classes per semester/quarter. Also, try to balance hard classes with easier classes. Plan out your year so that you can take the right classes at the right time.
  • Simply spend more hours studying, especially if you are a slow learner. More time means more material reviewed and more practice exams completed, which can help you build more intuition. Again, start early and space it out so that it doesn’t feel overwhelming. Studying for more hours doesn’t mean you have to study day and night, if you manage your time wisely.

Whew, that was a lot. Hope some of it helps! :)