We’ll be using Repl.it, PythonTutor, and the Python programming language in class to discuss programming. If you’re new to coding, it can be uncomfortable to learn algorithms in a foreign language, but GPT-3 can often translate algorithms into a more familiar language.
Additional Resources / Demos:
- [https://www.freecodecamp.org/news/python-programming-course/](https://www.freecodecamp.org/news/python-programming-course/)
- [https://www.freecodecamp.org/news/python-crash-course/](https://www.freecodecamp.org/news/python-crash-course/)
- [https://replit.com/@lizthedeveloper/Classes#main.py](https://replit.com/@lizthedeveloper/Classes#main.py)
- [https://replit.com/@lizthedeveloper/Classes-in-ECMAScript#index.js](https://replit.com/@lizthedeveloper/Classes-in-ECMAScript#index.js)
- [VisuAlgo](https://visualgo.net/en)
- [https://algorithm-visualizer.org/branch-and-bound/binary-search-tree](https://algorithm-visualizer.org/branch-and-bound/binary-search-tree)
- [https://medium.com/@aksh0001/avl-trees-in-python-bc3d0aeb9150](https://medium.com/@aksh0001/avl-trees-in-python-bc3d0aeb9150)
- [https://www.askpython.com/python/examples/avl-tree-in-python](https://www.askpython.com/python/examples/avl-tree-in-python)
- [http://www.cheat-sheets.org/saved-copy/Python-Set-Methods-Cheat-Sheet.20210604.pdf](http://www.cheat-sheets.org/saved-copy/Python-Set-Methods-Cheat-Sheet.20210604.pdf)
- [https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)
- Watch at least one of these over the break! [https://interviewing.io/mocks](https://interviewing.io/mocks)
- [https://replit.com/@lizthedeveloper/2D-Arrays-Patterns](https://replit.com/@lizthedeveloper/2D-Arrays-Patterns)
- [https://realpython.com/lru-cache-python/](https://realpython.com/lru-cache-python/)
- [https://sqlzoo.net/wiki/SQL_Tutorial](https://sqlzoo.net/wiki/SQL_Tutorial)
- [https://joins.spathon.com/](https://joins.spathon.com/)
- [https://hackingcapitalism.dev/](https://hackingcapitalism.dev/)
- [Salary Negotiation Worksheet](https://docs.google.com/document/d/1Gt3QWS3pP-_LdNahIRM2rlKg7VILfj2qiPJcWSeayRg/edit#heading=h.c7p1bbfji8ah)
The names of the algorithms we’ll cover, when (as well as links to the current exercises):
### Day 1 Intro, Linked Lists
[Lecture Recording](https://www.youtube.com/watch?v=9w2Fa3_JSoA)
In Class:
[Classes Repl](https://replit.com/@lizthedeveloper/Classes#main.py)
[Linked List Repl](https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-Linked-Lists#main.py) (python)
[Linked List Repl](https://replit.com/@lizthedeveloper/GDi-Technical-Interview-Prep-Linked-Lists#index.js) (javascript)
[Slides](https://docs.google.com/presentation/d/177AGgV63dYu4ChMSwpcFAypLFSguN6xPupxGHWy1RcM/edit#slide=id.g22232d7234b_0_358)
Homework: complete Linked Lists: Reverse, Detect a Cycle, Index, Negative Index
### Day 2 Trees: Binary Search Tree: Insert, Traverse with Depth First Search
In Class:
- [Python Repl](https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-Binary-Search-Trees#main.py)
- [JavaScript Repl](https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-Binary-Search-Tree#index.js)
Homework: Traverse with Breadth First Search
[Lecture Recording](https://youtu.be/QV8_4ATpVbU)
### Day 3 Trees: Balance a Binary Tree (red-black & AVL trees)
In Class:
- [https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-AVL-Trees#main.py](https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-AVL-Trees#main.py)
- More Implementations: [https://replit.com/@lizthedeveloper/AVL-Tree-Practice#main.py](https://replit.com/@lizthedeveloper/AVL-Tree-Practice#main.py)
Resources:
- [https://algorithm-visualizer.org/branch-and-bound/binary-search-tree](https://algorithm-visualizer.org/branch-and-bound/binary-search-tree)
- [https://medium.com/@aksh0001/avl-trees-in-python-bc3d0aeb9150](https://medium.com/@aksh0001/avl-trees-in-python-bc3d0aeb9150)
- [https://www.askpython.com/python/examples/avl-tree-in-python](https://www.askpython.com/python/examples/avl-tree-in-python)
[Lecture Recording](https://youtu.be/8_b-vPjRK_g)
### Day 4 Graphs and Breadth First Search
In Class:
- [https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-From-Trees-to-Graphs#main.py](https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-From-Trees-to-Graphs#main.py)
- [https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-From-Trees-to-Graphs-1#index.js](https://replit.com/@lizthedeveloper/GDI-Technical-Interview-Prep-From-Trees-to-Graphs-1#index.js)
- [Recording](https://youtu.be/3WvPJFO62jE)
Slides:
[Valuing Your Labor with Fermi Estimation](https://slides.com/lizh/fermi-estimation-07387f)
### Day 5: Graphs: Find Friends, Find Common Ancestors
In Class:
- [https://replit.com/@lizthedeveloper/GDI-TIP-Suggest-Friends-and-Find-Common-Ancestor#main.py](https://replit.com/@lizthedeveloper/GDI-TIP-Suggest-Friends-and-Find-Common-Ancestor#main.py)
- [Recording](https://www.youtube.com/watch?v=VMeaiITFcLQ&feature=youtu.be)
Slides:
- [What Gets Measured Gets Managed](https://slides.com/lizh/what-gets-measured-gets-managed)
- [The Manager’s Perspective: Execution](https://slides.com/lizh/the-four-disciplines-of-execution)
### Day 6: Graphs & 2D Arrays: Flood Fill Search
- [https://replit.com/@lizthedeveloper/GDI-ITP-Naive-Search-vs-Flood-Fill#main.py](https://replit.com/@lizthedeveloper/GDI-ITP-Naive-Search-vs-Flood-Fill#main.py)
- [Recording](https://www.youtube.com/watch?v=CfbKxAeF1AY)
### Day 7: Palindrome, Longest Palindromic Substring, Minimum Window Substring
- [https://replit.com/@lizthedeveloper/GDI-TIP-Longest-Palindromic-Substring#main.py](https://replit.com/@lizthedeveloper/GDI-TIP-Longest-Palindromic-Substring#main.py)
- [Recording](https://www.youtube.com/watch?v=CfbKxAeF1AY&feature=youtu.be)
### Day 8: Roman Numeral to Integer, Prefix Notation
- [https://replit.com/@lizthedeveloper/GDI-TIP-Prefix-Notation#main.py](https://replit.com/@lizthedeveloper/GDI-TIP-Prefix-Notation#main.py)
- [Recording](https://www.youtube.com/watch?v=YHfuxled2as)
### Day 9: Valid Parentheses, Valid Sudoku, Word Search
- [https://replit.com/@lizthedeveloper/GDI-TIP-Valid-Parentheses-Valid-Sudoku#main.py](https://replit.com/@lizthedeveloper/GDI-TIP-Valid-Parentheses-Valid-Sudoku#main.py)
- [Recording](https://www.youtube.com/watch?v=OPb--9_9SMM&feature=youtu.be)
### Day 10: LRU Cache, Kill Old Processes
- [https://replit.com/@lizthedeveloper/GDI-TIP-LRU-Cache-and-Kill-Old-Processes-1#main.py](https://replit.com/@lizthedeveloper/GDI-TIP-LRU-Cache-and-Kill-Old-Processes-1#main.py)
- [Recording](https://www.youtube.com/watch?v=ZXNwIEdnVrA&feature=youtu.be)
### Day 11: SQL
SELECT, WHERE, INNER JOIN, LEFT JOIN, RIGHT JOIN, Find Most Profitable Products, Find Seasonal Products
- [https://replit.com/@lizthedeveloper/GDI-Connect-to-DB-SQL#main.py](https://replit.com/@lizthedeveloper/GDI-Connect-to-DB-SQL#main.py)
- [https://www.db-fiddle.com/f/4LnFpNRSMUvTFqie33xFe4/2](https://www.db-fiddle.com/f/4LnFpNRSMUvTFqie33xFe4/2) - (most profitable products solution)
- [Recording](https://www.youtube.com/watch?v=mg_JiYPJn-s&feature=youtu.be)
### Day 12: SQL Final Project: Warehouse Safety Certifications
- [https://replit.com/@lizthedeveloper/GDI-SQL-Final#main.py](https://replit.com/@lizthedeveloper/GDI-SQL-Final#main.py)
- [https://www.db-fiddle.com/f/mMTNPR5bbssTJhmrHmzShA/0](https://www.db-fiddle.com/f/mMTNPR5bbssTJhmrHmzShA/0)
- [Recording](https://www.youtube.com/watch?v=jMTno48BppA&feature=youtu.be)
Please focus on the day’s given algorithm, and do not try to look them up beforehand. The goal of this class is to strengthen your problem-solving muscles, not test your memory. The goal is to learn to break down a problem you have seen before and recognize the similar components, so we’ll go over a problem in class, then you’ll be given a similar problem to solve. I’ll be available a little while after class in case anyone needs help or clarification. You don’t need to finish it right after class, but please be prepared before the next day to discuss your own solution, as I’ll call on a random person to show their own code. Sometimes people think better in the morning, but remember the goal is to be able to solve problems in interviews, so try to stretch your brain to complete it within a short time.
Next Class:
https://girldevelopit.com/events/details/girl-develop-it-career-conversations-presents-technical-interviewing-iii-advanced-algorithms-and-problem-solving/
**