[DRAFT] Evidence-Based Study Tips for College Students

Student working on a laptop and whiteboard

The Quick Guide to Studying Effectively in College: How to Hack Your Brain for Better Learning

If you are like many college students, your primary study strategies probably consist of rereading your textbooks, highlighting key passages, and cramming the night before an exam. You might feel highly productive during these long study sessions, but the science of learning tells a different story: rereading text and massed practice (cramming) are by far the least productive study strategies. These common methods merely boost short-term memory and create an “illusion of knowing” (Bjork and Bjork 1992). When you read a text multiple times, the material becomes familiar, and you mistake this perceptual fluency for true mastery of the subject. To build deep, durable knowledge, you need to embrace “desirable difficulties”—short-term impediments that make learning feel harder and slower, but ultimately trigger cognitive processes that optimize long-term retention and the transfer of skills (Bjork 1994; Bjork and Bjork 2011).

Here is actionable, research-backed advice on how to study effectively, with specific applications for computer science students. Fun fact: some of the foundational research presented in this post was actually done at UCLA by the Bjork Learning and Forgetting Lab!

Desirable Difficulties: Embrace the Struggle

It is a common misconception that if you are learning effectively, the process should feel smooth, fast, and easy. In reality, the exact opposite is true! When learning is completely effortless, it is almost always superficial and easily forgotten. To build truly durable knowledge, you have to lean into “desirable difficulties“—intentional roadblocks that force your brain to work harder to process, connect, and retrieve information (Bjork 1994; Bjork and Bjork 2011). For example, instead of looking something up in your notes or textbook, you should always try to recall it yourself or actively construct an answer to a question yourself, even if you are not sure it is correct. The mental sweat you experience when you can’t quite remember the time complexity of an algorithm, or the frustration of grappling with a complex concept, isn’t a sign that you aren’t smart enough. Rather, that struggle is the biological mechanism of your brain building stronger, more permanent neural pathways. Simply put: effortful learning is effective learning (Brown et al. 2014). However, note that not all difficulties are desirable. For example, studying while you are sleep-deprived, hungry, sick, or highly anxious; reading the material in an unfamiliar language; or studying a topic without prequired fundamentals are undesirable difficulties and they should be reduced. Only difficulties that encourage more cognitive acitivity while still making progress towards your answer are desirable.

  • Actionable Advice: When your study routine starts to feel too easy or comfortable, try to add in some challenges that make it harder for yourself. If you are breezing through your flashcards, shuffle them to remove predictable patterns, or force yourself to explain the core concepts out loud to an empty room without looking at your notes. Change the place where you study instead of returning to the same spot. When you feel that cognitive friction, remind yourself that the struggle is a necessary part of the growth process.
  • Computer Science Examples: When working on a coding assignment, it is incredibly tempting to rely on AI auto-complete tools (like GitHub Copilot, Cursor, or Codex) or to copy-paste boilerplate code directly from a tutorial or online resource. While this is efficient for workplace production, it bypasses the cognitive effort required for actual learning. To create a desirable difficulty, turn off your AI assistants and force yourself to type out the syntax and build the logic step-by-step from scratch. The mental challenge you feel when you have to manually track down a missing bracket or debug a loop is exactly the kind of effortful struggle that ensures you will be able to catch bugs more quickly tomorrow. Embrace challenges as welcome learning opportunities!

Retrieval Practice: Ditch the Highlighter and Quiz Yourself

