CS 214: Data Structures

Syllabus – Fall 2019

Harris Hall 107, TuTh, 9:30–10:50 AM

Course staff & office hours

Instructor: Jesse Tov jesse@cs TuTh 3–4:30 PM in Mudd 3510
Grad TAs: Kaiyu Hou KaiyuHou2022@u
Leif Rasmussen LeifR@u
Peer TAs: Aishwarya Jois AishwaryaJois2021@u
Calypso Sheridan Calypso.Sheridan@u
David Lee DavidLee2021@u
Jonathan Chan JonathanChan@u
Lilliana de Souza LillianaDeSouza2021@u
Mario Lizano MarioLizano2020@u

General information

CS 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.

Prerequisites

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

Exams

We will have two in-class examinations:

There will be no final exam.

Materials

Software

We will be using a programming language called Data Structures Student Language (Version 2), or DSSL2 for short. It runs inside the DrRacket environment, so you will need to install the latest version of that.

To install DSSL2, you must first run DrRacket. Then copy this URL to your clipboard:

Go the the File menu in DrRacket, and choose Install Package…. In the box that appears, paste the URL from above, and then click the Install button. When it’s done, the Install button will change to Update, indicating that the package is installed. (If changes are made to DSSL in the future then you will use this same procedure to update it.)

Books

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

Online resources

Lectures

This table specifies the lecture schedule; topics are tentative.

September
Tu Th
24 Intro: What’s a data structure? [slides]; Boxes & arrows [slides] 26 Structs, arrays, and classes in DSSL2 [slides, code]
October
Tu Th
1 Linked lists [slides, code] 3 Abstract data types; stack and queue ADTs [slides, DSSL2, Java: 1 2, C: 1 2, C++]
8 Dictionary ADT [slides]; binary search trees [slides] Homework 1 due 10 Hashing; hash tables [slides, code]
15 Big-O notation [slides] Homework 2 due 17 Trees and tree walks [slides, code]
22 Graphs and their representations [slides] Homework 3 due 24 Graph search [slides]
29 Review session 31 Exam 1
November
TuTh
5 Dijkstra’s algorithm [slides]; priority queue ADT; binary heaps [slides] Homework 4 due 7 Minimum spanning tree [slides]; disjoint sets ADT
12 Union-find [slides] Homework 5 due 14 Amortized analysis & dynamic arrays [slides, C++]
19 Random binary search trees [slides, code] Homework 6 due 21 Balanced search trees [slides, AVL code, RB code]; data structures in C and C++ [slides, code (ZIP)]
26 Bit vectors and Bloom filters [notes, code: 1 2] 28 – Thanksgiving —
December
TuTh
3 Review session Homework 7 due 5 Exam 2

Homework schedule

General homework policies are here. All code and self evalutions are due at 11:59 PM on the listed dates.

HW# Link Available Code Due Self Eval Due
1 DSSL2 Warmup Thu, Sep 26 Wed, Oct 9 Fri, Oct 11
2 Dictionaries Tue, Oct 8 Tue, Oct 15 Thu, Oct 17
3 Hash Table Tue, Oct 15 Tue, Oct 22 Thu, Oct 24
4 Graph Tue, Oct 22 Tue, Nov 5 Thu, Nov 7
5 Binary Heap Tue, Nov 5 Tue, Nov 12 Thu, Nov 14
6 Union-Find Tue, Nov 12 Tue, Nov 19 Thu, Nov 21
7 Trip Planner Sun, Nov 24 Tue, Dec 3 Fri, Dec 6

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 might be completed with an assigned partner. You must collaborate with your assigned partner, 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 Campuswire discussion 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 reported to the appropriate dean.

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

Homework

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

Late work

No late work will be accepted.

Grades

Your grade will be based on your performance on seven programming assignments (worth 50% total) and two in-class exams (worth 25% each). Your lowest homework assignment, excepting HW7, will not be counted. There will be no final exam.

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