EEN318, Programming III, Autumn 2008
Assignments
- (due Thursday 18th September) Do questions 1 and 3a of last semester's EEN218 final.
Questions 1a, 1b, 1c, 1d, and 3a should be combined to make a single program.
Write and test the programs using your "rabbit" unix account. Both programs should
expect the user to type in a sequence of strings, sort those strings by the appropriate
method, then print out the sorted list. That way you can test them properly.
- (due Thursday 25th September) (a)Do question 2 of last semester's EEN218 final.
As before, the parts should be combined to make a single program.
(b)Add a self-timing facility to both of your programs. They will need to
generate their own random lists to sort. Gather enough experimental data to verify
our theoretical calculations for the running times.
- A program that can read any of the digital elevation model files here,
and display the contents in a meaningful way. Then read the alphaplaces file
drawing a dot for all reasonably large towns that lie within the bounds of the picture.
- (due 16th November) Building on the previous assignment, allow the user to mouse-click
on two points within the map. Convert those pixel locations to latitude and longitude
and search the locations file (locations, not alphaplaces) for the closest locations.
Attempt to find a path from one to the other by simply following the road that is closest
to going in the right direction repeatedly until the exploration either succeeds or
gets stuck. Draw each road as it is followed.
- (due 26th November) Building on the previous assignment, allow the user to type
the names of two places, and find them in the alphaplaces file. Use that information
instead of the mouse-click
to determine the desired latitudes and longitudes and perform the same exploration
as before. Your program should do a reasonably good job of finding places even
if they are misspelled.
- (due 10th December) Improve the previous assignment so that it finds a good, short
route (preferable the shortest), draws that route on the map, and displays the
total length in miles.
Notes about Prerequisite Topics
- objects.html introductory stuff about objects, classes, structs
- fractions.html more of that
- introtoclasses.html and more
- startobject2.html and even more
- growarray.html Arrays that grow (vectors)
- Goldfish Club,
(older C-based version just for interest)
- FlexArray.doc Simple C++ vector of strings with "friends"
- GrowingArrays.doc Smaller examples of that
- declarations.html Complicated declarations in C++
Class History
- Class 1 (27-8-2008) General introductions. Starting the review of data structures.
- Class 2 (3-9-2008) Good structure for linked lists, review of constructors, new, delete, etc.
- Class 3 (8-9-2008) Efficiently sorting a linked list.
- Class 4 (10-9-2008) the missing day
- Class 5 (15-9-2008) Merge-sort, time analysis, O(N2) vs. what is it for mergesort?
- Class 6 (17-9-2008) randomization and timing; analysing mergesort to be O(N×logN).
- Class 7 (22-9-2008) binary trees.
- Class 8 (24-9-2008) parameter passing methods, in-order recursive tree walking.
- Class 9 (29-9-2008) system level input and output,
(compatibility.h),
(mystery file).
- Class 10 (1-10-2008) ???
- Class 11 (6-10-2008) ???, hash functions.
- Class 12 (8-10-2008) Hash tables, implementation and analysis.
- Classes 13-23 (13-10 to 17-11-2008) I hope someone who takes notes can help me fill in this gap!
- Class 24 (19-11-2008) A Test.