One of the most powerful learning tools at your disposal is “active retrieval”. As a computer scientist, you might think that recalling memory does not have any side effects. While this might be true for most digital systems (unless they use caching or log all requests), it is not true for human memory. In fact, the act of retrieving information from human memory makes that information much easier to access in the future (Roediger and Karpicke 2006). The more often you try to recall information, the easier it becomes to retrieve it in the future. A single, simple quiz after reading a text produces better learning and remembering than reading the text multiple times. Passively re-consuming the material does not have a similar effect as active retrieval. Additionally, while simultaneously reinforcing this memory to move it towards more durable storage, retrieval practice also tells you exactly what you know and what you don’t (Brown et al. 2014).

  • Actionable Advice: Instead of rereading your notes, lecture slides, or books, put them away and try to write out everything you can remember from the lecture. Create flashcards to quizz yourself on important concepts. Treat practice tests as real tests, forcing yourself to generate the answers without notes rather than just looking at them and nodding. Write a summary of each lecture at the end purely relying on your own memory. Right before the next lecture, recall what you’ve learned in the previous lecture, again purely from your own memory. Use your own memory as often as possible while relying as little as possible on external resources.
  • Computer Science Examples: When you are starting to write a complex loop or pointer arithmetic, try to recall the syntax from memory instead of looking it up. When you are learning version control with Git, instead of looking up the documentation of each command before you use it, try to recall it from memory. When you are writing a sort function, try to remember all sorting algorithms you have learned and how they are different. At every possible opportunity, try to use your own memory before consulting other ressources.

Spaced Practice: Space Out Your Study Sessions

Cramming all your studying into one massive session might help you pass the mid-term the next day, but that knowledge will melt away for the final. Massed practice feels very productive in the moment, but it actively harms long-term retention. To build durable memory, you must space out your practice (Cepeda et al. 2006). Studying a little bit every week is much more effective than studying the sum of each individual study session in one single night. Spacing allows time for your memories to consolidate—a process where memory traces are stabilized, given meaning, and connected to prior knowledge (Brown et al. 2014). A study session is more effective after you started to forget a little bit of the material (Brown et al. 2014). Repeating this process of incrementally studying the same material over increasing intervals of time is one of the most effective ways to build durable memory, because it feels more effortful and signals to your brain that the information is important and needs to be retained long-term (Brown et al. 2014).

  • Actionable Advice: Set aside time every week to practice on both the current week’s material and topics covered earlier in the quarter/semester. Let a little forgetting set in between study sessions. When you feel a bit rusty, the mental effort required to “reload” the information from long-term memory triggers reconsolidation, which deepens the learning. If you identify missing gaps that you can’t answer by consulting your notes, you can then discuss these in office hours. Your professor or TA will be happy to help you, especially if you are asking questions in a week other than the crowded office hours right before the exam.
  • Computer Science Examples: If your class has a project that is due at the end of the term, do not follow the tempation to do most of the work in the last few weeks. Continously apply the techniques taught in the course every week and make incremental progress. If your course covered more theoretical comcepts, periodically revisit older concepts. For example, if you learned about Big-O notation in week one, test yourself on it again in week four, even if it not on the homework. The effort to retrieve older concepts ensures they stay accessible.

Interleaving: Mix Up Your Problem Types

Most textbooks and many courses use “blocked practice”: It first coveres one topic entirely, then the second topic, then the third. The problem with blocked practice is that it never teaches you when to apply a specific solution. In contrast, interleaving mixes the practice of different but related topics or skills. This helps you develop a broader understanding of the relationships between conditions and improve your ability to discriminate between problem types (Rohrer and Taylor 2007). This often makes students feel less confident in their knowledge, because they start working on the next topic before they feel they fully grasped the first one. But it is actually more effective for effective learning, because it naturally builds in spaced retrieval practice and it also makes you pay more attention to the connections, similarities, and differences between topics, which is is more important for real-world application of the taught skills (Brown et al. 2014).

  • Actionable Advice: Once you understand a new problem type, scatter it throughout your practice sequence so that you are alternating between different problems that call for different solutions.
  • Computer Science Examples: If you are studying sorting algorithms, do not do ten practice problems on Merge Sort, followed by ten on Quick Sort, and ten on Bubble Sort. Shuffle the problems randomly. By mixing them up, you force your brain to analyze the dataset and the constraints of the problem to determine which algorithm is the most efficient choice before you write the code. For personal projects or programming study sessions, vary the programming languages you are using. Study topics from different courses together rather than separately. For example, when you are taking operating systems and programming languages together, consider how the choice of programming language impacts the design of operating systems. By mixing up your problem types, you force your brain to contextualize and connect knowledge and achieve deeper learning.

