Principles of CS I

CS 17
Spring 1996


Thomas P. Kelliher
Hoyt 160
Office phone: 946-7290
Home phone: 946-3544 (emergencies only, please)
email: Send mail to kelliher AT DOMAIN
Office hours: MW 3:00--4:00pm. TR 1:00--2:30pm. Other times by appointment.


Hoyt 150
MWF 1:50--2:50pm


The objectives of this class are to provide an introduction to the discipline of Computer Science, the hardware and software of computer systems, and, especially, the solving of problems by writing programs.


Y. Uckan, Problem Solving Using C++, Structured and Object Oriented Programming Techniques, Irwin, 1995.

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.


Grade Distribution

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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 your grade.


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:
  1. 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.

  2. 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 assignment.

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.

All chapter readings are from Uckan.

Feb. 5: Introduction. 1.1, 1.2.
Feb. 7: Computer Hardware and Software. 1.3--1.5.
Feb. 9: Problem Solving Using Computers. 1.6--2.5. Homework 1 out.
Feb. 12: The Elements of Pseudocode. 2.6.
Feb. 14: Implementation, Testing, and Maintenance. 2.7--2.11.
Feb. 16: C++'s Vocabulary. 3.1--3.3. Homework 1 in. Homework 2 out.
Feb. 19: C++'s Grammar. 3.4, 3.5.
Feb. 21: Getting Started in C++. 3.6, 3.7.
Feb. 23: Program Debugging. 3.8--3.10. Homework 2 in. Homework 3 out.
Feb. 26: Arithmetic Operators, Expressions, and Precedence. 4.1--4.3.
Feb. 28: Additional Arithmetic Operators and Assignment Operators. 4.4--4.6.
Mar. 1: Expression Types, Casts, and the Math Library. 4.7--4.9. Homework 3 in.
Mar. 4: Arithmetic Expression Examples and Style. 4.10--4.12.
Mar. 6: Midterm 1 Review.
Mar. 8: Midterm 1.

Thomas P. Kelliher
Tue Jan 30 13:29:31 EST 1996
Tom Kelliher