Ursinus CS 271: Data Structures And Algorithms, Fall 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
Online-Python
Google Colab
Schedule
Assignments
Assignment 1: Autocomplete
Assignment 2: Plant Cell Segmentation
Assignment 3: Seam Carving
Art Contest
Assignment 4: Fair Elections of Foods
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: Making Change with Dynamic Programming
Lab 5: Merge Sort And Kendall-Tau Comprehension
Lab 6: Tree Node Removal
Lab 7: AVL Trees
Class Exercises / Notes
Week 1: Python Self Study Modules
Week 1: Intro To Exponents / Exponential Time Algorithms
Week 1: A CS Definition of The Log Function
Week 1: Loops in Python
Week 2: Black Box Sorting in Python
Week 2: Doubly Linked Lists
Week 2: Big-O Self Study Quiz
Week 2: Asymptotics
Week 3: Discovering Disjoint Set Data Structures
Week 3: Disjoint Sets / Union Find Pre-Lab Module
Week 4: Needle in A Haystack / Intro To Hashing
Week 4: Harry Potter Hashing
Week 4: Hash Tables Exercise And Spell Check
Week 4: Stacks And Queues Module
Week 4: Recursion Module
Week 4: Edit Distance Module
Week 5: Edit Distance Backtracing
Week 5: Longest Common Subsequence Module
Week 7: The Kendall Tau Distance between Two Rankings
Week 7: Sorting Basics Module
Week 8: Counting Sort + Radix Sort
Week 9: Trees Module
Week 9: Minimum Spanning Trees And Kruskal's Algorithm
Week 9: Phyolgenetic Trees, Needleman-Wunsch, And Single-Linkage Clustering
Week 11: Tree Rotations Exercise
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