Text: Pascal Problem Solving and Program Design, Fifth Edition,
Elliot B. Koffman, Addison-Wesley 1995.
Index:
Goals
Labs
Programs
Text
Syllabus
Current Assignment
We use laboratories in this course to introduce or reinforce some of the concepts and programs to test mastery. Programs and labs will be assigned regularly and are always due at the beginning of the class. Late work always loses points. Work will be gone over in class when returned.
Attendance is required. If you miss more than four classes, I have the option of lowering your semester grade by one level (e.g., A to A-). If you come in after attendance is taken, it is your responsibility to remind me to correct my records at the end of class. If you leave early without prior notice (or a reasonable explanation within a day or two), you will be marked absent. If you receive a grade lower than 100/150 (65%) on a test, you must see me in my office within one week. If you feel that an answer on a test or project has been graded incorrectly, you have one week to see me about it or the grade will not be changed. The projects will help prepare you for the tests if done carefully. Tests will always include programming.
Keep up with the course. Read the text along with the class discussion. Do labs early to get them out of the way. Understand what you have done after you have written a program. Know the vocabulary words. Be able to provide short answers applying concepts including those from labs. Study sheets about what a test will cover will be provided about one week before the test to help you prepare. All examinations will include programming. Try writing simple programs such as the exercises at the ends of the chapters in the text. Study with a friend.
Program #1: Using the editor.
Program #2: Writing the first simple program.
Program #3: Writing a program with selection, loops, and files.
Program #4: Writing a program with procedures and functions.
Program #5: Writing a program with records and arrays.
Vocabulary words in boldface must be mastered.
Part I: Control-orientation
Chapter 1:
Overview. How to use the computer. Terminology.
compiler, linker, editor
Chapter 2:
Software development method. Problem solving IPO approach, Pascal
programming and the LSE, keywords and identifiers, Non-Psychic Programming
Principle, Principle of Initialization, formatting program output, programming
errors.
analysis, design, implementation, testing, maintenance, algorithm,
assumptions (in program documentation), reserved word, standard identifier,
declaration, data type, constant, variable, syntax, semantics, assignment,
batch, interactive
Chapter 3:
Top-down design, structure charts (with data flow), procedures, functions,
standard functions.
top-down design, procedural abstraction
Chapter 4:
Booleans, relational operators, Boolean operators, syntax diagrams,
if statement, Principle of Paranoid Programming, tracing an algorithm,
case statement.
control structure, boolean value, pseudocode, data flow
Chapter 5:
Repetition, while loop, loop repetition condition, standard controlled
loops, loop design, for loop, repeat loop, debugging and testing programs.
counter-controlled loop, sentinel, sentinel-controlled loop, program
flags, flag-controlled loop
Chapters 6:
Procedures, formal and actual parameters, functions, drivers, stubs,
value and variable parameters, scoping rules, testing.
formal parameter, actual parameter, pre-condition, post-condition,
local variable, global variable, non-local reference, value parameter,
variable parameter, cohesive modules, function side effects, scope of a
variable, recursion
Part II: Object-orientation
Chapter 7:
Simple data types: storage concerns, problem of testing real numbers
for equality, Ord, Pred, Succ, Chr, subrange types, enumerated types.
cancellation error, arithmetic overflow, arithmetic underflow, representational
error, ordinal data types, collating sequence
Chapter 8:
Input/Output and Text Files (booklet), difference between Read and
ReadLn, EOLn and EOF. (Much of this chapter was covered earlier.)
Chapter 9:
Software Engineering: system/software life cycle, prototyping, module
libraries, reusable code, testing and verification, testing plan, white
(clear) and black box testing, system boundaries, integration testing,
assertions, preconditions, postconditions, ethics.
abstract data type, specification, implementation, testing strategy
(plan), structured walkthroughs
Chapter 12:
Records, "with" structure, abstract data types revisited, arrays of
records.
field
Chapter 10:
Arrays, strings, searching, sorting, analysis of algorithms (definition).
anonymous type, named type, sequential access, random access
Chapter 11:
Strings.
Topics:
Recursion example/sorting and searching, structured (binary) files.