EEN118, Programming I, Spring 2003
- Library downloads and documentation
- Guide to using Unix
- The book(s) (last modified 11-1-2003)
- Assignment 1, due Thursday 30th January:
From the printed notes, exercises 3, 8, 9, 10.
- Assignment 2, due Thursday 13th February:
From the printed notes, exercises 36, 48, 49,
Plus for Honours section or extra credit, exercises 38, 50.
- Assignment 3, due Thursday 20th February:
From the printed notes, exercises 53, 54,
Plus for Honours section or extra credit, exercises 56, 57.
- Assignment 4, due Thursday 6th March:
Follow this link for the description.
This is a "Lab Homework", submit it to the Lab Guy.
- Assignment 5, due Tuesday 25th March:
From the printed notes, read section 11.2, and do exercises 86, 87.
Plus for honours section or extra credit, exercise 92.
- Assignment 6, due Tuesday 8th April:
Follow this link for the description.
- Weather data file for Lab 9
Each line contains 9 integers:
year, month, day, time, temperature(F), humidity(%), wind-speed(mph), wind-direction(degrees, 0=N, 90=E), pressure(mmHg).
- Geographical data file for Lab 10.
- Database files for Lab 11:
database1.txt (1000 items),
database2.txt (2000 items),
database3.txt (3000 items),
database5.txt (5000 items),
database10.txt (10000 items).
database20.txt (20000 items),
database30.txt (30000 items),
database50.txt (50000 items),
database100.txt (100000 items).
- The maze for Lab 13.
- First mid-term: Thursday 27th February, 12.15pm.
- Second mid-term: Thursday 10th April, 12.15pm.
- Final Examination: Thursday 1st May 2003, 11am to 1pm.
- Class History:
- Class 1 (14-1-2003) General introductions; demo of how to use Visual C++.
- Class 2 (16-1-2003) What programming languages are really all about; how to use telnet and unix.
- Class 3 (21-1-2003) Using functions; using graphics; using expressions; notes sections 1, 2.
- Class 4 (23-1-2003) Numeric representations, int, float, double; overflows; type conversions; notes sections 3 to 3.3, 5.1, 5.2.
- Class 5 (28-1-2003) Why repetition is bad; built-in functions; defining your own functions; notes section 3.
- Class 6 (30-1-2003) Defining functions with parameters; Scope of declarations; Defining consts; notes sections 4, 6.1, 6.2.
- Class 7 (4-2-2003) Functions that return values; input from the user; notes section 6.
- Class 8 (6-2-2003) Conditional expressions; relational and logical operators; const bools; notes section 7.
- Class 9 (11-2-2003) Conditional statements (if, else); compound statements { }; notes section 8.
- Class 10 (13-2-2003) More recursion; saying numbers; activation records; notes section 9.
- Class 11 (18-2-2003) Loops (while, break); introducing variables; notes section 10 to 10.4.
- Class 12 (20-2-2003) More loops; update operators (+=, *=, etc); const parameters; notes sections 10.5, 11.1.
- Class 13 (25-2-2003) Review for test; loop examples: best way to give change; number of different ways to give change.
- Class 14 (27-2-2003) Mid-Term Examination. Material: everything covered so far, but NOT section 5.2, 11.2, or anything after 11.2.
- Class 15 (4-3-2003) Review of test questions; introducing the for loop.
- Class 16 (6-3-2003) Ecological modelling; more for loop examples and details.
- Spring Break
- Class 17 (18-3-2003) Official C++ input and output, part 1: cout; cin; iostream manipulators; ifstreams.
- Class 18 (20-3-2003) Completion of iostreams with fstreams; fail; reset; eof; introduced getchar and putchar.
- Class 19 (25-3-2003) Binary Chop Search algorithm: inverting a monotonic function; how fast it is; finding zeros of functions.
- Class 20 (27-3-2003) Introducing arrays: arrays of constants and variables; faster than disc; simple database example.
- Class 21 (1-4-2003) More on arrays; active database query example.
- Class 22 (3-4-2003) Array parameters; reference parameters; array reference variables using *.
- Class 23 (8-4-2003) Reminders for second test; two-dimensional arrays; matrix calculator example; intro. thousand digit integers.
- Class 24 (10-4-2003) Mid-Term Examination.
- Class 25 (15-4-2003) Loose ends: do-while; switch-case-break-default; x++; ++x; x--; --x; & | ~ ^ << >>.
- Class 26 (17-4-2003) Fractal designs: more recursive programming. An H made of Hs; Trees, broccoli, and ferns.
- Class 27 (22-4-2003) Objects, part 1: creating a new data type; database of peopple with names, birthdates and phone numbers, developed with and without objects side-by-side.
- Class 28 (24-4-2003) Objects, part 2: making rational numbers into a C++ data type; struct definition and functions; defining operators +, -, *, ==, etc; normalisation; defining << output operator.
- Lab History: (the downloadable lab assignments are not in good shape, because framemaker creates very poor html documents)
- Lab 1 (16/17-1-2003) Using visual C++ and unix to run programs; telnet; ftp.
- Lab 2 (23/24-1-2003) Designing simple programs; graphics and text.
- Lab 3 (30/30-1-2003) Structured program design; Texas flag; American flag.
- Lab 4 (6/7-2-2003) Modelling physics equations; graphical game of cannon and house.
- Lab 5 (13/14-2-2003) More structured design; dates and times; an animated clock.
- Lab 6 (20/21-2-2003) Designing with structured loops; plotting mathematical graphs.
- Lab 7 (27/28-2-2003) Planning makes difficult things easy: print a calendar for any date.
- Lab 8 (6/7-3-2003) Simulating ecological systems: predicting populations of rabbits and foxes.
- Lab 9 (20/21-3-2003) Data processing; using files; daily min and max temperatures for Ft. Collins.
- Lab 10 (27/28-3-2003) Geographical Information Processing: Drawing maps.
- Lab 11 (3/4-4-2003) Database processing: sorting a very big data collection.
- Lab 12 (10/11-4-2003) Artificial Intelligence 1: A conversational robot.
- Lab 13 (17/18-4-2003) Aritificial Intelligence 2: Robotic Exploration of a Maze.
- Lab 14 (24/25-4-2003) continuation of lab 13 if required.