Principles of CS II

CS 18
Spring 1996

Instructor:

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

Class:

Hoyt 369
MWF 9:10--10:10am

Objectives:

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 analysis.
  • Data structures --- linear lists, stacks, queues, etc.
  • Algorithms --- sorting, searching, etc.

Textbooks:
  1. Y. Uckan, Problem Solving Using C++, Structured and Object Oriented Programming Techniques, Irwin, 1995.
  2. F. M. Carrano, Data Abstraction and Problem Solving with C++, Benjamin/Cummings, 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.

Grading:

Grade Distribution

A = [90--100]
B = [80--90)
etc.

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:

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.

Integrity:

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.

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



Thomas P. Kelliher
Thu Feb 1 10:31:12 EST 1996
Tom Kelliher