Outline People Reading Grading Academics Homepage

MA 591K Fall '99 Syllabus

Course Outline*

Lecture Topic(s) Programs Book(s), Notes
C Language
1. Aug 17 First program; running a program from a web browser first_ pgm. c, first_ pgm_ cgi. c, first_ pgm. html DD §2.1-3
2. Aug 19 Operators
DD §2.5-6
3. Aug 24 Flow of control
DD §4; Semicolon before else
4. Aug 26 Functions; the C runtime library math.c, rand.c DD §5.1-8
5. Aug 31 Scope of variables, storage classes; separate compilation StorageClasses/ DD §5.12
6. Sep 2 Arrays and pointers, args to main arrays.c, mainarg.c DD §6.1-6.5, §6.10, §6.20-22
7. Sep 7 Recursion, debugging Recursion/ DD §5.13-18
8. Sep 9 strings; scanf, printf, I/O; the preprocessor, macros scanf.c, types.c DD §8, DD §13
9. Sep 14 Typedef, structures, unions, header files; storage allocation, lists Lists/ DD §10.1-5, §10.18, §12.1-4
10. Sep 16 Pointers to functions; OO programming in C ptrs2fncs. c, OO_pgm_in_C/ DD §7.26
Friday, Sep 17, at midnight First C project (writeup2.ps.gz (35K)) due, counts 16.67%
Java Language
11. Sep 21 First Java program; Basic object design: members, constructors, cloning, destructors account.java, test_acc.java, Inherit/ Nut §3
12. Sep 23 Derivation, inheritance, public, private Inherit/ continued Nut §3
13. Sep 28 Abstract methods; collections, packages Stacks/, Lists12/ Nut §3
14. Sep 30 Catch-up; exceptions; inner classes exception.java Nut §2
15. Oct 5 Abstract Window Toolkit, the Java 1.0 and 1.1 event models, applets; Panel and Button Nutshell/ ch6/ First Applet.*, Nutshell/ ch7/ Nut §6-7
16. Oct 7 AWT continued: Frame, Canvas, Checkbox, CheckboxGroup, Label CheckboxTest. java
Friday, Oct 8, at midnight Second C project due, counts 16.67%
Mon-Tue, Oct 11-12 Columbus Day, no class
17. Oct 14 AWT continued: TextField, ScrollBar, Color; Java archive files Caviness/, Scroll Test _1 _1. java, Graphdraw/
18. Oct 19 Multiple threads; animation Threads/, BouncingCircle. java, BouncingCircle. html, SmoothCircle. java, SmoothCircle. html Sun tutorial
19. Oct 21 Java beans Nutshell/ ch10/ Sun's BDK, Nut §10
20. Oct 26 Systems programming: sockets

C++ Language
21. Oct 28 First C++ program; basic object design: members, constructors, copy, destructors account. cpp, inherit. cpp DD §16; My comparision of C++ and Java
22. Nov 2 Derivation, inheritance, public, private; polymorphism: overloading of functions and operators; stream I/O inherit. cpp continued DD §18, DD §19, §21
23. Nov 4 Pointers and references, const, static

DD §15.8, §17.2, §17.7
Monday, Nov 8, at 5pm Java project due, counts 33.33%
24. Nov 9 Templates and the STL Lists/ DD §17.10, SGI's online manual
25. Nov 11 STL containers map.cpp, index.cpp
26. Nov 16 STL iterators

27. Nov 18 STL algorithms indir_ sort. cpp
28. Nov 23 Advanced topics: virtual member functions; code bloat and how to avoid it Stacks/ DD §20
Thursday-Friday, Nov 25-26 Thanksgiving, no class
29. Nov 30 Namespaces and inner classes; exceptions; multiple inheritance exception.cpp; MultInher/ DD §19.15
30. Dec 2 Wrappers/adaptors to existing libraries; traits prof3.h
N. Myers report on traits
Tue, Dec 14, at 5pm C++ project due, counts 33.33%
* This is a projected list and subject to amendment.

Instruction Personnel

For instructor, office hours, telephone numbers, email and physical address see the homepages of Erich Kaltofen.

Textbook and Online Notes

For students who do not already know C, I have ordered The syllabus above refers to chapters in this book, which also contains C++ material. The classical reference to the C programming language is and to the C++ programming language The Standard Template Library of C++ (not covered in Deitel/Deitel) has an online tutorial by SGI.

I am using

as the reference to Java. All examples have been downloaded. There is also an online tutorial by Sun Microsystems.

On-line information: All information on courses that I teach (except individual grades) is now accessible via html browsers, which includes this syllabus. My courses' directory is at

You can also find information on courses that I have taught in the past, and examinations that I have given.

Grading and General Information

There will be four programming assignments of approximately equal weight, constituting the final grade. Please submit your solutions in archived, compressed, and ASCII-encoded form according to these procedures.

Academic Standards

Collaboration on programs: I expect every student to be his/her own programmer. Therefore the only thing you can discuss with anyone is how you might go about solving a particular problem. You may use freely information that you retrieve from public (electronic) libraries or texts, but you must properly reference your source.

Late submissions: All programs must be submitted on time. The following penalties are given for (unexcused) late submissions:

Alleged cheating incidents: I will not decide any penalty myself, but refer all such cases to the proper judiciary procedures.

©1999 Erich Kaltofen. Permission to use provided that copyright notice is not removed.