Course Syllabus

Computer Science E-22
Data Structures
Fall 2016
David G. Sullivan PhD, Senior Lecturer on Computer Science, Boston University
Location: Harvard Hall, Room 104
Meeting Time: Wednesday, 7:40 pm - 9:40 pm

A survey of fundamental data structures for information processing, including lists, stacks, queues, trees, and graphs. The course explores the implementation of these data structures (both array-based and linked representations) and examines classic algorithms that use these structures for tasks such as sorting, searching, and text compression. The Java programming language will be used to demonstrate the concepts discussed in lecture, and programming problems must be completed in Java. Key notions of object-oriented programming, including encapsulation and abstract data types, are emphasized.

Prerequisites: A good working knowledge of Java (CSCI E-10b, or the equivalent).

On-campus lectures with online option.
Required sections to be arranged, also with online option.
Noncredit, undergraduate, graduate credit $2,550.
See http://www.extension.harvard.edu

Main course website: http://sites.harvard.edu/~cscie22
The assignments will be posted here, as will the lecture materials.

Requirements

  1. Problem sets: five assignments including a combination of written exercises and programming problems. All programming problems must be completed in Java, and they must compile and run in order to be eligible for full credit. Students taking the course for graduate credit will complete additional work on most assignments.
  2. Midterm exam
  3. Final exam
  4. Programming project (graduate-credit students only): an extra programming project that we will assign for you to complete during the last six weeks of the course.  The grade for this project will be factored into the homework portion of your grade.

Important note: The problem sets tend to be fairly time-consuming. If you have other major time commitments, you should reconsider whether to take this course.

Exam Policy for the Distance Education Program
Students whose primary residence throughout the term is in the six-state New England region (CT, ME, MA, NH, RI, VT) are expected to take the midterm and final examinations on campus as scheduled. Students whose primary residence throughout the term is outside of New England are expected to arrange to take their exams at alternate locations by finding a qualified proctor and submitting an online proctored examination form no later than one week before the on-campus exam date. See the course website for instructions on how to submit the proctor information online. Students should contact Academic Services, 617-495-0977, if they have any questions about this policy. 

Grading Policies
Late penalties: Homework is due prior to the start of lecture. If it is submitted more than 10 minutes after the start of lecture, it will be considered a full day late. There will be a 10% deduction for homework that is up to four days late, and a 20% deduction for homework that is 5-7 days late. We will not accept any homework that is more than 7 days late. Plan your time carefully, and don't wait until the last minute to begin an assignment. Starting early will give you ample time to ask questions and obtain assistance.

Determining the final grade:
      problem sets              50%
      midterm exam           17%
      final exam                 33%
The exams will count for a total of 65% (and the problem sets 35%) if doing so improves your final grade. The final exam can also replace the lowest assignment if doing so improves your final grade.

An EXT (extension) grade will be granted only in extreme circumstances (e.g., serious illness), and only when appropriate documentation has been provided. Please bring any such circumstances to Dr. Sullivan's attention as soon as possible.

Academic Conduct
Unless otherwise stated, all work submitted as part of this course is expected to be your own. You may discuss the main ideas of a given problem with other students (provided that you acknowledge doing so in your solution), but you must write the actual solution by yourself. This includes both programming assignments and other types of problems that we may assign.

Prohibited behaviors include: 

  • copying all or part of another person's work, even if you subsequently modify it
  • viewing all or part of another student's work
  • showing all or part of your work to another student
  • consulting solutions from past semesters, or those found in books or on the Web.

You are also responsible for understanding Harvard Extension School policies on academic integrity:
www.extension.harvard.edu/resources-policies/student-conduct/academic-integrity

Not knowing the rules, misunderstanding the rules, running out of time, submitting "the wrong version", or being overwhelmed with multiple demands are not acceptable excuses. There are no excuses for failure to uphold academic integrity.

If we believe that a student is guilty of academic dishonesty, we will refer the matter to the Administrative Board of the Extension School, who could require withdrawal from the course and suspension from all future work at the School.

Other Extension School Policies
We also expect you to know and adhere to the general policies and procedures of the Extension School. You can find more information here: http://www.extension.harvard.edu/resources-policies

Accessibility Services
The Extension School is committed to providing an accessible academic community. The Disability Services Office offers a variety of accommodations and services to students with documented disabilities. Please visit the following site for more information: www.extension.harvard.edu/resources-policies/resources/disability-services-accessibility

Textbooks

  • Computer Science E-22 coursepack. This will be available for download from the course website after the first lecture. More information will be given during the first lecture.
  • Optional: Data Structures & Algorithms in Java, 2nd edition by Robert Lafore (SAMS Publishing, 2003, ISBN 9780672324536).

Calendar (tentative)

1

August 31

Introduction. Abstract data types and object-oriented programming

2

September 7

Recursion and backtracking

3

September 14

Sorting and algorithm analysis I

4

September 21

Sorting and algorithm analysis II
Problem Set 1 due

5

September 28

Linked lists

6

October 5

Lists, stacks, and queues I
Problem Set 2 due

7

October 12

Lists, stacks, and queues II

8

October 19

Midterm exam (first hour)
State-space search (second hour)

9

October 26

Binary trees and Huffman encoding
Binary search trees
Problem Set 3 due

10

November 2

Balanced search trees (2-3 and B-trees)
Heaps and priority queues

11

November 9

Heaps and priority queues (cont.)
Hash tables

12

November 16

Graphs I
Problem Set 4 due

13

November 23

Thanksgiving break. No class.

14

November 30

Graphs II

15

December 7

Wrap-up and review
Problem Set 5 due

 

December 9

Programming projects due from grad-credit students

16

December 14

Final exam

Other important dates:
August 28: regular registration ends
September 6: late registration ends; course drop deadline for full-tuition refund
September 13: course drop deadline for half-tuition refund
November 25: Last day to withdraw for a grade of WD (no refund)

Course Summary:

Date Details Due