EECS 214: Data Structures

Syllabus – Fall 2015

Tech L361, MWF, 12–1 PM

Course staff & office hours

Instructor: Jesse Tov jesse@eecs Ford 2-215 M 2–4, Tu 11-1, and gladly by appointment
TAs: Yang Hu yanghu2019@u Wilkinson Lab W 2–4
Arindam Paul ArindamPaul2012@u Tech LG65 M 10–12
Pei Yu PeiYu2018@u Tech D130 Th 3–5

General information

EECS 214 teaches the design, implementation, analysis, and proper application of abstract data types, data structures, and their algorithms. Topics include: data versus information, correctness, asymptotic analysis, and a wide variety of data structures.


This course assumes familiarity with programming as taught in EECS 111 and 211.


We will have two in-class examinations:

There will be no final exam.



Language versions TBD.


There is no required textbook, but you may find these books useful:

Online resources


This table specifies the lecture schedule; topics are tentative.

21 Intro: What’s a data structure? [notes] 23 EECS 214 [notes] 25 The Random Access Machine model* [slides]
28Set theory* [notes] 30More discrete math* [notes]
2Even more discrete math [notes]
5- cancelled - 7Prefix codes* [notes] 9Huffman trees [notes]
12Trees and tree walks§ [notes] 14Linked lists 16Circular and doubly-linked lists
19Sequences (lists, arrays) [slides] 21Intro to complexity* [slides] 23Exam review [practice questions, solutions]
26Exam 1 28Asymptotic complexity* [slides] 30Big-O notation in practice* [slides, code]
2Abstract data types* (FIFO queues, ring buffers, priority queues) [slides, code] 4Binary heaps [slides] 6Binary search trees [slides, code]
9 AVL trees; representation invariants* [slides, code] 11 13Amortized analysis* (dynamic arrays) [slides]
16Disjoint sets (union-find) [slides] 18Probabilistic data structures* (Bloom filters, hash tables) [slides] 20Graphs and graph search§ [slides]
23Graph representations (adjacency lists and matrices) [slides] 25 Single-source shortest path algorithms§ [slides, code] 27– No class: Thanksgiving –
30Review session
2Exam 2 4The take-away


*concepts and skills
concrete data structures
abstract data types

Homework schedule

General homework policies are here.

Link Assigned Due
Homework 2 Mon., Nov. 9 Mon., Nov. 16 at 11:59 PM
Homework 3 Mon., Nov. 16 Mon., Nov. 23 at 11:59 PM
Homework 1 and guide Tue., Oct. 13 Mon., Dec. 7 at 11:59 PM
Homework 4 Mon., Nov. 23 Mon., Dec. 7 at 11:59 PM

Course policies

Collaboration and academic integrity

You may not collaborate with anyone on any of the exams. You may not use any electronic tools, including phones, tablets, netbooks, laptops, desktop computers, etc. If in doubt, ask a member of the course staff.

Some homework assignments will be completed with an assigned partner, and some may involve a larger team (TBD). You must collaborate with your assigned partner or team, as specified, on homework assignments. You may request help from any staff member on homework. (When you are working with a partner, we strongly recommend that you request help with your partner.) You may use the Piazza bulletin board to ask questions regarding assignments, so long as your questions (and answers) do not reveal information regarding solutions. You may not get any help from anyone else on a homework assignment; all material submitted must be your own. If in doubt, ask a member of the course staff.

Providing illicit help to another student is also cheating, and will be punished the same as receiving illicit help. It is your responsibility to safeguard your own work.

Students who cheat will be withdrawn from the course and reported to the appropriate dean.

If you are unclear on any of these policies, please ask a member of the course staff.


In general, you should submit your homework according to the instructions on the web page for the individual assignments.

More TBD

Late work



Your grade will be based on your performance on four programming assignments and two midterm exams, equally weighted. There will be no final exam.

The mapping of raw point totals to letter grades is at the discretion of the instructor.