Ursinus CS 271: Data Structures And Algorithms, Fall 2023
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: Hash Maps And Tweets
Assignment 2: Plant Cell Segmentation
Assignment 3: Seam Carving
Art Contest
Assignment 4: Fair Elections of Pop Stars
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: ADT Module
Week 2: Doubly Linked Lists
Week 2: Needle in A Haystack / Intro To Hashing
Week 2: Harry Potter Hashing
Week 3: Discovering Disjoint Set Data Structures
Week 3: Disjoint Sets / Union Find Pre-Lab Module
Week 3: Informal Introduction To Big-O Notation
Week 3/4: Asymptotics
Exploring complexity hierarchies in matplotlib
Week 4: Recursion Module
Week 4: Edit Distance Module
Week 5: Edit Distance Backtracing
Week 5: Longest Common Subsequence Module
Week 6: Sorting Basics Module
Week 7: The Kendall Tau Distance between Two Rankings
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 10: Tree Rotations Exercise
Week 12: Introduction To Graph Data Structures Module
Week 13: BFS/DFS And Traveling Salesperson Module
Final Assessment
Mock Coding Interview
Geometric Algorithm Multimedia Expo
Data Structure "Serious Game"