Ursinus CS 371: Data Structures And Algorithms, Spring 2022
Needle in A Haystack / Intro To Hashing
Chris Tralie
Menu
General
Overview
Technology Logistics
Deliverables
Debugging Principles
Grading
Classroom Environment
Participation
Collaboration Policy
Other Resources / Policies
Software
Schedule
Assignments
Assignment 1: Autocomplete And Spell Check
Assignment 2: Plant Cell Segmentation
Assignment 3a (Individual): Warping Paths And Delannoy Numbers
Assignment 3b: Seam Carving
Assignment 4: Fair Elections of Animals
Assignment 5: Phyolgenetic Trees
Assignment 6: Traveling Salesperson Art
Art Contest
Labs
Lab 1: Binary Search
Lab 2: Union Find
Lab 3: Towers of Hanoi
Lab 4: Dynamic Time Warping
Lab 5: Merge Sort And Brute Force Kendall-Tau
Lab 6: Tree Node Removal
Lab 7: AVL Trees
Class Exercises / Notes
Week 1: Python Self Study Modules
Week 1: A CS Definition of The Log Function
Week 1/2: Needle in A Haystack / Intro To Hashing
Week 2: Harry Potter Hashing
Week 2: Black Box Sorting in Python
Week 3: Big-O Self Study Quiz
Week 3: Big-O Exercises
Week 4: Discovering Disjoint Set Data Structures
Week 4: Disjoint Sets / Union Find Module
Week 5: Recursion Module
Week 5: Edit Distance Module
Week 5: Edit Distance And Backtracing
Week 6: Dynamic Time Warping Notes
Week 6: Backtracing / Making Change
Week 7: Greedy Time Warping Pitfalls
Week 8: Sorting Basics Module
Week 8: The Kendall Tau Distance between Two Rankings
Week 9: Radix Sort
Week 9: Radix Sort / Fisher Yates Module
Week 10: Binary Trees Module
Week 11: Minimum Spanning Trees And Kruskal's Algorithm
Week 11: Phyolgenetic Trees, Needleman-Wunsch, And Single-Linkage Clustering
Week 12/13: Huffman Trees Module
Optional Spring 2021 Modules
Module 0: Warmup
Module 1: Python Basics
Module 2: Numpy, Matplotlib, Python Classes
Module 3: Disjoint Set Data Structures
Module 4: Analytical Time Complexity And Big O
Module 5: Little-o And Python Linked Lists
Module 6: The List Data Structure And Amortized Cost
Module 7: Amortized Cost Proof, Binary Search
Module 8: Binary Search Implementation, Sets/Maps
Module 9: Sierpinski Triangle, Stacks/Queues Review, Towers of Hanoi
Module 10: Proofs by Induction, Memoization, String Edit Distance
Module 11: String Edit Distance Backtracing Solutions, Making Change
Module 13: Longest Common Subsequence
Module 14: Intro To Sorting
Module 15: Recursive Sorts And Sorting Theory
Module 16: Radix Sort, Fisher-Yates Shuffling
Module 17: Intro To Binary Trees, Preorder/Inorder/Postorder
Module 18: Binary Search Trees: Contains/Addition/Removal
Module 19: Huffman Trees
Module 20: Heaps And Dijkstra's
Module 21: Minimum Spanning Trees
Final Assessment
Mock Coding Interview
Geometric Algorithm Multimedia Expo