EEN118 R (Programming 1) Spring 2021
Tues, Thurs 2:40 - 3:55 in LC 140

Class History

Class 1  ‑ Tue 26‑1‑2021   Quick introductions, syllabus, policies, what the class is all about.
Why computers use binary instead of decimal.
Working out what six times nine is.
Sometimes the simplest things are the hardest to do.
Lab sections moved to MM 312.
HKN free tutoring via umiami.hkn@gmail.com
Class 2  ‑ Thur 28‑1‑2021 Types and operations.
Defining and using functions.
A sample of the first test.
Class 3  ‑ Tue 2‑2‑2021 A couple of simple graphical programs.
Solving quadratics again, three versions.
Conquering repetition with recursion.
Class 4  ‑ Thur 4‑2‑2021 Controlling repetition: Today's examples.
Class 5  ‑ Tue 9‑2‑2021 A couple of functions,
Plotting one, and plotting them both.
Investigating the range of
ints and doubles.
A ridiculously over-long program,
and a vast improvement on it.
Class 6  ‑ Thur 11‑2‑2021 Finishing Tuesday's big example.
A program that writes another program.
Functions that return values: Factorial and Sum of a series.
Introducing the array,
Searching an array of animals.
Class 7  ‑ Tue 16‑2‑2021 More on patterns of recursion.
Searching, tarting points: one, two.
Straightforward searches, and the Binary Chop search.
Class 8  ‑ Thur 18‑2‑2021 How fast binary chop is.
Detecting a failed search.
Creating a dictionary.
A guessing game,
The computer plays the game.
Calculating square roots, preparation, and the program.
The big array was totally unnecessary.
Class 9  ‑ Tue 23‑2‑2021 Finding the square root of a double,
Viewing the collatz sequence,
Graphing the lengths of the collatz sequences,
Some basic encryption.
Class 10  ‑ Thur 25‑2‑2021 Encryption/decryption finished; "abc" is not a string yet.
A fractal star by drawing a special triangle.
A surprise fractal.
Class 11  ‑ Tue 2‑3‑2021 Brownian motion, a simulation that crashes.
Introducting the while loop and break.
Today's programs.
Class 12  ‑ Thur 4‑3‑2021 All about using Unix.
The slightly unfinished prime listing program.
Class 13  ‑ Tue 9‑3‑2021 Preparation for the test.
Class 14  ‑ Thur 11‑3‑2021 First mid-term exam. All on-line, using Respondus lock-down browser.
A sample test, and another sample.
Class 15  ‑ Tue 16‑3‑2021 Introducing variables.
Today's examples.
Class 16  ‑ Thur 18‑3‑2021 <iomanip> The times table again.
Using variables to search for animals, version 1, version 2, version 3.
Our own sine function.
Update operators and the for loop.
Class 17  ‑ Tue 23‑3‑2021 Using for loops: animal search, and sine calculations.
Reversing the order of an array, and introducing reference parameters.
Converting a file to all-caps, here's the file.
Class 18  ‑ Thur 25‑3‑2021 Peter Pan.
Counting all the "the"s in a story,
Counting occurrences of all words,
Simple encryption again, and whole sentences, and rot13.
Class 19  ‑ Tue 30‑3‑2021 What we learned from the test.
Class 20  ‑ Thur 1‑4‑2021 A chemistry data file,
Processing chemical formulae, step 1, step 2, step 3, step 4, step 5, step 6.
Class 21  ‑ Tue 6‑4‑2021 Introducing objects.
Improving the chemistry calculator, step 7, step 8, step 9.
The final step still has some errors in it.
Class 22  ‑ Thur 8‑4‑2021 Review day, files and arrays and a bit of searching.
Class 23  ‑ Tue 13‑4‑2021 Test day: Files, arrays, and searching.
A sample, and another sample.
Class 24  ‑ Thur 15‑4‑2021 Some debugging practice; back to the chemistry calculator, completing it and making it recursive: step 10, step 11.
When 0.1 * 10000000 might not equal 1000000.
Class 25  ‑ Tue 20‑4‑2021 String operations.
Showing C++ how to work with fractions.
Class 26  ‑ Thur 22‑4‑2021 A simulation - the boy and the bull.
Class 27  ‑ Tue 27‑4‑2021 Teaching C++ about complex numbers,
and discovering the Mandelbrot set.
Class 28  ‑ Thur 29‑4‑2021 Preparing for the final.


Lab Assignments

Submit assignments as a single document (word documents are preferred), including all your code and screenshots of it running, to ecegrader @ gmail.com
Lab 1,   Tue 2 Feb - Thur 4 Feb
(pdf) Using visual C++ to run programs; drawing stars and stick figures.
Lab 2, Tue 9 Feb - Thur 11 Feb
(pdf) Divide and conquer: building big programs from little functions.
Lab 3, Tues 16 Feb - Thur 18 Feb
(pdf) Controlling repetition in programs.
Part C2 is for extra credit only.
Lab 4, Tue 23 Feb - Thur 25 Feb
(pdf) A video game: Space Invaders with a cannon.
Lab 5, Tue 2 Mar - Thur 4 Mar
(pdf) A real-time animated clock application.
Lab 6, Tue 9 Mar - Thur 11 Mar
(pdf) Generating calendars and using Unix.
Lab 7, Tue 16 Mar - Thur 18 Mar
(pdf) A randomly generated Happy Street Scene.
Lab 8, Tue 23 Mar - Thur 25 Mar
(pdf) An interactive desk calculator.
Lab 9, Tue 30 Mar - Thur 1 Apr
(pdf) Meteorological data processing and visualisation. the data files
Lab 10, Tue 6 Apr - Thur 8 Apr
(pdf) Database programming under Unix.
The special timing function.
Lab 11, Tue 13 Apr - Thur 15 Apr
(pdf) A robot seaching for treasure in a maze. sample maze; alternate sample.
Lab 12, Tue 20 Apr - Thur 22 Apr
(pdf) An automatic robot: he turned into a video game.


Last Semester's Lab Assignments

These are just to give you an idea of what's coming. This semester's labs will be slightly different. Beware: you don't get any points for doing the wrong assignment.