Data Structures

Computer Science 151
Fall, 2018

Course Objectives

Grading Procedures

Your grade will be based on prelabs, labs, and and two exams.

Point breakdown (tentative):

Labs and prelabs
Midterm Exam (October 17)
Final Exam (December 19, 2-4 pm)


Assignments in the course will consist of labs and prelabs, as in 150.  Prelabs will be assigned on Fridays and are due at the beginning of class (10 am) on Mondays.  Late prelabs are not accepted.

The labs for this class are on Monday and Tuesday afternoons.  Completed labs are due by 11:59 pm on the following Sunday.  Labs that are submitted one day late (i.e, up to Monday at 11:59) will be assessed a 10% penalty.  Labs that are submitted two or three days late (up to Wednesday at 11:59) will be assessed a 40% penalty.  Labs more than three days late will not be accepted.  However, you have 2 Late Lab Exceptions that allow you to hand in a lab up to 3 days late (i.e, up to Wednesday at 11:59 pm) without penalty.  To use such an exception, include a text file in the folder you are handing in, with file name LateLabException.txt. The body of this file should say "This is my 1st (or 2nd) exception." Note that these exceptions cover any reason for being late with your work, from "I was sick over the weekend" to "My dog ate my laptop."  Only one late lab exception may be used per assignment.

You are strongly encouraged to turn in all of your labs on time.   Be sure to submit early!

Regular class attendance and participation is expected.  Excessive absence may result in a lower final grade.

Student Disabilities

If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made.  Support is available through Student Academic Services.  You will need to contact them to get your disability documented before accommodations can be made.

Academic integrity

All work in this course is to be performed in accordance with the college's Oberlin Honor Code.  You must write the Honor Pledge and sign it at the end of every submission.  Electronic submissions must include the honor pledge in the comments and your name.  The pledge is "I have adhered to the Honor Code in this assignment."

In particular, on all of the exams you are responsible for your own work; you may neither give nor receive aid during the course of the exam.  No electronic devices are permitted in exams.

That being said, in a hands-on course such as this one, some discussion of lab assignments is expected and encouraged.  A few specific do's and don't's:

In the end, the work you submit must be your own.  If you're not sure what is acceptable in a given situation, please ask me about it.

Course outline

  1. Course overview.  Programming in Java.  (Chapters 1-4)
  2. Foundations of algorithm analysis:  measuring run time.  (Chapter 5)
  3. Java collection classes (Chapter 6)
  4. Stacks and queues.  (Chapters 16, 11)
  5. Linked lists.  (Chapter 17 )
  6. Iterators.  (Chapter 15)
  7. Binary trees and binary search trees.  (Chapters 18, 19)
  8. The Map and Set interfaces.  (Chapter 13)
  9. More tree types (heaps, B-trees, tries).  (Chapters 19, 21)
  10. Hash tables.  (Chapter 20)
  11. Sorting algorithms.  (Chapter 8)
  12. Graphs.  (Chapter 14)