Instructor:
All programming will be done in C++, and the first four weeks of the course will introduce advanced features of the C++ programming language and the Standard Template Library. The C++ compiler running under EOS used for program evaluation purposes is gcc2.7.2 (bring it to your locker by add gcc272 and then run as g++).
There will be three programming assignments, one test during the semester, and a final examination during exam week. The final will count 30% of the grade, the midterm exam will count 20%, and the programming assignments 15% + 15% + 20%. All grades will be taken by there numeric value and added with appropriate numeric weights. Not crudification will be done before the final cut determination.
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
Although in real life a software project is rarely done by one individual, and also deadlines are sometimes difficult to meet---both in the real and in the educational world---we must enforce a policy in which each student is his/her programming share, and late submissions are penalized in a certain way.
Examinations: Both examinations will be ``open book--open notes.'' The final examination will be during finals' week.
Collaboration on programming projects: I expect every student to be his/her own programmer (an exception will be Project 3). Therefore the only thing you can discuss with anyone is how you might go about solving the problem. Help in debugging is permissible, provided the helper does not disclose details of his/her own solution or use the information he/she sees in his/her own project. You may use freely code that you retrieve from public libraries or texts, but you must properly reference your source.
Late submissions: Submissions are to be done by electronic mail and must be time stamped by the mailer before the deadline. The particular procedures such that you obtain a verification receipt can be found in the course directories. The following penalities are given for (unexcused) late submissions:
Alleged cheating on projects and exams: I will not decide any penalty myself, but refer all such cases to the proper judiciary procedures.
Date Topic(s) Reading
Lec 1 (Aug 22) Syllabus, review of C++ account.C Lec 2 (Aug 27) Introduction to templates, STL M+S, §1 ex01-01.cpp, ex01-02.cpp Lec 3 (Aug 29) Vector containers, iterators, generic M+S, §2 ex01-03.cpp algorithms Lec 4 (Sep 3) Infrastruct of STL: containers and M+S, §19.1-19.5 iterators M+S, §18.3-18.5 Lec 5 (Sep 5) Infrastruct of STL: adaptors, generic M+S, §9, 19.10-11 sq.C, vec.C, algorithms M+S, §5 ex05-04.cpp Lec 6 (Sep 10) Function objects, sorting M+S, §5.4 ex05-12a.cpp, ex05-03a.cpp, ex05-22.cpp Lec 7 (Sep 12) How to check total and weak ord. The problem of code bloat (fatware) M+S, §17 ex17-01.cpp, ex11-01.cpp Lec 8 (Sep 17) Code bloat continued Week 5 (Sep 19, Sep 24) Indirect sorting, purge duplicates S §8, pp. 104-107, Sorting directory Fri, Sep 20 Project 1 due at midnight, counts 15% Week 6 (Sep 26, Oct 1) Insertion, merge, and bubble :-( sort S §8, 12 O-notation, run-time estimates, S §6 analysis of merge sort Week 6 (Oct 3, Oct 8) Trees and Searching S §4, §14, BinSearchTree Thu, Oct 10 Midterm Exam, counts 20% Week 8 (Oct 17) Exam returned Week 7 (Oct 22, Oct 24) Binary search trees continued Week 10 (Oct 29, Oct 31)Huffman coding, 2-3-4 and red-black S §22, §15 trees Red-black animation Week 11 (Nov 5, Nov 7) Lempel-Ziv compression, Hashing S §16 Mon, Nov 11 Project 2 due at midnight, counts 15% Week 12 (Nov 12, Nov 14)Heapsort, shortest path algorithms S §11, §31 Week 13 (Nov 19, Nov 21)Minimum spanning trees, S §31 Breadth first search S §29 Week 14 (Nov 26, Dec 3) Depth first search, S §32 analysis of Quick Sort S §9 Nov 28 Thanksgiving, no class Dec 5 Review for final exam Fri, Dec 6 Third project due at midnight Tue, Dec 10, 1pm-4 Final examination, counts 30%
* This is a projected list and subject to amendment.