Basic Information
An Introduction to Some Fundamental Algorithms and Data Structures Used in Current Applications. Cryptocurrencies (hashing, Merkle Trees, Proofs of Work), Ai (nearest Neighbor Methods, K-d Trees, Autoencoders), and Vr/ar (gradient Descent, Least Squares, Line-drawing Algorithms). Lectures Will Be Supplemented With Occasional Applied Laboratory Taught in The Evening. Progamming Assignments in Python. Learning Outcomes# at The End of The Course The Students Will# 1. Understand Important Cs Algorithms (such As Hashing and Dynamic Programming), Including The Ability to Write Correct Code And Pseudocode. 2. Solve Standard Dynamic Programming Problems, By Writing The Recurrence And Programming a Solution. 3. Apply Hashing Techniques Where Appropriate, Including Situations Where Their Applicability Is Not Immediately Obvious (such As Nearest Neighbor Search). 4. Understand Streaming Algorithms and Their Tradeoffs and Apply Such Methods Where They Are Useful. 5. Understand Image Processing Methods Such As Convolution and Image Segmentation.