EEN118 R (Programming 1) Autumn 2017
Tues, Thurs 2:00-3:15 in MM315

Class History

Class 1  Tue 22‑8‑2017    Hello to everyone.
Why computers use binary instead of decimal.
Sometimes the simplest things are the hardest to do.
Class 2  Thur 24‑8‑2017 Setting up a Visual Studio project.
Our first little programs.
Class 3  Tue 29‑8‑2017 A function!.
Being ready for exam question 1.
A list of the most common operators in expressions.
What happends when we're late for class,
Something of an improvement.
Class 4  Thur 31‑8‑2017 Conditional exection, a quadratic equation solver version 1, version 2, version 3.
And at last, we are able to control repetition with recursion.
Class 5  Tue 5‑9‑2017 Today's experiments: a count-down,
tabulating square roots, backwards,
a count-up,
tabulating a more interesting function,
plotting a pretty graph.
Thur 7‑9‑2017 XXX
Tue 12‑9‑2017 XXX
Thur 14‑9‑2017 XXX
Tue 19‑9‑2017 XXX
Thur 21‑9‑2017 XXX
Class 6  Tue 26‑9‑2017 Reminding ourselves of the easy stuff: an anything-a-gon,
A mysterious function to trace: private universes, stack frames, etc,
Printing in binary, or just about any other base,
Starting to analyse an even more mysterious function.
Class 7  Thur 28‑9‑2017 What does this function do? Analysing some recursive definitions.
An absurdly long program.
One step towards redesigning it properly.
Class 8  Tue 3‑10‑2017 Building up the number-saying function step-by-step: step 1, step 2, step 3, step 4, step 5, step 6.
But the function got very big, here's an alternate approach,
Class 9  Thur 5‑10‑2017 Functions that return results, and functions as parameters.
Tabulating a simple function,
A slightly more complex function,
Plotting two graphs with the same function,
The length of the Collatz sequence, can you graph it?
Class 10  Tue 10‑10‑2017 Introduction to using unix.
A program that produces a strange result - Not a Number.
Using an Accumulating Parameter to solve that sort of problem.
Class 11  Thur 12‑10‑2017 Some Biology: How to make bees, and what a caprimulgus does at night.
Simulating Brownian motion, the deliberately unending loop while (true).
Thoughts about decorative lines.
Class 12  Tue 17‑10‑2017 The decorative lines that turn a triangle into a star/snowflake:
a limited and over-long version, now better and recursive, finally calculating the perimeter and being interactive.
Rabbit usernames this semester.
The macintosh terminal command for connecting to rabbit is:
ssh -oHostKeyAlgorithms=+ssh-dss username@rabbit.eng.miami.edu
Class 13  Thur 19‑10‑2017 Basic encryption.
Alphabetical Animals for searching.
Review Friday at 5pm Pre-test review session. Aim for room EB 237.
Review Sunday at 1pm Pre-test review session. Aim for room EB 237.
Review Monday at 7pm Extra pre-test review session. Aim for room EB 237.
Class 14  Tue 24‑10‑2017 First Test. A sample.
Class 15  Thur 26‑10‑2017 Introducing variables,
for a loop, introducing setw
calculating a value,
ordinary array search, introducing break and cin,
binary chop search.
Class 16  Tue 31‑10‑2017 Variables, functions, and reference parameters: getting two variables in ascending order,
three variables,
six variables,
finally a general sorting program.
Class 17  Thur 2‑11‑2017 Some exercises: A circle, A Spirograph pattern.
Accessing files on disc: A program that writes a piece of program.
Chemical symbol searching, and the data file it reads.
Class 18  Tue 7‑11‑2017 What we learned from the test.
Class 19  Thur 9‑11‑2017 Calculating the molecular weight for a formula.
Reading the file into arrays, searching, does a string really make an int?
Class 20  Tue 14‑11‑2017 Conveniences: the update operators +=, -=, *=, /=, ++, --, the 'for' loop.
How errors build up in doubles, writing non-whole numbers in binary.
Introducing objects (structs) by creating fractions as a numeric type.
Class 21  Thur 16‑11‑2017 Finishing the fraction calculator, normalisation with the gcd.
Converting the chemistry calculator to use objects.
Class 22  Tue 28‑11‑2017 Getting rid of the global variables with another object.
Designing our own input object.
Class 23  Thur 30‑11‑2017 A dangerous simulation, using objects and arrays.
Review Sunday at 4pm Pre-test review session. Aim for room EB 237.
Review Monday at 7pm Pre-test review session. Aim for room EB 237.
Class 24  Tue 5‑12‑2017 Second Test. A sample. Another sample.
Class 25  Thur 7‑12‑2017 More practice with arrays and objects.
Class 26  Tue 12‑12‑2017 Final Test.
Class 27  Tue 19‑12‑2017


Lab Assignments

Lab 1,   Mon 28 Aug - Thur 31 Aug
(pdf) Using visual C++ to run programs; drawing stars and stick figures.
Lab 2, Mon 25 Sep - Thur 28 Sep
(pdf) Divide and conquer: building big programs from little functions.
Lab 3, Mon 2 Oct - Thur 5 Oct
(pdf) Controlling repetition in programs.
Lab 4, Mon 9 Oct - Thur 12 Oct
(pdf) A video game: Space Invaders with a cannon.
Lab 5, Mon 16 Oct - Thur 19 Oct
(pdf) A real-time animated clock application.
Lab 6,  Mon 23 Oct - Thur 26 Oct
(pdf) Generating calendars and using Unix.
Lab 7, Mon 30 Oct - Thur 2 Nov
(pdf) A randomly generated Happy Street Scene.
Lab 8, Mon 6 Nov - Thur 9 Nov
(pdf) An interactive desk calculator.
Lab 9, Mon 13 Nov - Thur 16 Nov
(pdf) Meteorological data processing and visualisation. the data files
Lab 10,  Mon 27 Nov - Thur 30 Nov
(pdf) Database programming under Unix.
The special timing function.
Lab 11, Mon 4 Dec - Thur 7 Dec
(pdf) A robot seaching for treasure in a maze. sample maze; alternate sample.
Extra credit lab
(pdf) An automatic robot: he turned into a video game.