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
- Open the template sheet
- Create a copy by going to File > Make a copy
- Rename it as desired
2. Enable Apps Script
- Go to Extensions > Apps Script
- This will open the Apps Script editor in a new tab
- You'll see multiple .gs files:
- Revision.gs
- TimeUpdatingTrigger.gs
- ScoreUpdatingTrigger.gs
- AdsShinFeats.gs
3. Set Up Triggers
You need to set up two time-based triggers:
Timer Update Trigger
- In Apps Script, go to Triggers (clock icon on the left sidebar)
- Click '+ Add Trigger'
- 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
- Choose function to run:
- You will get a popup asking for permission to run the trigger, as follows:
- Click on Allow. This will allow the trigger to keep running in the background. This trigger updates the timers visible on the sheet.
Score Update Trigger
- Add another trigger
- 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
- Choose function to run:
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
toSTOP
, so that the timer can start. - After solving the problem change
STOP
toSTART
. - 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.
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.
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)
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
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
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)