Thomas P. Kelliher
Office phone: 946-7290
Home phone: 946-3544 (emergencies only, please)
email: Send mail to kelliher AT DOMAIN abacus.westminster.edu
Office hours: MW 3:00--4:00pm. TR 1:00--2:30pm. Other times by
The objectives of this class are to continue the study
of concepts which are common to imperative programming languages, modular
programming, and object oriented programming, and to begin the study of
data structures, algorithms, and their evaluation methods. Some examples:
- Modular programming (the old paradigm).
- Object oriented programming, classes, and abstract data
types (the new paradigm).
- Complex selection and repetition structures, logic.
- Parameter passing mechanisms, pointers, and recursion.
- Files --- sequential, random access.
- Introduction to closed form solutions for summations and asymptotic
- Data structures --- linear lists, stacks, queues, etc.
- Algorithms --- sorting, searching, etc.
Y. Uckan, Problem Solving Using C++, Structured and Object Oriented
Programming Techniques, Irwin, 1995.
F. M. Carrano, Data Abstraction and Problem Solving with C++,
- Required Materials:
A few 3.5" floppy diskettes.
Preferably, these should be high density diskettes. For some of the
programming assignments, you may be required to turn in a diskette, which
will be returned to you as soon as possible. The diskette you turn in must
be a high density diskette formatted to 1.44MB capacity.
- Additional Resources:
Turbo C++ 3.0 User's Guide, Borland International, 1992. The
reference manual for the Turbo C++ development environment. Department copy
on reserve in Mack Library.
A = [90--100]
B = [80--90)
I use +/- grading sparingly.
Course Point Distribution
There will be approximately 1000 total points for the class. They will be
distributed as follows:
- Assignments --- Assignments will vary from simple programs which
will be due one week after they are given out to longer, multi-week
projects. Assignments will be collected during class on the due date.
Any assignment received after this time will be considered late, and
will be accepted only by prior agreement.
Some in-class assignments (closed labs) for credit may be given. If you
are not present when an in-class assignment is given, but have a valid
excuse, you will be permitted to make-up the work. Otherwise, you will
not be permitted to make-up the work.
- Unannounced Quizzes --- Five short unannounced quizzes will be
given throughout the semester. Each quiz will cover the reading
assignment for the day it is given and will be worth 20 points.
- Midterms --- There will be two in-class midterms, on March 8 and
April 19. If you cannot take one of these midterms, let me know as soon
as possible. If you have a good reason, a make-up will be scheduled.
This make-up must be scheduled to be taken within 48 hours of the
in-class midterm. Each midterm will be worth 175 points.
- Final --- The cumulative final will be worth 250 points.
No extra credit is available.
- Course Handouts:
Most course handouts will be made available once in class. After that,
they may be obtained from my personal home page on the World Wide Web (see
the URL above). I also expect to distribute homework and exam solutions
through my home page.
Attendance of classes is expected, but not required. It
is your responsibility to catch up on missed class work. I keep a record
of attendance for my own information, but this record has no bearing upon
Academic dishonesty will not be tolerated. Refer to the Handbook for
Students and the Cheating Policy of the Department of Mathematics and
Computer Science. Relevant points include:
Program/module plagiarism will be suspected if a programming assignment
results in two or more non-trivial program/module solutions so similar
that one can be converted to another by a mechanical transformation.
Cheating will be suspected if a student who was to complete an
assignment cannot adequately explain the intricacy of their
solution nor the techniques used to generate that solution.
A first offense will result in a grade of zero points for the assignment,
Any subsequent offenses may result in a charge of academic dishonesty being
filed with the Dean of the College, along with a grade of zero.
That said, I realize that Computer Science is best learned in a
collaborative environment. You should work together and enhance
each others' understanding of the material. However, you are ultimately
responsible for your own learning. By depending too strongly on someone
else for help with an assignment, you most definitely jeopardize your
ability to perform well on a midterm or final. The name of anyone
with whom you collaborate on an assignment must be listed on the
- Tentative Initial Schedule:
It is your responsibility to read the assigned material before class. What
we do in class will not necessarily be what is in the reading.
Chapter readings with a suffix of ``U'' are from Uckan, while those with a
suffix of ``C'' are from Carrano.
- Feb. 5: Introduction; Review and Reinforcement: Repetition
Structures. 5.3--5.5U, 8.7--8.10U.
- Feb. 7: Review and Reinforcement: Operators. 4U, 5.2U, 8.3U,
Appendix D of Uckan.
- Feb. 9: Review and Reinforcement: Selection Structures. 5.1--5.2U,
8.1--8.2U, 8.4--8.5U. Homework 1 out.
- Feb. 12: Review and Reinforcement: Simple Functions. 6.1--6.6U.
- Feb. 14: Simple Functions, Continued. 6.7--6.13U.
- Feb. 16: The Program Abstraction Revealed as the Software/Hardware
Reality: Data Storage and Memory. Homework 1 in.
- Feb. 19: The Actual Structure of a Program, Parameter Passing
- Feb. 21: Reference and Pointer Function Parameters. 9.1--9.4U.
Homework 2 out
- Feb. 23: Introduction to Recursion. 9.5U, pp. 50--70C.
- Feb. 26: More Recursion. pp. 71--81C.
- Feb. 28: Recursion, Searching, and Efficiency. pp.81--93C.
- Mar. 1: Fundamental Data Types and Conversions. 10.1--10.2U.
Homework 2 in.
- Mar. 4: Structures, a Compound Data Type. 10.3U.
- Mar. 6: Midterm 1 Review.
- Mar. 8: Midterm 1.