- Read the notes posted online for the day.
- Read the relevant sections in the book. Each day's reading is given in the schedule.
- You do not have to understand everything that you read. Make a list of questions. ASK in class!
- Try out a few of the programming exercises in GeeksForGeeks, LeetCode, or Kattis.
- If you have problems, visit the TAs during office hours. Sign up and we will help you with your program.
- If you are not programming, you are not studying.
- Your study time will be approximately 10 hours per week. Schedule your time accordingly.
- Python Programming Language
- Python Reference Manual
- How to Think Like a Computer Scientist
- Python Course
- python cheat sheet
- Official Python Tutorial
- Real Python
- Dive Into Python
- Python Regular Expressions
- Python Regular Expression Info
- Python Regular Expression Debugger
The following websites provide a good set of programming challenges that you can use to improve your programming knowledge and expericence.
- Leet Code https://leetcode.com/
- hackerrank https://www.hackerrank.com/
- hackerearth https://www.hackerearth.com/
- codingbat https://codingbat.com/python
- Geeks for Geeks https://www.geeksforgeeks.org/
- Kattis https://open.kattis.com/
- Python Challenge http://www.pythonchallenge.com/
- Project Euler http://projecteuler.net/
- Challenging Programs from ACM http://uva.onlinejudge.org/
- Ruby Quiz http://rubyquiz.com/
- Code Kata http://codekata.com/kata/codekata-intro/
- Riddles http://www.ocf.berkeley.edu/~wwu/riddles/intro.shtml
- Animation of Sorting Algorithms https://www.toptal.com/developers/sorting-algorithms
- Binary Search Tutorial https://www.hackerearth.com/practice/algorithms/searching/binary-search/tutorial/
- Time Complexities for Sorting Algorithm https://www.geeksforgeeks.org/time-complexities-of-all-sorting-algorithms/
- Big-O Notation http://bigocheatsheet.com/
- Example Solution Wiki for the Book third edition of Steven Skiena's The Algorithm Design Manual. https://www.algorist.com/algowiki/index.php/Solution_Wiki,_The_Algorithm_Design_Manual,_3rd_Edition
- Introduction to Algorithms, Fourth Edition, 2021. By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein (known as CLRS Algorithm Book) https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X
- The Algorithm Design Manual: Skiena, Steven S S. https://www.amazon.com/Algorithm-Design-Manual-Computer-Science/dp/3030542556
- The Practice of Computing Using Python, by W. Punch and R. Enbody, 3-rd edition, Pearson Publishing, ISBN 978-0-13-437976-0 https://www.amazon.com/Practice-Computing-Using-Python-3rd/dp/0134379764