Prof. Carl Sable, Spring 2017, The Cooper Union.
Faculty Website: http://faculty.cooper.edu/sable2/courses/spring2017/ece264/
Course Description: An introduction to fundamental data structures and algorithms, with an emphasis on practical implementation issues and good programming methodology. Topics include lists, stacks, queues, trees, hash tables and sorting algorithms. Also an introduction to analysis of algorithms with big-O notation. Assignments include programming projects and problem sets.
- Assignment 1: Implementing lists, stacks and queues (
Stacks-and-Queuesdirectory) - Assignment 2: Sorting linked lists (
Sortingdirectory)
Prof. Carl Sable, Fall 2017, The Cooper Union.
Faculty Website: http://faculty.cooper.edu/sable2/courses/fall2017/ece365/
Course Description: A continuation of ECE 264, also with an emphasis on practical implementation issues and good programming methodology. Topics include graphs, graph-related algorithms and dynamic programming techniques. Also an introduction to some advanced topics such as Turing machines, computability and NP-complete systems. Assignments include programming projects and problem sets.
- Assignment 1: Creating a spell checker using hash tables (
Hash-Tablesdirectory) - Assignment 2: Implementing a binary heap that utilizes a hash table from
Assignment 1 (
Heapsdirectory) - Assignment 3: Implementing Dijkstra's algorithm using the hash table and
binary heap from Assignments 1 and 2 (
Dijkstradirectory) - Assignment 4: A dynamic programming problem from the 1998 ACM programming
contest (
Dynamicdirectory)