Instructor

Roger Hartley, SH 148, telephone 646-1218
Office Hours: Mondays, 4:00 - 5:00 pm; Tuesdays, 10:00 am - 12:00 pm.

Where and when

Room: SH113
Time: MWF 1:30 - 2:20 pm.
For the first four or five weeks, the Friday session will be spent in the J. Mack Adams Laboratory, SH118.

Textbook

Understanding Turbo Pascal: Programming and Problem Solving by Douglas Nance, published by West.

Course outline

Pascal is the ideal language for beginners to learn. The details of the syntax of the langauge can be covered quickly, leaving more time for learning the appropriate skills of programming.

Syllabus

The course is organized into six sections, each of which will address a topic from programming methodology. The content of each topic will use Standard Pascal, but the principles are applicable to any programming language. In this way, you will gain a good set of programming skills, as well as a thorough knowledge of Pascal. The six topics are:

Code reading - from small fragments to whole functions.

Code simulation - by hand, with paper and pencil.

Program design - top-down stepwise refinement - classes and object-oriented design

Program testing - test sets, limits, unexpected inputs.

Program debugging - tracing and adding extra debugging code.

Program modification - adding requirements, changing requirements, improving efficiency, improving coding.

The breakdown by weeks is:

[1] Introduction, getting started in the lab, Think Pascal and the Macintosh.
[2] Intro. to computer languages: source files, compiling, object files, executable files, libraries. Code reading: syntax vs. layout, tagging, names, keywords, types, operators, punctuation, comments
[3] Code reading: name scope, declarations and definitions, classes, functions, blocks, loops, levels of commenting
[4-5] Code simulation: semantics vs. behavior, paper and pencil tracing, diagrams for memory layout, values, expressions, function calls
[6-7] Program design: Top Down Stepwise Refinement, flow charts, tasks, subtasks, type hierarchies, object-oriented design.
[8-10] Program testing: interactive programs, expected input, unexpected input, input validation, error messages, error recovery, pathological cases, simple cases, generic cases, representative cases, test data files.
[11-12] Program debugging: trace statements replace hand simulation, debuggers, watches, stepping, additional debugging code.
[13-15] Program modification: adding requirements, changing requirements, improving efficiency, adding coding, improving coding

Calendar

[1] 1/13-1/17 First class: Jan. 15th.

[2] 1/20-1/24 Deadline for adding: Jan. 24th. Lab. 1: Edit/Compile/Run/Print

[3] 1/27-1/31 Lab. 2: Code reading

[4] 2/3-2/7 Lab. 3: Hand Simulation

[5] 2/10-2/14 Lab 4.

[6] 2/17-2/21 Lab 5: Assignment 1: design

[7] 2/24-2/28 Test 1. Wednesday 26th.

3/3-3/7 Spring break: no class

[8] 3/10-3/14 Drop date: Monday 10th. Assignment 2: testing

[9] 3/17-3/21

[10] 3/24-3/28 Spring holiday: Friday 28th. Assignment 3.

[11] 3/31-4/4 Moratorium: Friday 4th. late work receives zero after this date.

[12] 4/7-4/11 Assignment 4.

[13] 4/14-4/18

[14] 4/21-4/25 Assignment 5: debugging.

[15] 4/28-5/2

5/5-5/9 Review. Assignment 6: modification.

5/12-5/16 Exam week. CS137, Friday 16th. 1-3 pm.

Resources

We will be using the Macintosh cluster in the computer science department lab., SH118. These computers are situated on the math. department half of the lab. which is the right-hand side facing down the length of the room. There are 12 computers in the cluster, 4 8500s with large screens and 8 6300s with small screens. You may use any computer that is not being used; no reservation is necessary.

All the Macs have a copy of Think Pascal installed. Although this is not the same version of Pascal described in the text book, the similarities are big enough that you should have no problem using the text. In any case, we will ignore the differences, and concentrate on the core language which is called Standard Pascal.

Assessment

There will be one mid-term test and a final comprehensive examination. There will also be four or five lab. exercises early on in the course, and then five or six programming problems starting out easily and graduating to fairly hard at the end of the course. It may also be necessary to give take-home assignments for certain parts of the course. The assignment

of credit is as follows:

My grading is always flexible, but justice will also be done! ! The penalty for late work is that it receives a maximum C grade, but there will be two cut-off dates. A moratorium date is included in the calendar after which, any work that is due but not handed in will receive a zero. The first day of exam week is the last day for handing in work for credit.