Home | | Syllabus | |
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 http://mathcs.holycross.edu/~csci132
Instructor
Constance Royden
Office: Haberlin 308
Extension: 2472
Email: croyden@holycross.edu
Office Hours: Tues. 10 a.m. - 11 a.m., Wed. 1 - 4 p.m., or by appointment.
Lecture and Lab times
Lectures: Mon, Wed, Fri 11:00 - 11:50 a.m.
Labs: Section 10B: Tues 12:00 - 2:00 p.m.
Section 10A: Tues 2:00 - 4:00 p.m.
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 re-used 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.
Prerequisites
CSCI 131 or permission of the instructor. You should be comfortable with the basics
of C++ programming.
Textbook
Required: Data Structures and Program Design in C++,
by Robert Kruse and Alexander Ryba, Prentice Hall, 1999.
Course Requirements
There will be weekly lab assignments to be completed in the 2 hour lab each
week. Attendance at the labs is mandatory. There will be weekly or bi-weekly
homework assignments, which will require programming in C++. There will be two
midterm exams, and a final exam.
Late Assignment Policy
All assignments are due in class on the due date. Late assignments will be accepted,
with a penalty of 10% off the grade for each day after the due date. 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.
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:
Exams:
Midterms:
There will be two midterm exams held during the lab session on the following dates:
Exam 1: Tuesday, February 25
Exam 2: Tuesday, April 8
Please mark your calendars now.
Final:
The final exam will be held at the scheduled time during finals week.
Final Exam: Monday, May 12, 8:00 - 10:30 a.m.
Final Grade:
The final grade will be computed as follows:
Participation | 5% |
Labs | 10% |
Homework | 25% |
Exam 1 | 20% |
Exam 2 | 20% |
Final Exam | 20% |
Home | | Syllabus | |
Assignments | |
Lecture Notes
Constance Royden--croyden@mathcs.holycross.edu
Computer Science 132--Data Structures
Last Modified: January 20, 2014
Page Expires: January 14, 2015
|