EEN218 (Programming 2) Spring 2007, Tue Thur 12:30-1:45
- Official Syllabus.
- Downloads: Software to make things work
- The Book:
- "Data Structures using C++",
- D. S. Malik,
- ISBN: 0-619-15907-3
- For Reference or Review:
- Examinations:
- Mid-Term Examination: Tuesday 6th March.
- End-Term Examination: Tuesday 17th April.
- Final Examination: Tuesday 8th May, 11.00 a.m.
- Assignments:
- (due Tuesday 30th January, little baby starting assignment) Adapt the phone book example from class
so that it
- Reads initial data from a file when staring up,
- Accepts queries and new data to add, interactively from the user,
- Has a simple one-word "exit" command,
- On exitting, writes the data back to the disc file.
- (due Tuesday 13th February) The requirements for this assignment
are exactly the same as for the first one, except for one essential:
- It must use a Linked List to store the data, not an array
- (due Thursday 1st March) Implement your own "Pet Club" (as in class 6).
- Design a sensible file format, to record information on people and their pets.
- Make your program able to read all the information from such a file, and store it
in suitably designed linked lists.
- Make your program able to save the information in its internal linked lists
in a file of exactly the same format.
- Add basic interactive queries, including
- Find person (by name), dislplay their info, and all that is known about their pets.
- Add a new person.
- Add a new pet to an existing person's list.
- Print basic info on all people, ignoring their pets.
- (due Tuesday 27th March) Work out how to use graphics in windows programming, and write a program
that illustrates the behaviour of a simple sorting algorithm in a step-by-step
manner that would be understandable to someone who does not know the algorithm.
- (due Friday 20th April) Same as the previous assignment, but this time animating Quicksort.
- (due Wednesday 9th May, 11:59pm) Write a simple web application that performs some useful
task, using the CGI interface.
- Extra Assistance:
- Roger the T.A., MCA179, Office Hours MW 12.00-4.00, TT 3.30-4.45.
- Class History:
- Class 1 (16-1-2007) Introductions, etc.
- Class 2 (18-1-2007) Motivation for linked lists: the phone directory example.
- Class 3 (23-1-2007) Using the unix system, understanding error reports, using the gdb debugger.
- Class 4 (25-1-2007) Linked Lists, creation, printing, searching.
- Class 5 (30-1-2007) Improved linked lists, global variable evasion, references, stack frames.
- Class 6 (1-2-2007) Multiple linked lists, Pet Club, Constructors.
- Class 7 (6-2-2007) Modularity, generalised linked list functions, keep it small and simple.
- Class 8 (8-2-2007) Object Orientation, methods, constructors, designing a general 'number' type.
- Class 9 (13-2-2007) Bitwise operators, working out int_max, overflow, some cryptography.
- Class 10 (15-2-2007) Euclid's algorithm for gcd, implementing the mixed-type arithmetic operations.
- Class 11 (20-2-2007) sample: defining operators, extending cout, public and protected.
- Class 12 (22-2-2007) Details of operators inc. << >> =, public, protected, get and set methods, stringstreams.
- Class 13 (27-2-2007) "protected" gives no physical protection (sample); Making array accesses error-proof.
- Class 14 (1-3-2007) "int A[20]" vs. "int * A = new int[20]". A resizable foolproof array object.
- Class 15 (6-3-2007) Mid-term Test.
- Class 16 (8-3-2007) Appreciating the need for life-long learning; commas; dynamic allocation of multi-dimensional arrays.
- Non-class (13-3-2007) (Spring Break)
- Non-class (15-3-2007) (Spring Break)
- Class 17 (20-3-2007) Coming to terms with recursion, retracing path, rendering landscapes.
- Class 18 (22-3-2007) Review of three quadratic sorting algorithms; algorithm analysis.
- Class 19 (27-3-2007) Quicksort introduced.
- Class 20 (29-3-2007) Quicksort details, three way partition, analysing best and worst cases.
- Class 21 (3-4-2007) Taming quicksort's recursion. Overview of other interesting sorting algorithms.
- Class 22 (5-4-2007) Binary chop search, cost tradeoff brute force search vs sort then search, disc access times.
- Class 23 (10-4-2007) Secret Holiday. Let's say it was for the 160th anniversary of the birth of Joseph Pulitzer.
- Class 24 (12-4-2007) Full consideration of binary chop search.
- Class 25 (17-4-2007) Second mid-term test.
- Class 26 (19-4-2007) Binary trees.
- Class 27 (24-4-2007) Recursive tree insertion with reference pointers. Introduction to WWW protocols.
- Class 28 (26-4-2007) Binary tree search on primary and secondary keys. Interactive web programming with CGI.