Outline People Reading Grading Academics Homepage

MA 591K Fall '98 Syllabus

Course Outline*

Lecture Topic(s) Programs Book(s), Notes
C Language
1. Aug 17 First program first_ pgm. c DD §2.1-3
2. Aug 19 Running a program from a web browser first_ pgm_ cgi. c, first_ pgm. html
3. Aug 21 Operators
DD §2.5-6
4. Aug 24 Flow of control
DD §4; Semicolon before else
5. Aug 26 Functions; the C runtime library math.c, rand.c DD §5.1-8
6. Aug 28 Scope of variables, storage classes; separate compilation StorageClasses/ DD §5.12
7. Aug 31 Arrays and pointers, args to main arrays.c, mainarg.c DD §6.1-6.5, §6.10, §6.20-22
8. Sep 2 Recursion, debugging Recursion/ DD §5.13-18
9. Sep 4 strings; scanf, printf, I/O scanf.c DD §8
Monday, Sep 7 Labor Day, no class
10. Sep 9 The preprocessor, macros types.c DD §13
11. Sep 11 Enum, typedef, structures, unions, header files Lists/ DD §10.1-5, §10.18
Friday, Sep 11, at midnight First C project due, counts 16.67%
12. Sep 14 Storage allocation; lists
DD §12.1-4
13. Sep 16 Catch-up

14. Sep 18 Pointers to functions ptrs2fncs. c DD §7.26
15. Sep 21 OO programming in C OO_pgm_in_C/
C++ Language
16. Sep 23 First C++ program account. cpp
17. Sep 25 Basic object design: members, constructors, copy, destructors
inherit. cpp DD §16
18. Sep 28 Derivation, inheritance, public, private inherit. cpp continued DD §19
19. Sep 30 Polymorphism: overloading of functions and operators; stream I/O
DD §18, §21
20. Oct 2 Pointers and references, const, static

DD §15.8, §17.2, §17.7
21. Oct 5 Templates and the STL Lists/ DD §17.10, SGI's online manual
Tuesday, Oct 6, at 5pm Second C project due, counts 16.67%
22. Oct 7 STL containers map.cpp, index.cpp
23. Oct 9 STL iterators

Monday, Oct 12 Holiday Day, no class
24. Oct 14 STL algorithms indir_ sort. cpp
25. Oct 16 Code bloat and how to avoid it

26. Oct 19 Advanced topics: virtual member functions Stacks/ DD §20
27. Oct 21 Namespaces and encapsulation

28. Oct 23 Exceptions exception.cpp
29. Oct 26 Multiple inheritance
DD §19.15
30. Oct 28 Wrappers/adaptors to existing libraries; traits

Java Language
31. Oct 30 First Java program account.java, test_acc.java My comparision with C++
32. Nov 2 Basic object design: members, constructors, cloning, destructors
Inherit/ Nut §3
33. Nov 4 Derivation, inheritance, public, private Inherit/ continued Nut §3
34. Nov 6 Abstract methods Stacks/ Nut §3
Friday, Nov 6, at 5pm C++ project due, counts 33.33%
35. Nov 9 STL-like packages Lists/ Object Space's Java Generic Library
36. Nov 11 Catch-up; exceptions; inner classes exception.java Nut §2
37. Nov 13 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
38. Nov 16 AWT continued: Frame, Canvas, Checkbox, CheckboxGroup, Label CheckboxTest. java
39. Nov 18 AWT continued: TextField, ScrollBar, Color Scroll Test. java, Scroll Test _1 _1. java
40. Nov 20 AWT continued, Java archive files Graphdraw/
41. Nov 23 Serialization, reflection Nutshell/ ch09/, Nutshell/ ch12/ Nut §9, §12
42. Nov 25 Java beans Nutshell/ ch10/ Sun's BDK, Nut §10
Thursday-Friday, Nov 26-27 Thanksgiving, no class
43. Nov 30 Native methods

44. Dec 2 Multiple threads Threads/ Sun tutorial
45. Dec 4 Systems programming: sockets

Monday, Dec 14, at 5pm Java 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 six programming assignments of approximately equal weight, constituting the final grade. Please submit your solutions in archived, compressed, and ASCII-encoded form according to s 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.

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