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-Queues
directory) - Assignment 2: Sorting linked lists (
Sorting
directory)
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-Tables
directory) - Assignment 2: Implementing a binary heap that utilizes a hash table from
Assignment 1 (
Heaps
directory) - Assignment 3: Implementing Dijkstra's algorithm using the hash table and
binary heap from Assignments 1 and 2 (
Dijkstra
directory) - Assignment 4: A dynamic programming problem from the 1998 ACM programming
contest (
Dynamic
directory)