CSCI 132
Introduction to Data Structures
College of the Holy Cross, Spring 2018

Home | | Schedule | | Assignments | | Lecture Notes

Course Web Page
If you are viewing this on the web, you're here! Otherwise, find this page and other course information at

Zack Fitzsimmons
Office: Haberlin 310
Office Hours: Tuesday 4:00 PM-6:00 PM, Thursday 2:00 PM-4:00 PM, or by appointment.

Lecture and Lab times

Lecture (Swords 302): Monday/Wednesday/Friday 9:00 AM-9:50 AM.

Lab (Swords 219):
Section 10A: Tuesday 10:00 AM-12:00 PM.
Section 10B: Tuesday 2:00 PM-4:00 PM.

Course Description
Now that you know some of the basic tools of computer programming, this course will teach you to use those tools in an effective way. There are four main ideas we will be addressing in this course:

  1. Data Abstraction: In order to build programs that solve complex problems, it is important to specify the properties and behaviors of certain parts of the program independent of the implementation. We will learn about Abstract Data Types to think about specification and manipulation of these components of code.
  2. Modularity: Each piece of a program is much more useful if it can be combined with multiple other program pieces in a modular fashion. We will learn how to build program modules that can be used and reused in different programs.
  3. Algorithmic Complexity: Some solutions to problems are better than others in terms of their efficiency. Some have efficient use of memory space; others run more quickly. We will learn some tools to evaluate the efficiency of different algorithms.
  4. Standard Tools: We will learn some of the standard tools that should be a part of every programmer's toolkit. These include Stacks, Queues, Searching & Sorting algorithms, Tables, and Trees.

CSCI 131 or permission of the instructor. You should be comfortable with the basics of programming.

Data Structures and Program Design in C++, by Robert Kruse and Alexander Ryba, Prentice Hall, 1999.

Required course materials, including a copy of the above textbook to use during the semester, will be provided by the department.

It is expected that Holy Cross students will have textbooks and other required class materials in order to achieve academic success. If you are unable to purchase course materials, please go to the Financial Aid office where a staff member will be happy to provide you with information and assistance.


Homework Assignments (30%)
There will be nine homework assignments, which will require programming in C++.

Lab Assignments (10%)
There will be weekly lab assignments to be completed in the two-hour lab each week. Attendance at the labs is mandatory. Lab assignments should be completed by the end of lab, but will be accepted without penalty by the due date listed on the assignments page. Labs will not be accepted after this extended due date.

Midterm Exams (20% + 20%)
There will be two midterm exams held during lab. Their dates are listed below.

Final Exam (20%)
The final exam will be held at the scheduled time during finals week.

Late Policy
All assignments are due by the due date listed on the assignment. Late homework assignments will be accepted up to three days late, with a penalty of 10% each day after the due date (i.e., the maximum possible score is 90% for an assignment submitted one day late, 80% for an assignment submitted two days late, and 70% for an assignment submitted three days late). Note that this penalty is determined based on when all parts of the assignment have been successfully submitted. Some assignments will have stricter late penalties if they are due close to an examination date, so that solutions may be posted before the exam.

Numerical grades will be converted to letter grades according to the following scale.

This grading scale may be shifted down when calculating final course grades (i.e., a given numerical grade may convert to a higher letter grade), but this grading scale will not be shifted up (i.e., a given numerical grade will not convert to a lower letter grade than listed above).

Collaboration Policy
Collaboration on assignments is acceptable, although you must write the code for your programs entirely by yourself. You must also acknowledge the people you worked with on an assignment. If your program includes code that you obtained from another source, please acknowledge it. Specifically:

Please refer to the Math and CS Department Statement on Academic Integrity and the College Statement on Academic Integrity.

Disputing Your Grade
If you feel that an error was made in grading your work, you have one week from the moment the graded work was handed back to the class to dispute your grade. Grading issues should be taken up with me directly.

Excused Absence Policy
Exams and/or labs will only be rescheduled in the case of a valid reason with formal documentation. Please refer to the College's Excused Absence Policy and contact me as soon as possible to discuss your particular situation.

Disability Services
Any student who feels the need for accommodation based on the impact of a disability should contact the Office of Disability Services to discuss support services available. Once the office receives documentation supporting the request for accommodation, the student would meet privately with Disability Services to discuss reasonable and appropriate accommodations. The office can be reached by calling (508) 793-3693 or by visiting Hogan Campus Center, room 215A.

If you are already registered with Disability Services, please be sure to get your accommodation letters and deliver them to your instructors in a timely fashion. Instructors need 4-5 days advance notice to be able to facilitate the process of receiving testing accommodations.

Home | | Schedule | | Assignments | | Lecture Notes

Computer Science 132--Data Structures
Last Modified: January 22, 2018
Page Expires: May 16, 2018