Class 1 | Tue 23‑8‑2016 | Quick introductions, etc. Why computers use binary instead of decimal. Programming: old, better, better, new, worse. Sometimes the simplest things are the hardest to do. | ||||
Class 2 | Thur 25‑8‑2016 | Setting up a visual studio C++ project. Three C++ introductory programs: one, two, three. | ||||
Class 3 | Tue 30‑8‑2016 | Expressions - Operators and Priorities The classroom computer messed up my memory stick. If anyone has accurate notes of the first example (with controlled repetition) please send me a copy. I want to get as close to what we had in class as possible. | ||||
Class 4 | Thur 1‑9‑2016 | Repetition controlled again: Bart's punishment. Functions that return values: square, difference. Something useful, a quadratic equation solver. | ||||
Class 5 | Tue 6‑9‑2016 | Testing Expressions. Make your own tests, get very familiar with this. Bart's punishment can easily be adapted to do something useful, tabulating a function. With a bit of cleverness, we can even do it in the "right" order. And a tabulator can be changed into a graph plotter. | ||||
Class 6 | Thur 8‑9‑2016 | What we've been doing recently is called Recursion. It is a very powerful technique. Analysing more complex recursive functions. An absurdly long program. One step towards redesigning it properly. After a few more steps The complete final version. Concentrate on guaranteeing correctness for an easy range of inputs, and gradually building on that. Extend the range of guaranteed correctness without leaving holes. | ||||
Class 7 | Tue 13‑9‑2016 | Gaining complete control over what a function returns:
one,
two,
three,
finally, an Accumulating Parameter. | ||||
Class 8 | Thur 15‑9‑2016 | A little taste of unix: pico, CC, a.out. Simple encryption and decryption by substitution. Printing an int an any base (up to 36). | ||||
Class 9 | Tue 20‑9‑2016 | Complete conversion between two bases. A triangle drawn with fancy lines, we need to improve its structure. | ||||
Class 10 | Thur 22‑9‑2016 | A recursive fractal star, the infinite coastline. A good way of plotting a graph A three dimensional graph using colour as the third dimnension | ||||
Class 11 | Tue 27‑9‑2016 | Some Biology:
How to make bees, and
what a caprimulgus does at night. Calculations about a shape, but don't panic! It's already coded. Recursive graphics. | ||||
Class 12 | Thur 29‑9‑2016 | Using Unix. | ||||
Class 13 | Tue 4‑10‑2016 | Searching for Animals at the Pet Shop. With a real search function and prices. Introducing the Binary Chop Search. | ||||
Class 14 | Tue 11‑10‑2016 | Special Review | ||||
Class 15 | Thur 13‑10‑2016 | More review | ||||
Class 16 | Tue 18‑10‑2016 | First Mid-Term Test. A Sample. | ||||
Class 17 | Tue 25‑10‑2016 | Standard C++ input and output. A data file, and two programs that read it: one, two. | ||||
Class 18 | Thur 27‑10‑2016 | The beginning of a chemistry calculator. Simplifications: for loops, update operators +=, -=, *=, etc. | ||||
Class 19 | Tue 1‑11‑2016 | Errors with doubles build up in chain calculations, converting between binary and decimal for fractions; 1/10 repeats infinitely. Introducing structs (to represent fractions accurately), Euclid's GCD algorithm (300 BC). | ||||
Class 20 | Thur 3‑11‑2016 | Using structs, our Chemistry Calculator gets a lot better. | ||||
Class 21 | Tue 8‑11‑2016 | Reference Parameters and Sorting. The first four steps:
one,
two,
three,
four. Meta-programming: finally we wrote a program that wrote the program for us.. | ||||
Class 22 | Thur 10‑11‑2016 | A flexible object oriented input system. | ||||
Special | Saturday at 2:30 Sunday at 1:00 | Discussion/Help session, Engineering Building. | ||||
Class 23 | Tue 15‑11‑2016 | The justification for structs; more general review. | ||||
Class 24 | Thur 17‑11‑2016 | Second Test. Here are some old sample questions. | ||||
Class 25 | Tue 29‑11‑2016 | Bringing things together, Arrays, files, structs, and methods, all in our one calculator example. | ||||
Class 26 | Thur 1‑12‑2016 | Now recursion joins in too, and we can handle complicated formulæ with parentheses. Slight review of tests. Reverse Polish Notation. | ||||
Special | Monday at 6:15 | Pre-final review, Engineering Building. | ||||
Class 27 | Tue 6‑12‑2016 | Today will be for questions and problems only. I'll consider it a reading day. | ||||
Special | Tuesday at 5:00 | Pre-final review, Engineering Building. |
Lab 1, | Mon 29 Aug - Thur 1 Sept | |||||
(pdf) | Using visual C++ to run programs; drawing stars and stick figures. | |||||
Lab 2, | Tues 6 Sept - Mon 12 Sept | |||||
(pdf) | Divide and conquer: building big programs from little functions. | |||||
Lab 3, | Tues 13 Sept - Mon 19 Sept | |||||
(pdf) | Controlling repetition in programs. | |||||
Lab 4, | Tues 20 Sept - Mon 26 Sept | |||||
(pdf) | A video game: exploding the enemy with a cannon. | |||||
Lab 5, | Tues 27 Sept - Mon 3 Oct | |||||
(pdf) | A real-time animated clock application. | |||||
Lab 6, | Tue 4 Oct - Mon 10 Oct | |||||
(pdf) | Generating calendars and using Unix. | |||||
Lab 7, | Tues 11 Oct - Mon 17 Oct | |||||
(pdf) | A randomly generated Happy Street Scene. | |||||
Lab 8, | Mon 24 Oct - Thur 27 Oct | |||||
(pdf) | An interactive desk calculator. | |||||
Lab 9, | Mon 31 Oct - Thur 3 Nov | |||||
(pdf) | Meteorological data processing and visualisation. the data files | |||||
Lab 10, | Mon 7 Nov - Thur 10 Nov | |||||
(pdf) | Database programming under Unix. The special timing function. | |||||
Lab 11, | Mon 14 Nov - Thur 17 Nov | |||||
(pdf) | A robot seaching for treasure in a maze.
sample maze. | |||||
Lab 12, | Mon 28 Nov - Thur 1 Dec | |||||
(pdf) | An automatic robot: he turned into a video game. | |||||
Mon 12 Dec - Thur 15 Dec | ||||||
Nothing will be accepted for grading more than 1 week after your deadline for lab 12. |