EEN118, Programming I, Spring 2010

Class History

Class 1  Wed 20‑1‑2010   Quick introductions, the nature of computers, (colossus picture).
starting a visual studio project.
The official syllabus.
Class 2  Mon 25‑1‑2010 Programming is more than C++, algorithms and analysis, the example of merge-sort.
A bad example from the past, Fortran guidance program for Mariner probe.
Defining functions: Three ways of drawing a square.
Class 3  Wed 27‑1‑2010 Named constants, the numeric types int, float, and double, functions that take inputs.
The prorgam as developed in class.
Class 4  Mon 1‑2‑2010 Complicated things from simple programs: the fancy pattern of squares,
Bart's punishment, a cleverer version, a more interesting version, and perfection.
Class 5  Wed 3‑2‑2010 Perfect control of repetition; conditionals, if ... else if ... else sequences; more divide-and-conquer techniques;
when ints get too big; tabulating values of a formula; functions that return results.
Printing a perfectly aligned multiplication table, and Plotting two graphs on the same axes.
Class 6  Mon 8‑2‑2010 The beginning of a potentially very big function,
but with a step-by-step design, it came out quite well in the end.
Class 7  Wed 10‑2‑2010 How bees are born, what the caprimulgus does at night. Introducing "while" for repetition.
Analysing the "say" function to see how it works. what would these do?
Class 8  Mon 15‑2‑2010 More functions to practise analysis on.
Finding square roots with an efficient search.
Class 9  Wed 17‑2‑2010 Accessing the Unix system, and programming under it.
Class 10  Mon 22‑2‑2010 The guessing game; turning it around so that the computer does the guessing;
Noticing how quickly the guesses converge; it is just like our square root function.
Class 11  Wed 24‑2‑2010 Review of control of repetition and building large programs: one small step at a time.
Can't remember the name of the sine function: we made our own.
Class 12  Mon 1‑3‑2010 Why we should avoid complacency.
A mathematical investigation: comparing various approximations to the sine function.
Class 13  Wed 3‑3‑2010 bools and while(true) and if(false) and many little things. The deceptive cout.
Divide and conquer in two dimensions: a 3D plot of a complicated function.
Class 14  Mon 8‑3‑2010 A few little reminders about functions.
Class 15  Wed 10‑3‑2010 Mid-Term Examination.
Spring Break
Class 16  Mon 22‑3‑2010 Working with Variables.
Class 17  Wed 24‑3‑2010 Using cin and reference parameters. ifstreams for reading data from disc files. The boy and bull simulation part 1.
Class 18  Mon 29‑3‑2010 The boy and bull simulation (part 2) is now working nicely, but the program is getting ugly and unmanagable. Whatever shall we do?
Class 19  Wed 31‑3‑2010 Introducing Object-Oriented programming and Unicode. Computing with Money.
Class 20  Mon 5‑4‑2010 The Significant Improvements to program structure that the use of objects allow.
Class 21  Wed 7‑4‑2010 A spelling checker: introducing variable arrays. Apart from possible concerns about quality of the word list, what do you think about the structure of this program? (here is a slightly better word list).
Class 22  Mon 12‑4‑2010 arrays and ifstreams as parameters, some string operations, repairing the structure and improving the design of the spelling checker.
Class 23  Wed 14‑4‑2010 Operations on strings and characters. taking complete control of input with istream.get(). Some tangential history.
Class 24  Mon 19‑4‑2010 Practice with structs and arrays: the molecular weight calculator part 1, and its data file.
Class 25  Wed 21‑4‑2010 End-Term Examination.
Class 26  Mon 26‑4‑2010 More work with files, objects, and arrays.
Class 27  Wed 28‑4‑2010 Test review. (the championopotamus)
Final Mon 10‑5‑2010 at 5:00 p.m. in our usual classroom.


Lab Assignments

                    Lab Setup Guide
Library downloads and documentation
    
     Lab 1 25-28 Jan      (pdf)      Using visual C++ to run programs; drawing stars and stick figures.
     Lab 2 1-4 Feb      (pdf)      Divide and conquer: building big programs from little functions.
     Lab 3 8-11 Feb      (pdf)      A video game: exploding the enemy with a cannon.
     Lab 4 15-18 Feb      (pdf)      A real-time animated clock application.
     Lab 5 22-25 Feb      (pdf)      Generating calendars and using Unix.
     Lab 6 1-4 Mar      (pdf)      A randomly generated Happy Street Scene.
     Lab 7 8-11 Mar      (pdf)      Debugging Practise (Here's the suspect program)
     Lab 8 22-25 Mar      (pdf)      An interactive desk calculator.
     Lab 9 29 Mar-1 Apr      (pdf)      Meteorological data processing and visualisation. the data files
     Lab 10 5-8 Apr      (pdf)      Interactive map of the United States. Data files: state outlines, capitals.
     Lab 11 12-15 Apr      (pdf)      Database programming under Unix.
Data files: database1.txt, 2, 3, 5, 10, 20.
The special timing function.
     Lab 12 19-22 Apr      (pdf)      A robot seaching for treasure in a maze. sample maze
     Lab 13 26-29 Apr      (pdf)      An automatic robot: he turned into a video game.