CS 2704 Reading Guide - Fall 2001
LT2 refers to UML and C++, 2nd Ed. by Lee and
Tepfenhart
The following is a guide to reading
the assigned parts of the Lee/Tepfenhart book for CS 2704. General
guidance is that you should take any philosophical comments regarding design or
implementation with a grain of salt.
[LT2 Chapter 1]
- The emphasis here is light. Just read this for an overview, from one
perspective, of some of the motivations for improving the development
process.
[LT2 Chapter 2]
- The emphasis here is light. The chapter gives an overview of many of
the concepts we will study in this course. Skip any discussion
regarding rules.
- We take issue with the chapter on a few points...
- The history of high-level programming languages is incorrect. COBOL
and FORTRAN were developed in the 1950's. Most languages you are
likely to be familiar with are based on Algol, which was developed in the
1960's but never widely used in the US. C++, and most other
object-oriented languages, are somehow derived from a language called
Simula67, which was defined in 1967 and based on the first version of Algol.
You can find out more about programming language history by taking CS
3304 Comparative Languages.
- The term "imperative" programming is misleading. Almost
all programming languages are "imperative", which simply means
based on commands. A better term is "procedural"
programming, which refers to using procedures to organize a program.
That is really what L&T mean when they refer to "imperative
programming". You probably won't learn a non-imperative
programming language in a CS course at Virginia Tech unless you take CS 3304
or CS 4804 (Artificial
Intelligence).
- On page 8 the authors suggest that procedural languages are at fault for
problems with coupling and cohesion throughout programming history.
However, there is nothing technically wrong with the languages. The
problem is with how the languages have been used. Any language,
including C++ and Java, can be misused.
[LT2 Chapter 3]
- Look at the summary on page 38, and selectively read parts of the chapter
to understand more.
- Avoid reading "The Object-Oriented Way of Organizing
Reality". The example used there may just confuse you.