CSE 2010 Algorithms and Data Structures
Phil Chan
214 Harris Center, 674-7280
pkc@cs.fit.edu
Office Hours: MW 11am-1pm (or by appointment)
Teaching Assistant:
- Thomas van Haastrecht, tvanhaastrec2015@my.fit.edu; Office hours: Thu 11am-1pm, Harris Center 211
Syllabus
Textbook
- Goodrich et al., Data Structures and Algorithms in Java, 6th Edition, Wiley, 2014.
- (For C, I recommend: Thomas A. Standish, Data Structures, Algorithms & Software Principles in C, Addison Wesley, 1994.)
A Short Guide to code01.fit.edu
Assignments (Submit Server)
- HW1 --- HW1.java,
Sample Input File 1, Sample Output 1,
Sample Input File 2, Sample Output 2
- HW2 --- HW2.java,
Sample Input File 1, Sample Output 1,
Sample Input File 2, Sample Output 2
- HW3 --- HW3.java,
Sample input data file 1,
Sample input query file 1,
Sample output 1;
Sample input data file 2,
Sample input query file 2,
Sample output 2
- HW4 --- HW4.java,
HeapPriorityQueue.java,
AbstractPriorityQueue.java,
PriorityQueue.java,
Entry.java,
DefaultComparator.java,
Sample input 1,
Sample output 1;
Sample input 2,
Sample output 2
- HW5 --- HW5.java,
FakeRandHeight.java,
DoublyLinkedList.java
(fakeRandHeight.c,
fakeRandHeight.h,
doublyLinkedList.c,
doublyLinkedList.h)
Sample input 1,
Sample output 1;
Sample input 2,
Sample output 2
- HW6 --- HW6.java,
hw6in1.txt, hw6out1.txt
hw6in2.txt, hw6out2.txt
extra credit (same input as above):
hw6ex1out1.txt, hw6ex1out2.txt
hw6ex2out1.txt, hw6ex2out2.txt
hw6ex3out1.txt, hw6ex3out2.txt
Lecture Notes
- Introduction
- Growing your mind, The power of believing that you can improve, Neuroplasticity (cartoon), Neuroplasticity (Lara Boyd)
- Don't eat the marshmallow [setup: 0:25-0:48; kids: 2:45-4:45]; Resisting the marshmallow and the success of self-control [1:25 to 3:00; if-then plan: 4:30-5:30]
-
- Arrays and Lists (Ch3.1-3.4)
Arrays,
Singly Linked Lists,
Doubly Linked Lists
- Analysis of Algorithms (Ch4.1-4.3)
Analysis of Algorithms,
How to: Prepare for a Google Engineering Interview [0:32 - 1:45 --- data structures and algorithms, time and space complexity, relative merits of multiple solutions]
- Recursion (Ch5) Recursion
- Stacks and Queues (Ch6.1-6.2) Queues, Stacks
- Trees (Ch8) Trees,
Turkducken and Trees,
- Priority Queues (Ch 9.1-9.4)
Priority Queues, Emergency Triage Scale, Google Ad Rank,
Heaps,
HeapSort, Obama on sorting
- Maps, Hash Tables, Sorted Maps (Ch10.1-10.4)
Maps,
Hash Tables, # of Facebook users,
Skip Lists
- Graphs (Ch14) Graphs,
Depth-first Search,
Breadth-first Search,
Connectivity and Spanning Trees,
Maze-Solving Robot,
Shortest Path, Directions in Google Maps,
Minimum Spanning Tree,
Directed Graphs
- Text Processing (Ch13):
Pattern Matching,
Tries,
Huffman Encoding, text compression
Longest Common Subsequence
- Search Trees (Ch11: 11.1-11.3,5) Binary Search Trees, AVL Trees,
2-4 Trees,
- Sorting (Ch12.1-12.2: MergeSort, QuickSort)
Merge Sort,
Quick Sort
- Data Structures and Algorithms: A Summary