CS 211 — Data Structures

Spring 2013

Instructor Christopher Andrews
Office Clapp 226
Email andrews@mtholyoke.edu
Course Website http://www.mtholyoke.edu/~andrews/cs211
Lectures TTh 11:30-12:45, F 03:15-04:05 Clapp 224
TAs Kim Faughnan, Marcy Rattner
Discussion forum https://piazza.com/mtholyoke/spring2013/cs211/home
Optional / Recommended Textbooks
Corman, Leiserson, Rivest, & Stein, "Introduction to Algorithms, Third Edition", MIT Press, 2009.

This is a classic CS text. While it is about algorithms, it does provide nice coverage of the classic data structures.

Mann "Data Structures & Other Objects Using Java, 4nd Edition", Pearson, 2012.

In theory you all have this book already, and it covers much of the material we will be talking about.

Bailey "Java Structures: Data Structures in Java for the Principled Programmer", 2007.

This book is a free download available from the author's website.

Office Hours — Clapp 226
T 4:00p-6:00p
W 4:00p-6:00p
F 4:30p-6:00p
or by appointment
TA Hours — Clapp 202
T, Th 7:30-9:30
Course Objectives
- At the end of this course you should be familiar with at least the following structures: lists, stacks, queues, binary trees, heaps, priority queues, binary search trees, maps, and hash tables.
- For each structure, you should know what the structure is, what it is used for, its performance characteristics, how to implement it, and when possible, which class in the Java API provides it.
- You should also be able to do basic asymptotic analysis using Big-O notation.
- You should be able to write unit tests using JUnit and be able to conduct test-driven design.
- The final objective of this course is to give you experience building and testing complex programs.
Course Outline
schedule is tentative; the more detailed and authoritative schedule is here
When What
Week 0 Introductions
Week 1 Review: Linear structures
Week 2 Complexity analysis
Week 3 Binary Trees
Week 4 More binary trees
Week 5 Heaps
Week 6 Midterm
Week 7 Priority queues
Week 8 Binary search trees
Week 9 More search trees
Week 10 Associative structures
Week 11 Red black trees
Week 12 Hash maps
Week 13 Graphs
Week 14 Review
Week 15 (12.16.12) Exams

Assignments and Grading

Exams
There will be two exams — one midterm and one final.
Homework Assignments
This is a programming intensive course, and I will keep you quite busy. Programming will make up the bulk of the assignment, but they may be complimented with assorted questions that flesh out the assignments and touch upon aspects of the material that aren't touched by the actual programming assignments. Details about turning these in will be provided.
Point distribution
Final Exam 15%
Midterms 15%
Homework assignments 70%

Policies

Attendance
I will not take attendance, but classes will be heavy on demonstrations and interactive lectures, so you are expected to attend class. If you can't attend a class:
  • Please inform me before class that you won't be able to make it.
  • Make-up exams will be given by prior arrangement only. I need to know at least a day ahead of time if you can't make it to an exam (and this does not guarantee that I will grant the extension). A zero will be awarded to those who just don't show up.
  • Being absent isn't an excuse for not getting your work in on time.
  • You are responsible for anything that happens in class.
Assignments
I will expect assignments to be handed in on the day when they are due. In order to encourage you to do the work, even if it is late, I will except late work, but it will be docked by 10% of the total possible points for each day that it is late. The first late day starts right after class the day it is due and a day will be defined as a twenty-four hour period starting at the beginning of class. Since there are some points when you just can't complete an assignment on time, you each will have five "get out of jail free" cards. Each one is worth one full day off an assignment (these are not valid on exams). You can use them however you like with no questions, BUT no work will be accepted after four days without a conversation with me first.
Getting help
We are going to be using Piazza for our class discussions outside of class. Rather than emailing questions to me or the TAs, I encourage you to post the questions on Piazza. This will allow other students to answer questions and to benefit from the answers you receive. This system will only work if you use it, so please do so.
Collaboration
Your classmates are a marvelous resource. I encourage you to make use of them. I encourage you to feel free to answer questions on Piazza when your classmates are struggling. However, I expect everyone to do their own work. I expect any work that you hand in to be entirely your own — anything else will be considered a violation of the honor code. The only exceptions will be for assignments which are explicitly labeled as collaborative. A general rule of thumb is that if you are working with a classmate and you notice that other than variable names you code looks the same, you are probably working together too closely. When in doubt, ask. here are some more specific examples:
  • Good: Discussing a general algorithm on a whiteboard in a group or on Piazza
  • Good: Explaining code examples provided in class or on this website to a classmate
  • Good: Helping a classmate debug her code
  • Bad: Sharing your code with a classmate
  • Bad: Debugging in which you say "let me show you how I did it" or "just write blah here"
Using the Web and other references
The Web is a marvelous source of information. However, it is not supposed to do your homework for you. Some of what we are doing are classic problems, and you may find rather complete solutions online. Please don't just copy code and hand it in, this would be plagiarism. If you use more than a single line of code, attribute it to the source. The library provides an online tutorial on the proper use of sources as well. Again, if you have any doubt, please just ask.
Accommodations for disabilities
Students who need test or classroom accommodations due to a disability must be registered in advance with Disability Services and have a letter from that office confirming the needed accommodation. Students who may need disability-related accommodations are encouraged to make an appointment with me as soon as possible.

Last modified: Tue Jan 29 11:12:34 EST 2013