Try   HackMD

Algorithms Lab



"Let all things be done decently and in order."
-- 1 Corinthians 14:40

"All go to the same place;
all come from dust, and to dust all return."
-- Ecclesiastes 3:20

"For whoever has will be given more,
and they will have an abundance.
Whoever does not have,
even what they have will be taken from them."
-- Matthew 25:29

"Premature optimization is the root of all evil."
-- Donald Ervin Knuth (1938-)

"If you want to master something, teach it.
The more you teach, the better you learn.
Teaching is a powerful tool to learning."
-- Richard Feynman (1918-1988)

Goal

This short course is designed for students who plan to learn about common data structures with efficient algorithms, solve LeetCode problems, and understand state-of-the-art information techniques. The achievements of Algorithms Lab are listed below:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
  • Develop problem-solving skills;
  • Implement data structures and algorithms;
  • Expand horizons by solving problems;
  • Solve LeetCode problems which are marked medium, even hard.

Instructor Information

Textbook

  • Robert Sedgewick and Kevin Wayne, Algorithms, 4/e, 2011
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • M. H. Alsuwaiyel, Algorithms: Design Techniques and Analysis, 2016
    Image Not Showing Possible Reasons
    • The image was uploaded to a note which you don't have access to
    • The note which the image was originally uploaded to has been deleted
    Learn More →

Programming Languages

  • The demo code primarily uses Java in class.
  • You could also use C, C++, C#, Python and JavaScript in this course.
    • I also plan to create a reference table to compare similarities and differences across multiple mainstream languages. You may take a look at it on this page. You are welcomed to join for this work.
    • I want to emphasize that with AI tools like ChatGPT and Claude available, differences in programming languages are no longer a valid reason to stop you.
  • You can find more information on setting up your development environment here.

Syllabus

Array

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →


Recursion

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →


Sorting & Searching


Analysis of Algorithms


Linked List


Source https://www.educative.io/


Tree


Source https://www.educative.io/


Hashing


Source https://miro.medium.com/max/3856/1*SCHCrY-GeCGjSbVk7P8kaQ.png


Source link


Graph


Source https://xkcd.com/399/


Strings


Dynamic Programming


Greedy Algorithms


Combinatorial Search with Backtracking


Randomized Algorithms


Infinite monkey theorem


Approximation Algorithms


Parallel Computing & Algorithms


Computing Theory





Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Alan Turing

Quantum Computing & Algorithms


MISC

Take a look at Algorithms Lab 2.


Take-Home Message

To be good, you have to start; to start, you don't have to be good.

Math is essential to Computer Science, even to Finance.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

TODO


References

Books

Courses

Quantum Computing & Algorithms

Linux

Computer Games

Online Judge Systems

Misc


Gradebook