Generation: Struggle First, Check the Solution Later

The act of trying to answer a question or solve a problem before being shown how to do it is known as generation. Even if you make errors in your attempt, wrestling with the problem makes your mind far more receptive to the correct solution when it is finally provided (Jacoby 1978). Unsuccessful attempts at a solution encourage deep processing of the answer and create fertile ground for its encoding.

  • Actionable Advice: Try to solve homework problems before you go to the lecture where the solution will be taught. View errors not as failures, but as vital diagnostic information that helps you adjust your strategies.
  • Computer Science Examples: If your assignment is to traverse a binary search tree, try to write the script entirely on your own before you search for the standard solution on Stack Overflow or in your textbook. When your code throws an exception you’ve never seen before, try to understand what it means and how to fix it before looking for a quickfix. When you finally review the correct implementation, the logic will click into place and stick with you much longer. Challenge yourself to create new knowledge before trying to find of the answer is already out there.

Component Skills: Manage Your Cognitive Load

Human cognitive architecture is characterized by a very limited short-term or working memory. When a task is highly complex, trying to learn all aspects of it simultaneously can overwhelm your working memory and impede learning (Sweller 1988). This can result in undesirable difficutlies. However, if you break a complex task down and practice component skills in isolation, you can develop mastery of these individual skills before combining them into a coherent whole.

  • Actionable Advice: Decompose daunting, complex tasks into smaller, manageable sub-goals. Start to study individual skills earlier so that in the week before the exam you can focus on combining component skills rather than learning all of them for the first time, which might overwhelm you.
  • Computer Science Examples: Suppose you are tasked with building a full-stack web application. If you try to learn frontend design (HTML/CSS), backend logic (Python/Node.js), and database querying (SQL) all at the exact same time, your cognitive load will be too high to learn effectively. Instead, isolate the component skills. Build a static webpage first. Then, separately, practice writing database queries. Once you have a fluent, automated grasp of these individual pieces, you will have the cognitive capacity to successfully integrate them into a dynamic application. Work on learning sub-skills before combining them into a coherent whole.

Growth Mindset: The Foundation for Desirable Difficulties

Adopting all of the strategies listed above is nearly impossible if you operate with a “fixed mindset”—the belief that your intelligence and abilities are static traits you are simply born with. If you have a fixed mindset, struggling with a new concept feels like terrifying proof that you just aren’t smart enough. However, decades of psychological research demonstrate that a “growth mindset” is far more accurate: your brain is highly plastic, and intellectual abilities are absolutely developed through effort, strategic practice, and perseverance (Dweck 2006). To effectively use desirable difficulties, you have to let go of the need for learning to feel “easy” and instead recognize that mental friction is the physical sensation of your brain growing stronger.

  • Actionable Advice: Pay attention to your internal monologue and add the word “yet” Change “I don’t understand this” to “I don’t understand this yet”. When you hit a roadblock, do not view it as a limit of your natural ability. View it as a cue that you need to adjust your study strategies, increase your effort, or seek out office hours. If you’ve done well in a class, don’t assume you’re a “natural” at the subject. Instead, recognize that your success is the result of effective strategies and consistent effort, which you can replicate in more challenging courses. And you believe struggle too much, don’t be afraid to ask for help and visit office hours or email our instructor(s). All of them are always willing to help, especially if you let them know how hard you’ve tried already
  • Computer Science Examples: There is a pervasive and toxic myth in software engineering that some people are just naturally born with a “coding gene”. This is entirely false. When your C program segfaults for the fiftieth time, or you are trying to untangle a messy git rebase, it is easy to feel like an imposter. A fixed mindset tells you to give up because you aren’t cut out for computer science. A growth mindset reminds you that every single expert developer started exactly where you are. Bugs and compiler errors are not indictments of your intelligence. They are simply the mechanism by which you build mastery. You are entirely capable of conquering these complex systems, provided you embrace the resilient, effortful struggle required to learn them and you are not afraid to ask for help when you need it.

Quiz

