Computer Science 271
Data Structures

Denison
cs271 Home Page
Computer Science 271
Data Structures
Spring 2012
 
Professor: Thomas C. Bressoud Phone: 587-5630
Office: Olin 207 E-mail: bressoud@denison.edu
Office Hours: See Bressoud Spring Schedule Mailbox: Olin 201
Meeting Times:

MWRF in Olin 220
8:30 a.m. - 9:20 a.m.

Final Exam: A -- Wed. May 2, 9-11am

Description

An algorithm is a well-defined sequence of computational steps that transforms an input into some output. The design, analysis, and implementation of efficient algorithms plays a central role in the study of computer science. Very often, the structure of the information that is operated upon by an algorithm is vital to the efficiency of the algorithm. In this course, we will study several useful data structures and how to efficiently solve problems using them. This course acts as the foundation for every later course in the major.

Textbook

The following textbook is required for the course, and is available in the bookstore:

bullet Introduction to Algorithms, Third Edition, by T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. 2009, MIT Press, ISBN 978-0-262-03384-8.

Grade Determination

Midterm Tests (3):
35%
Homework:    
30%
Quizzes and Class Participation:
15%
Final Exam:
20%

Course Web Page

A web page will be maintained for this course.  The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information.  I expect you to check the web page regularly.

http://www.denison.edu/~bressoud/cs271-s12/

Course Topics

Here is a list of the topics that we will cover during CS 271:

  1. Algorithm Analysis
  • Asymptotic notation and growth of functions
  • Worst case analysis
  • Recurrence relations, proofs by induction
  • Master Theorem
  • Proofs of data structure properties
  • Loop invariants and arguing correctness of algorithms
  • Average case analysis
  1. Sorting Algorithms
  2. Binary Search Trees
  3. Binary Heaps, Heapsort, Priority Queues
  4. Hash tables
  5. Balanced search trees
  6. Disjoint Sets
  7. Dynamic Programming
  8. Other Data Structures
  9. C++ Programming Techniques

Course Work

Homework

There will be appoximately eight to ten homeworks assigned over the course of the semester. Each of these will be a mixture of problems in analysis, proofs, and programming. Earlier in the semester, more of each assignment will be of the analysis and proof variety, but later in the semester, the programming will take the focus. The non-programming part of each assignment must be typeset using LaTeX. Turning in a handwritten homework assignment will result in an automatic 10% deduction from the grade. Each student is allowed 1 grace day over the semester. I will also accept late assignments with an automatic deduction of 10% per day, up to a maximum of 50% off of the assignment. Because we will discuss solutions to the analysis and proofs, these can no longer be turned in once the discussion has taken place and the assignment has been returned to the rest of the class.

Homework problems will have a wide variety of difficulty levels, and the programming of these new data structures can have significant debugging required. So you are well advised to start early. I expect the effort expended on homework to take 10+ hours per week. (This is net actual time, not gross time spent "in the lab", or multitasking with other activities. ;-) Also, if you are novice to typesetting mathematics in LaTeX, you may spend some additional time, particularly early in the semester, learning how to accomplish this.

Quizzes

We will have quizzes at least once a week to help keep us current with the material. Occasionally, I may have two quizzes in a week, and not all quizzes will be announced. Material for the quizzes will be based on both the recent reading and the recent lecture topics. Quizzes will not be given on weeks when midterms occur.

Policies and Student Responsibilities

Participation and Attendance
In general, we would like everyone to do their part to make this an enjoyable and interactive experience. Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc. Note that there is a significant portion of your grade attributed to class participation.  Any day that you do not attend class, you (by definition) do not participate, and so be very careful about missing class, as it will affect your grade.

Your attendance is expected at each class meeting. Through the class participation portion of the grade, I will reduce your grade for absences.  Up to 3 excused absences will be tolerated without affecting your grade. Such absences should be communicated to me in advance.

Readings and In-class Material

You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class, whether or not you are present. If you must miss a class, you are responsible to get what you missed.

It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.

Disability Accomodation

Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss his or her specific needs. I rely on the Academic Support & Enrichment Center in 102 Doane to verify the need for reasonable accommodations based on documentation on file in that office.

Academic Integrity

Proposed and developed by Denison students, passed unanimously by DCGA and Denison’s faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated.

Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.

For further information about the Code of Academic Integrity see http://www.denison.edu/about/integrity.html