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

Class History

Class 1  Tue 21‑8‑2018    Hello to everyone.
Why computers use binary instead of decimal.
Sometimes the simplest things are the hardest to do.
Class 2  Thur 23‑8‑2018 Trying to start a visual studio project.
Arithmetic rules, int vs double, A sample first test.
Class 3  Tue 28‑8‑2018 At last! We set up a working visual studio project.
Using a function - drawing a square four times
Giving inputs to a function - varying the size of the square
Introducing conditional execution - I must not be late for class.
Class 4  Thur 30‑8‑2018 if and else, defining named constants.
Quadratic equation solver: version 1, version 2.
A list of the most common operators in expressions.
Class 5  Tue 4‑9‑2018 Counting down, counting up, controlling repetition in both directions.
Tabulating and plotting an interesting function.
Plotting a circle, spirograph-like circles within circles.
Class 6  Thur 6‑9‑2018 Practice with controlling repetition:
many polygons,
speaking the digits of a number,
what happens when an int value overflows,
the mystery function that produces a lot of output,
An absurdly long program - needs redesign.
Class 7  Tue 11‑9‑2018 The number-saying program.
The same program reformulated.
Class 8  Thur 13‑9‑2018 Functions that return values:
Plotting a graph,
Solving quadratics again,
The sum of a series.
Some animals in alphabetical order.
Class 9  Tue 18‑9‑2018 Searching for a character in a string, encryption and decryption,
Binary chop search,
Ordinary recursion: printing in binary, and hexadecimal.
Class 10  Thur 20‑9‑2018 An accumulating parameter for special circumstances,
Exploring the Collatz sequence,
Graphing the length of the Collatz sequence,
A fractal star.
Class 11  Tue 25‑9‑2018 Some Biology: How to make bees, and what a caprimulgus does at night.
Simulation of Brownian motion, introducing the while loop.
Many more recursive functions.
Class 12  Thur 27‑9‑2018 Lots of examples of program design.
Class 13  Tue 2‑10‑2018 Using Unix.
Update: special note for mac users.
Square roots by binary chop search of a table,
Much better: binary chop search of the square function.
Class 14  Thur 4‑10‑2018 Eight examples making use of variables:
one, two, three, four, five, six, seven, eight.
Class 15  Tue 9‑10‑2018 Review day.
Class 16  Thur 11‑10‑2018 Test Day. A sample.
Class 17  Tue 16‑10‑2018 Introducing reference parameters and sorting.
Failing to put two int variables in ascending order,
Succeeding by using reference parameters,
Getting three variables in order,
four,
six,
and now sorting a whole array.
Class 18  Tue 23‑10‑2018 What we learned from the test.
Class 19  Thur 25‑10‑2018 The dangers of complacency.
Using ifstreams and ofstreams or access to disc files.
A chemistry data file for us to work with, and our first program using it.
Class 20  Tue 30‑10‑2018 Continuing with the chemistry calculator:
Copying the data from the file into arrays before searching,
Dealing with numbers in the formulas.
Class 21  Thur 1‑11‑2018 Introducing structs:
into the chemistry calculator, and
teaching C++ how to use fractions in calculations.
Class 22  Tue 6‑11‑2018 A simulation: the boy and the bull.
Class 23  Thur 8‑11‑2018 A special input-system struct vastly improved the chemistry calculator,
and a little recursion lets it handle parenthesised sub-formulas.
Class 24  Tue 13‑11‑2018 Review Day
Class 25  Thur 15‑11‑2018 Second Test. A sample. Another sample.
Class 26  Tue 27‑11‑2018 Complex numbers in C++.
Exploring a complex function - repeat z = z*z + c.
Class 27  Thur 29‑11‑2018 Files, arrays, and structs.
Class 28  Tue 4‑12‑2018 Review day.


Lab Assignments

Submit assignments as a single document (word documents are preferred), including all your code and screenshots of it running, to 118grader @ rabbit.eng.miami.edu

Lab 1,   Mon 27 Aug - Thur 30 Aug
(pdf) Using visual C++ to run programs; drawing stars and stick figures.
Lab 2, Tue 4 Sep - Mon 10 Sep
(pdf) Divide and conquer: building big programs from little functions.
Lab 3, Tue 11 Sep - Mon 17 Sep
(pdf) Controlling repetition in programs.
Lab 4, Tue 18 Sep - Mon 24 Sep
(pdf) A video game: Space Invaders with a cannon.
Lab 5, Tue 25 Sep - Mon 1 Oct
(pdf) A real-time animated clock application.
Lab 6,  Tue 2 Oct - Mon 8 Oct
(pdf) Generating calendars and using Unix.
Lab 7, Tue 9 Oct - Mon 15 Oct
(pdf) A randomly generated Happy Street Scene.
Lab 8, Mon 22 Oct - Thur 25 Oct
(pdf) An interactive desk calculator.
Lab 9, Mon 29 Oct - Thur 1 Nov
(pdf) Geographical and Meteorological data processing and visualisation. Data file: state outlines.
Hurricane tracks: 2017_hur_dat.txt, 2016, 2015, 2014, 2013, 2012, 2011, 2010,
2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000.
(All the files in one .zip file).
Lab 10,  Mon 5 Nov - Thur 8 Nov
(pdf) Database programming under Unix.
The special timing function.
Lab 11, Mon 12 Nov - Thur 15 Nov
(pdf) A robot seaching for treasure in a maze. sample maze; alternate sample.
Lab 12, Mon 26 Nov - Thur 29 Nov
(pdf) An automatic robot: he turned into a video game.
Latest Wed 12 December
Last day anything can be accepted for grading.


Last Year's Assignments

These are posted to satisfy any curiosity about what sort of thing is coming up. This semester's assignments will be different. Sometimes slightly different, sometimes a lot different. You don't get a grade for doing the wrong semester's assignments.

The dates are different too; last year the semester was interrupted by a hurricane.