DEV Community

Cover image for Simplify Your Algorithms and Data Structures Revision with This Free Resource!
RisabhKedai
RisabhKedai

Posted on

Simplify Your Algorithms and Data Structures Revision with This Free Resource!

Introduction

During my college days, I was often advised to solve problem sheets curated by mentors and techfluencers. While helpful, they came with challenges:

  • How do you ensure long-term retention after completing them?
  • How do you manage starred problems across platforms like LeetCode or Codeforces, ensuring they don’t get lost in the shuffle?
  • How do you leverage tools like Google Sheets or Notion for smarter, more efficient tracking and revision?
  • These questions inspired me to create the ADS Revision Sheet—a resource to organize, personalize, and optimize your learning process.

The Problem

When it comes to algorithms and data structures (ADS) preparation:

  • Revision is often overlooked, leading to forgotten concepts.
  • Managing problems across multiple platforms gets chaotic.
  • Generic tools lack the ability to adapt to personalized preparation needs.

The Solution

The ADS Revision Sheet is more than just a problem tracker. It provides

  • Centralize problem management.
  • Provide personalized revision cycles with custom weights.
  • Empower you with insights to focus on high-priority areas.

If you want to try out the sheet straight up, just make a copy of the following:
SHEET
But I recommend you to go through the setup steps below.
And in case you are interested in the code, check this out :
GitHub Link

Key Features

  • Centralized Problem Repository
    Combine problems from LeetCode, GeeksForGeeks, and more in one sheet for easy tracking.

  • Custom Weighting System
    Assign weights to problems based on difficulty, importance, or frequency for a tailored revision strategy.

  • Topic-Based Organization
    Tag problems by topics (e.g., Graphs, DP) to filter and focus your practice sessions.

  • Personalized Revision Cycles
    Prioritize problems that need attention based on custom weights and intelligent sorting.

  • Cross-Platform Insights
    Gain a clear understanding of your overall progress, no matter where you practice.

How to Set It Up

1. Create a Copy

  1. Open the template sheet
  2. Create a copy by going to File > Make a copy Screenshot 2024-12-26 at 2 21 42 AM
  3. Rename it as desired Screenshot 2024-12-26 at 2 22 31 AM

2. Enable Apps Script

  1. Go to Extensions > Apps Script
  2. This will open the Apps Script editor in a new tab Screenshot 2024-12-26 at 2 23 22 AM
  3. You'll see multiple .gs files:
    • Revision.gs
    • TimeUpdatingTrigger.gs
    • ScoreUpdatingTrigger.gs
    • AdsShinFeats.gs Screenshot 2024-12-26 at 2 24 02 AM

3. Set Up Triggers

You need to set up two time-based triggers:

Timer Update Trigger

  1. In Apps Script, go to Triggers (clock icon on the left sidebar)

Screenshot 2024-12-26 at 9 15 16 PM

  1. Click '+ Add Trigger'

Screenshot 2024-12-26 at 9 16 12 PM

  1. Configure as follows:
    • Choose function to run: updateTimers
    • Choose which deployment: Head
    • Select event source: Time-driven
    • Select type of time: Minutes timer
    • Select interval: Every minute
    • Click on the Save button

Screenshot 2024-12-26 at 9 18 58 PM

  • You will get a popup asking for permission to run the trigger, as follows:

Screenshot 2024-12-26 at 9 21 08 PM

  • Click on Allow. This will allow the trigger to keep running in the background. This trigger updates the timers visible on the sheet.

Screenshot 2024-12-26 at 9 21 31 PM

Score Update Trigger

  1. Add another trigger
  2. Configure as follows:
    • Choose function to run: updateScores
    • Choose which deployment: Head
    • Select event source: Time-driven
    • Select type of time: Day timer
    • Select time of day: 3 AM to 4 AM
    • Click Save Screenshot 2024-12-26 at 9 23 59 PM

You might not be asked for permissions now, as the project already has them.

Sheet Structure

1. Solved Problems Sheet

Main sheet for tracking all solved problems with columns for:

  • Problem ID
  • Problem Name
  • Platform
  • Difficulty
  • Time Taken
  • Last Solved
  • Tags (Own & Referred)
  • Score (automatically calculated)

  • Purpose: Track all solved problems.

  • Usage Steps:

    • Enter problem details in the respective columns.
    • Change the START to STOP, so that the timer can start.
    • After solving the problem change STOP to START.
    • The score gets updated because of the updateScore trigger previously.
    • Make sure to update the tags after solving each problem.
    • Also add the time complexities if you want to track the possible solutions.
    • Refer to the sample entries.

Screenshot 2024-12-26 at 10 54 31 PM

2. Revision Sheet

Generated sheet for active revision sessions containing:

  • Selected problems for revision
  • Timer controls
  • Tag updates
  • Hint button to see hints if you are stuck. Hints are just notes previously added on the main sheet.
  • Rest of the layouts are similar to the main sheet.

  • Purpose: Manage active revision sessions.

  • Usage Steps:

    • Select problems for revision.
    • Use timer controls to track time spent on each problem.
    • Generate Revision:
    • Click the "Generate Revision" button under the Revision menu to automatically select and load problems into the Revision sheet based on configured criteria.
    • Ensure the "Solved Problems" sheet has valid data and scores before generating.
    • End Revision:
    • Click the End Revision button to finalize the session.
    • Review and update tags for each problem before syncing to the "Solved Problems" sheet.
    • Confirm that all required fields (e.g., time taken, last solved date) are filled out.
    • Once ended the data gets synced back to the main sheet with revisions counts and solutions updated.
    • Clear Active Revision:
    • Click the Clear Active Revision button to remove all data from the Revision sheet while keeping the headers intact.
    • This action is useful for starting a new revision session without residual data.

Screenshot 2024-12-26 at 10 56 18 PM
Screenshot 2024-12-26 at 10 56 48 PM

3. Topics Sheet

Manages all available tags/topics with:

  • Topic names
  • Own Tags filter
  • Referred Tags filter
  • Filteting mechanism is discussed in the features below. (here)

Screenshot 2024-12-26 at 10 58 18 PM

4. Revision History Sheet

Automatically maintains revision session records including:

  • Revision ID
  • Date
  • Number of problems attempted
  • Total time
  • Average time
  • Topics covered
  • Difficulty distribution

Screenshot 2024-12-26 at 11 01 31 PM

5. RevisionConfig Sheet

The RevisionConfig Sheet contains configurable parameters that allow users to customize their generated revision, including:

  • Number of Problems per Revision: Users can set how many problems they want to tackle in each revision session, tailoring the workload to their preferences.
  • Scoring Weights: Users can adjust the weights assigned to different scoring factors, allowing for a personalized scoring system that reflects their learning goals.
  • Other Customizable Settings

Screenshot 2024-12-26 at 11 01 58 PM

Conclusion

The ADS Revision Sheet is not just another tool—it’s your personalized assistant to simplify and enhance your algorithms and data structures preparation. Whether you’re gearing up for interviews or mastering problem-solving, this sheet is here to make the process smoother and smarter.

I’d love to hear your thoughts! If this resource helps you, let me know how you’re using it to improve your preparation. Feedback is always welcome! In case you face issues please feel free to reach out

Catch me working on something interesting at:

GitHub : https://github.com/RisabhKedai
LinkedIn : https://www.linkedin.com/in/risabh-kedia/
Twitter : https://x.com/risabhkedia12

Top comments (0)