Outline People Reading Grading Academics Homepage

MA 792K Spring 2011 Syllabus

Course Outline*

Lecture Topic(s) Programs Book(s), Notes
C Language
1. Jan 11 First program helloworld. c
first_ pgm. c
first_ pgm_ cgi. c
first_ pgm. html
first_ pgm_ cgi_ get. c
first_ pgm_ get. html
DDC §2.1-3
2. Jan 13 Operators; flow of control
DDC §2.5-6; DDC §4; Semicolon before else
3. Jan 18 Functions; the C runtime library math.c, rand.c, rand2.c DDC §5.1-8
4. Jan 20 Scope of variables, storage classes; separate compilation StorageClasses/ DDC §5.12
5. Jan 25 Arrays and pointers, args to main arrays.c, mainarg.c DDC §6.1-6.5, §6.10, §6.20-22
6. Jan 27 Recursion, debugging Recursion/ DDC §5.13-18
7. Feb 1 strings; scanf, printf, I/O; the preprocessor, macros scanf.c, types.c DDC §8, DDC §13
8. Feb 3 Typedef, structures, unions, header files; storage allocation, lists Lists/ DDC §10.1-5, §10.18, §12.1-4
9. Feb 8 Pointers to functions; OO programming in C ptrs2fncs. c, OO_pgm_in_C/ DDC §7.26
Wednesday, Feb 9, at midnight First C project due, counts 33.33%
Python Language
10. Feb 10 First python program
hello.py, fibonacci.py, fibo2.py, breakdance.py
Lecture 1, DIP §2
11. Feb 15 Native types

Lecture 2, DIP §3
12. Feb 17 Python as an OO language
image.py, counter.py, private.py, square.py, newstring.py, singleton.py, borg.py, multi.py
Lecture 3, DIP §5
13. Feb 22 Files and exceptions
person.py, student.py, compare.py, withexample.py, output.py, filepath.py
Lecture 3 review, Lecture 4, DIP §6
14. Feb 24 Python as a functional language
nightmare.py, identity.py, matrix.py, listsort.py, keys.py, iter.py, closure.py,
Lecture 5, DIP §16
15. Mar 1 Tour of the standard library
dateformat.py, dateparse.py, twitter.py, regex.py, log.conf, log.py, timeme.py, program.py, program_test.py,
Lecture 6
16. Mar 3 Overview of common Python packages and where you can find more: lxml, BeautifulSoup, PIL, NumPy, SciPy
geonames.py, mandel.py,
Lecture 7
Mar 7-11 Spring break, no class
NEW Deadline extended: Mon, Mar 21, midnight; was: Monday, Mar 14, at midnight Python project due, counts 33.33%
A Brief Introduction to the Java Language
17. Mar 15 First Java program; Basic object design: members, constructors, cloning, destructors account.java, test_acc.java, Inherit/ DDJ §8
18. Mar 17 Derivation, inheritance, public, private Inherit/ continued DDJ §9
19. Mar 22 Abstract Window Toolkit, the Java 1.0 and 1.1 event models, applets; Panel and Button Nutshell/ ch6/ First Applet.*, Nutshell/ ch7/ DDJ §3
C++ Language
20. Mar 24 First C++ program; basic object design: members, constructors, copy, destructors account. cpp, inherit. cpp DDC §16; My comparision of C++ and Java
21. Mar 29 Derivation, inheritance, public, private; polymorphism: overloading of functions and operators; stream I/O inherit. cpp continued DDC §18, DDC §19, §21
22. Mar 31 Pointers and references, const, static

DDC §15.8, §17.2, §17.7
Wednesday, Apr 2, at midnight Java project due, counts 33.33%
23. Apr 5 Templates and the STL templates.cpp/, Lists/ DDC §17.10, SGI's online manual
24. Apr 7 STL containers map.cpp, index.cpp
25. Apr 12 STL iterators

26. Apr 14 STL algorithms indir_ sort. cpp
27. Apr 19 Advanced topics: virtual member functions; code bloat and how to avoid it Stacks/ DDC §20
Mar Apr 21-22 Spring Holiday, no class
28. Apr 26 Namespaces and inner classes; exceptions; multiple inheritance exception.cpp; MultInher/ DDC §19.15
29. Apr 28 Wrappers/adaptors to existing libraries; traits prof3.h
N. Myers report on traits
Thurs, May 12, at 17h00 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 introduction/reference to Java. All examples have been downloaded. This book uses the new Swing GUI components, and has little information on the classical AWT classes. However, 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.

If you need assistance in any way, please let me know (see also the University's policy).

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.

©2011 Erich Kaltofen.