Class 1 | Thur 25‑8‑2011 | Quick introductions, what to expect from the class and
labs,
the official syllabus, etc. The inside of a computer, partly illustrated by Colossus: A, B, C, D. | ||||
Class 2 | Tue 30‑8‑2011 | Starting up visual studio, a first simple program. Every programmer relies on libraries because even something as simple as making words appear requires an enormous amount of effort. | ||||
Class 3 | Thur 1‑9‑2011 | Some dull definitions and C++ language rules, int vs double, Giving names to constants, Creating a very simple function. A bad example from the past, Fortran guidance program for Mariner probe. | ||||
Class 4 | Tue 6‑9‑2011 | Complex and intricate things can easily be achieved by building up
small simple functions: All the squares. | ||||
Class 5 | Thur 8‑9‑2011 | Bart's punishment didn't quite go as planned.
It needed a conditional, C++'s if. Functions run in their own private universes of memory, that's how they can have "circular" definitions. Simple controlled repetition; counting up or down; tabulating temperature conversions. | ||||
Class 6 | Tue 13‑9‑2011 | Overflow when ints get too big. Analysis of repetitive functions, and the Special Star | ||||
Class 7 | Thur 15‑9‑2011 | Thinking about the fractal star. Functions that return values.
The bool operators && || !. Nested repetition with the tidy multiplication table. | ||||
Class 8 | Tue 20‑9‑2011 | More divide and conquer: a general purpose graph plotting program. | ||||
Class 9 | Thur 22‑9‑2011 | Some serious dividing and conquering: speaking numbers. | ||||
Class 10 | Tue 27‑9‑2011 | The complete Number Speaking Function, a nice clean recursive solution. A logarithmic algorithm: Finding Square Roots, to be competed. | ||||
Class 11 | Thur 29‑9‑2011 | The binary chop search square root function, how quickly it converges; cout and \n. How to make bees, what a caprimulgus does at night, Brownian motion and the while loop. | ||||
Class 12 | Tue 4‑10‑2011 | Sometimes variables are useful: variables and loops. | ||||
Class 13 | Thur 6‑10‑2011 | Comparing three sorting algorithms, "Bubble sort", "Selection sort", and "Merge sort", and
seeing that different solutions to the same problem can have vastly different speeds,
N2 versus N×log2N. Introducing Unix. | ||||
Class 14 | Tue 11‑10‑2011 | Why we should avoid complacency. We'll have to have
a mid-term before much longer. More unixing, and the Badly Written Program. | ||||
Class 15 | Thur 13‑10‑2011 | The most common types of bad programming practice. Little things: for, +=, -=, *=, etc, ++, --, , Good programming practice: continuous refinement from a correct problem statement to a correct documented program. | ||||
Class 16 | Tue 18‑10‑2011 | A simulation of a physical situation: The boy and the bull. | ||||
Class 17 | Thur 20‑10‑2011 | The break statement, stopping a loop at any time. An overloaded function. ofstream and ifstream: Creating and reading files on disc. the updated case study. | ||||
Class 18 | Tue 25‑10‑2011 | Test Day. (and a plain text version) | ||||
Class 19 | Thur 27‑10‑2011 | Some "objects" in C++: Dull facts about string, ifstream (like cin), ofstream (like cout). | ||||
Class 20 | Tue 1‑11‑2011 | Reference Parameters, and Creating our own objects. | ||||
Class 21 | Thur 3‑11‑2011 | Objects (structs) can be very useful, simplifying and clarifying programs. Final version of the case study: we even added a dinosaur in 3 minutes. | ||||
Class 22 | Tue 8‑11‑2011 | Review of question 2. Arrays, the spelling checker program. | ||||
Class 23 | Thur 10‑11‑2011 | The ASCII character code, string manipulations, making the spelling checker function properly. Things to remember about passing arrays to functions. | ||||
Class 24 | Tue 15‑11‑2011 | The lead-in: plotting a complicated 3-D graph. Telling C++ how to use complex numbers, and investigating how they behave. | ||||
Class 25 | Thur 17‑11‑2011 | Reviewing ifstreams, ofstreams, structs, and arrays. and a little more exploration of complex numbers. | ||||
Sun 20th | Review Session (voluntary) at 5 pm in EB 216. | |||||
Mon 21st | Review Session (voluntary) at 5 pm in EB 504. | |||||
Class 26 | Tue 22‑11‑2011 | Test and solutions. | ||||
Class 27 | Tue 29‑11‑2011 | Case Study in design and implementation from beginning to end: the molecular weight calculator, data file. | ||||
Class 28 | Thur 1‑12‑2011 | Talking about the final for a bit, and finishing the case study. | ||||
Review | Sun 11‑12‑2011 | in EB 216 from 1 to 3. Review session with the lab guys. | ||||
Final | Tue 13‑12‑2011 | at 2:00 p.m. in our usual classroom. |
Lab Setup Guide Library downloads and documentation | ||||||||
Lab 1 | 30 Aug - 1 Sep | (pdf) | Using visual C++ to run programs; drawing stars and stick figures. | |||||
Lab 2 | 6-8 Sep | (pdf) | Divide and conquer: building big programs from little functions. | |||||
Lab 3 | 20-22 Sep | (pdf) | Randomly generated Happy Street Scene. | |||||
Lab 4 | 27-29 Sep | (pdf) | Video game: exploding the enemy with a cannon; (assistance with the drawing). | |||||
Lab 5 | 4-6 Oct | (pdf) | Real-time animated clock application. | |||||
Lab 6 | 11-13 Oct | (pdf) | Generating calendars and using Unix. | |||||
Lab 7 | 18-20 Oct | (pdf) | An interactive desk calculator. | |||||
Lab 8 | 25-27 Oct | (pdf) | Meteorological data processing and visualisation. the data files | |||||
Lab 9 | 1-3 Nov | (pdf) | Interactive map of the United States. Data files: state outlines, capitals. | |||||
Lab 10 | 8-10 Nov | (pdf) | Database programming under Unix. Data files: database1.txt, 2, 3, 5, 10, 20. The special timing function. | |||||
Lab 11 | 15-17 Nov | (pdf) | A robot seaching for treasure in a maze. sample maze | |||||
Lab 12 | 29 Nov - 1 Dec | (pdf) | An automatic robot: he turned into a video game. |