The Science of Effective Learning: Student Self-Assessment

As you just learned, recalling what you just learned is the best way to form lasting memory. Use this quiz to test your understanding of the science-backed study techniques discussed in this post.

After reading a chapter on algorithms three times, a student feels incredibly confident about the upcoming exam. However, they end up failing. According to learning science, what psychological trap did this student likely fall into?
According to the science of learning, why should you intentionally make your study sessions feel harder?
Why do evidence-based study techniques often feel slower, clumsier, and more frustrating to the learner?
You are working on a new Python project and decide to turn off your AI coding assistant (like GitHub Copilot). According to the concept of 'desirable difficulties', what is the primary benefit of this highly frustrating choice?
A junior developer wants to master a new web framework. Which of the following approaches represents the most effective memory-strengthening technique?
A project team must pass a rigorous cybersecurity certification in one month. How should they schedule their preparation to ensure the knowledge remains accessible long after the test is over?
A data structures student is practicing graph algorithms. Instead of doing all the shortest-path problems, followed by all the minimum-spanning-tree problems, she shuffles them together. What specific cognitive capability does this heavily cultivate?
Before attending a lecture on building neural networks, a software engineering student tries to sketch out the math for backpropagation, making several fundamental logic errors. Pedagogically speaking, how should we view this attempt?
A student is completely overwhelmed trying to combine Git, shell scripting, and learning a new programming language all at the same time. What should they do to optimize their cognitive architecture?
A student struggles heavily with their first algorithms assignment and decides, 'I'm just not wired for complex math and logic.' This reaction is a classic example of:

References

  1. (Bjork and Bjork 2011): Elizabeth Ligon Bjork and Robert A. Bjork (2011) “Making things hard on yourself, but in a good way: Creating desirable difficulties to enhance learning,” in M. A. Gernsbacher, R. W. Pew, L. M. Hough, and J. R. Pomerantz (eds.) Psychology and the Real World: Essays Illustrating Fundamental Contributions to Society. New York, NY: Worth Publishers, pp. 56–64.
  2. (Bjork 1994): Robert A. Bjork (1994) “Memory and metamemory considerations in the training of human beings,” in J. Metcalfe and A. Shimamura (eds.) Metacognition: Knowing about knowing. Cambridge, MA: MIT Press, pp. 185–205.
  3. (Bjork and Bjork 1992): Robert A. Bjork and Elizabeth Ligon Bjork (1992) “A new theory of disuse and an old theory of stimulus fluctuation,” From learning processes to cognitive processes: Essays in honor of William K. Estes, 2, pp. 35–67.
  4. (Brown et al. 2014): Peter C. Brown, Henry L. Roediger III, and Mark A. McDaniel (2014) Make It Stick: The Science of Successful Learning. Cambridge, MA: Belknap Press of Harvard University Press.
  5. (Cepeda et al. 2006): Nicholas J. Cepeda, Harold Pashler, Edward Vul, John T. Wixted, and Doug Rohrer (2006) “Distributed practice in verbal recall tasks: A review and quantitative synthesis,” Psychological Bulletin, 132(3), pp. 354–380.
  6. (Dweck 2006): Carol S. Dweck (2006) Mindset: The new psychology of success. New York, NY: Random House.
  7. (Jacoby 1978): Larry L. Jacoby (1978) “On interpreting the effects of repetition: Solving a problem versus remembering a solution,” Journal of Verbal Learning and Verbal Behavior, 17, pp. 649–667.
  8. (Roediger and Karpicke 2006): Henry L. Roediger and Jeffrey D. Karpicke (2006) “Test-enhanced learning: Taking memory tests improves long-term retention,” Psychological Science, 17, pp. 249–255.
  9. (Rohrer and Taylor 2007): Doug Rohrer and Kelli Taylor (2007) “The shuffling of mathematics problems improves learning,” Instructional Science, 35(6), pp. 481–498.
  10. (Sweller 1988): John Sweller (1988) “Cognitive load during problem solving: Effects on learning,” Cognitive Science, 12(2), pp. 257–285.