Overview
We will study intermediate and advanced data structures, computer algorithms,
and the analysis of both using techniques from discrete mathematics. We will also study
the implementation of these data structures and algorithms using the principles of generic
programming and data abstraction.
Data structures and algorithms form a major component of any software system.
When building such a system, a skilled computer scientist must make intelligent decisions
about alternative techniques, choosing from existing data structures and algorithms or
designing his/her own when necessary. While we will concentrate on the theoretical design
and analysis of data structures and algorithms, we will reinforce the theory with working
examples, laboratories, programming projects, and use of the C++ standard library.
Textbooks
Main text (required):
Data Structures and Algorithm Analysis in C++, 2nd Edition
by Mark Allen Weiss
C++ reference (suggested):
The C++ Programming Language, 3rd Edition
by Bjarne Stroustrup
It is expected that you already own a good C++ reference book. If you don not have
one, you should get one immediately and this book is highly recommended.
Lectures
See the class hour schedule for the time and place of your lecture section. You
are responsible for all material and announcements made in lecture. Exams and
material may vary between lectures, so you must attend your assigned lecture.
Laboratories
See the class hour schedule for the time and place of your lab section. Labs
will be weekly and attendance is required. Those who show up late for lab or those who
leave early without completing the lab will not receive credit. Labs cannot be made up.
The exams will contain material covered in labs. Due to the size of the sections and
the limited number of computers, you must attend your assigned lab section. The TA
will take attendance and you will not receive credit unless you attend your assigned
section.
Programming Projects
Four programming projects will be assigned during the semester. Programs will be
written in C++ using the standard library and must follow certain guidelines. Students may
only collaborate to share design and debugging ideas or to spot compiler errors. Code may
not be shared. Project submissions will be compared electronically using a variety of
software tools to detect code similarity. Each student caught cheating on a project will
receive a grade of zero for that project and will be reported to the Dean of Students
office. Late submissions will not be accepted. Any project submitted after 11:59:59 PM on
the due date will be given a grade of zero. It is the students responsibility to verify
that their project was properly submitted and accepted for grading.
Exams
During the semester, there will be three exams covering both the lecture and lab
material. With advanced notice, the exam schedule may be altered throughout the
semester. There will be no makeup exams given. If you miss an exam you will
receive a grade of zero. To be excused from an exam, a student must present a
doctor's note or a letter from the Dean prior to the exam date.
Academic Integrity
It is very important that each student use his or her best judgment to ensure
academic integrity in this class. We've outlined guidelines above concerning collaboration
which everyone is expected to follow. Copying sections of another person's code for a
project and copying answers from another person during an exam are considered cheating.
Refer to the the Rensselaer Handbook for other various forms of academic dishonesty.
Academic dishonesty will be dealt with harshly.
Course Web Site
The course web site is http://www.cs.rpi.edu/~breime/fall2000/dsa/
. It will include information about labs, exams, and projects. You should check it
fairly often for updates.
|