A command line tool for memorizing algorithms in Python by typing them.

Algo Drills

A command line tool for memorizing algorithms in Python by typing them. In alpha and things will change.

How it works

  1. Type out an algorithm based on its function signature and docstring.
  2. See what you did wrong or get a new algorithm.
  3. Repeat until bored.

Getting Started

  1. Clone this repo .
  2. Look at algorithms/bisect_search.py and its references.
  3. Run ./drill.py practice
  4. Fill out the newly created worskpace.py to match the code in algorithms/bisect_search.py. Do it from memory or look back at the file.
  5. Run ./drill.py practice again. You'll do this a lot. Maybe make a shortcut.
  6. If your code matches, it will be deleted and you can try again. If it's different, you'll get a diff.
  7. Check out other algorithms that look interesting in algorithms/.
  8. If you see an algorithm you like, copy-paste its ID to user_data/allowed.csv.
  9. Run ./drill.py -h to see more features.
  10. Keep going!

FAQ

Isn't memorizing bad?

No. Memorization without understanding is bad. You should understand an algorithm well before committing it to memory.

Are these the best versions of these algorithms?

No. They're versions the author likes.

Can I view my history?

Yes! Check out user_data/history.txt for a nice format. Maybe keep it open in a window for motivation.

Can I add my own algorithms?

Yes! ./drills.py new_algo --help

Can I see all the algorithms for a specific reference?

Yes! Just two books right now. ./drills.py reference --help

Can I help?

Yes! Tell me how you like this tool, submit a bug report (or fix!), tell me if you have a feature idea, show your friends, or show me your own cool algorithms. You can email me at my last name at gmail, or message me on reddit at /u/travisjungroth.

Made with 🌮 in Tulum, Mexico

Similar Resources

🧬 Performant Evolutionary Algorithms For Python with Ray support

🧬 Performant Evolutionary Algorithms For Python with Ray support

Oct 20, 2022

All algorithms implemented in Python for education

The Algorithms - Python All algorithms implemented in Python - for education Implementations are for learning purposes only. As they may be less effic

Oct 20, 2021

Implementation of Apriori algorithms via Python

Installing run bellow command for installing all packages pip install -r requirements.txt Data Put csv data under this directory "infrastructure/data

Jul 25, 2022

A simple python application to visualize sorting algorithms.

A simple python application to visualize sorting algorithms.

Visualize sorting algorithms A simple python application to visualize sorting algorithms. Sort Algorithms Name Function Name O( ) Bubble Sort bubble_s

Apr 1, 2022

Programming Foundations Algorithms With Python

Programming Foundations Algorithms With Python

Programming-Foundations-Algorithms Algorithms purpose to solve a specific proplem with a sequential sets of steps for instance : if you need to add di

Nov 1, 2021

Repository for Comparison based sorting algorithms in python

Repository for Comparison based sorting algorithms in python. This was implemented for project one submission for ITCS 6114 Data Structures and Algorithms under the guidance of Dr. Dewan at the University of North Carolina at Charlotte, Fall 2021.

Dec 20, 2021

Python Client for Algorithmia Algorithms and Data API

Algorithmia Common Library (python) Python client library for accessing the Algorithmia API For API documentation, see the PythonDocs Algorithm Develo

Oct 26, 2022

Algorithms and data structures for educational, demonstrational and experimental purposes.

Algorithms and Data Structures (ands) Introduction This project was created for personal use mostly while studying for an exam (starting in the month

Dec 6, 2022

This is the code repository for 40 Algorithms Every Programmer Should Know , published by Packt.

This is the code repository for 40 Algorithms Every Programmer Should Know , published by Packt.

40 Algorithms Every Programmer Should Know, published by Packt

Jan 2, 2023
Comments
  • added algos, mainly from leetcode easy interview set

    added algos, mainly from leetcode easy interview set

    Most of the additional algorithms were taken from Leetcode, primarily from the Interview Problems - Easy set. I tried add ones that seemed like they could serve as templates for harder problems.

Genetic algorithms are heuristic search algorithms inspired by the process that supports the evolution of life.

Genetic algorithms are heuristic search algorithms inspired by the process that supports the evolution of life. The algorithm is designed to replicate the natural selection process to carry generation, i.e. survival of the fittest of beings.

Dec 24, 2022
Nature-inspired algorithms are a very popular tool for solving optimization problems.
Nature-inspired algorithms are a very popular tool for solving optimization problems.

Nature-inspired algorithms are a very popular tool for solving optimization problems. Numerous variants of nature-inspired algorithms have been develo

Dec 28, 2022
Cormen-Lib - An academic tool for data structures and algorithms courses

The Cormen-lib module is an insular data structures and algorithms library based on the Thomas H. Cormen's Introduction to Algorithms Third Edition. This library was made specifically for administering and grading assignments related to data structure and algorithms in computer science.

Aug 18, 2022
Algorithms-in-Python - Programs related to DSA in Python for placement practice
Algorithms-in-Python - Programs related to DSA in Python for placement practice

Algorithms-in-Python Programs related to DSA in Python for placement practice CO

Feb 2, 2022
Minimal examples of data structures and algorithms in Python
Minimal examples of data structures and algorithms in Python

Pythonic Data Structures and Algorithms Minimal and clean example implementations of data structures and algorithms in Python 3. Contributing Thanks f

Jan 9, 2023
Repository for data structure and algorithms in Python for coding interviews
Repository for data structure and algorithms in Python for coding interviews

Python Data Structures and Algorithms This repository contains questions requiring implementation of data structures and algorithms concepts. It is us

Jan 1, 2023
All Algorithms implemented in Python

The Algorithms - Python All algorithms implemented in Python (for education) These implementations are for learning purposes only. Therefore they may

Jan 3, 2023
:computer: Data Structures and Algorithms in Python

Algorithms in Python Implementations of a few algorithms and datastructures for fun and profit! Completed Karatsuba Multiplication Basic Sorting Rabin

Jan 1, 2023
Algorithms implemented in Python

Python Algorithms Library Laurent Luce Description The purpose of this library is to help you with common algorithms like: A* path finding. String Mat

Dec 6, 2022
Python sample codes for robotics algorithms.
Python sample codes for robotics algorithms.

PythonRobotics Python codes for robotics algorithm. Table of Contents What is this? Requirements Documentation How to use Localization Extended Kalman

Jan 1, 2023