next up previous
Next: Object Technology Using C++

CpSc 870
Object Technology and C++ Programming
Department of Computer Science, Clemson University
Brian Malloy, PhD
Syllabus
8 January 2004



The fundamental approach to this course is to exploit object technology to facilitate software development, with C++ as the language vehicle. Our first goal is to establish a profound understanding of C++ and then object technology. You can think if this course as partitioned into the following categories: (1) Learning C++ very well, (2) learning the object-oriented paradigm, (3) learning to program with GUIs, (4) learning generic programming, (5) learning scripting, and (6) just learning to program.

For the first part, C++ is our language vehicle. This is a very important language and the most widely used language in industry because of its speed, general applicability, object-oriented facilities and its backward compatibility with C. However, C++ is a most difficult language. There are very few academics who like C++ because it is so difficult and very few academics who really know C++; much of the leadership in C++ usage and the object-oriented approach has come from industry. The difficulty focuses around the fact that C++ programs are easy to compile, but it's difficult to get them to execute properly. Many C++ programs execute but "limp", that is, they are replete with errors and memory leaks that cause problems in certain circumstances or "after a while". One of the main objectives of this course is to teach you the important fundamental principles required to get C++ programs to execute properly, without errors and memory leaks.

In addition to the difficulty of learning C++, we must also learn object-oriented programming, probably a new paradigm. This requires that we learn to use classes properly and, of course, inheritance. In addition, we will use the standard C++ Library; this library includes facilities to manage strings, lists, sets, trees as well as algorithms that can be applied to these data structures. These data structures and algorithms work and will be supplied with every C++ compiler that meets the ANSI standard: why not use them!

Finally, most of us will probably use the GNU compiler running on the Unix/Linux. If you would like to use the Windows operating systems you should consult my web page for a possible compiler.

My reason for choosing GNU are: (1) it's free, (2) it's industrial strength, and (3) it's fairly close to the ISO standard. I will be testing your programs under the Unix operating system because I do not want to deal with viruses that haunt the Windows system. Our unix system is currently running gcc version 3.3; you must make sure that your program will compile, link and execute properly on our unix systems running gcc version 3.3. If you decide to use another, favorite compiler, you must translate your code to g++ before you submit it. All programs will be submitted using the handin command.




next up previous
Next: Object Technology Using C++
Brian A. Malloy 2004-01-08