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

Class History

Class 1  ‑ Tue 20‑8‑2019   Hello to everyone.
Why computers use binary instead of decimal.
Sometimes the simplest things are the hardest to do.
Class 2  ‑ Thur 22‑8‑2019 The rules of arithmetic, strings, ints, doubles, and bools.
A sample first test.
Building a very basic program.
Class 3  ‑ Tue 27‑8‑2019 Setting up a visual studio project
Drawing lots of squares on top of each other
Solving a quadratic equation.
Class 4  ‑ Thur 29‑8‑2019 Controlling repetition in a program,
Properly solving quadratic equations,
Plotting a graph,
Plotting two graphs on the same axes.
Class 5  ‑ Tue 3‑9‑2019 (Closed)
Class 6  ‑ Thur 5‑9‑2019 Common patterns for recursive functions,
Why use recursion at all?
A function that says the digits of a number,
The effects of integer overflow,
A ridiculously long program - it needs a redesign.
Class 7  ‑ Tue 10‑9‑2019 The complete number saying program.
Class 8  ‑ Thur 12‑9‑2019 A program that writes another program for us,
The sum of a series,
Searching for animals
Class 9  ‑ Tue 17‑9‑2019 The Binary Chop search method.
Class 10  ‑ Thur 19‑9‑2019 Drawing polygons or cicles.
Another way to produce a circle.
More uses of the while loop.
Exploring the Collatz sequence.
Class 11  ‑ Tue 24‑9‑2019 Graphing the length of the Collatz sequence.
Finding square roots by binary chop search on a table.
Class 12  ‑ Thur 26‑9‑2019 Finding square roots by binary chop search without a table.
Some very basic encryption.
Class 13  ‑ Tue 1‑10‑2019 Introduction to unix.
Class 14  ‑ Thur 3‑10‑2019 Searching for a character in a string, encryption and decryption
Class 15  ‑ Tue 8‑10‑2019 Test day.
Class 16  ‑ Thur 10‑10‑2019 Introducing variables.
Class 17  ‑ Tue 15‑10‑2019 More with variables:
Binary chop search, the sine function,
Update operators and the for loop.
Class 18  ‑ Tue 22‑10‑2019 What we learned from the test.
Class 19  ‑ Thur 24‑10‑2019 A reason for not being complacent.
Using ifstreams and ofstreams or access to disc files.
A chemistry data file for us to work with, and
our first program using it, second, third, and fourth.
Class 20  ‑ Tue 29‑10‑2019 Sorting in three steps: one, two, three, and
randomising an array and resorting the result.
Class 21  ‑ Thur 31‑10‑2019 Introducing structs.
The chemistry calculator refined.
Class 22  ‑ Tue 5‑11‑2019 1000 * 0.1 might not == 100. Why not?
Teaching C++ how to use fractions.
Class 23  ‑ Thur 7‑11‑2019 Arrays and structs and files, all together.
Class 24  ‑ Tue 12‑11‑2019 Second test. A sample. Another sample.
Class 25  ‑ Thur 14‑11‑2019 A simulation: the boy, the bull, and the dinosaur.
Class 26  ‑ Tue 19‑11‑2019 Complex numbers and the Mandelbrot set.
Class 27  ‑ Thur 21‑11‑2019 What we learned from the test.
Break
Class 28  ‑ Tue 3‑12‑2019 Review of everything.


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

Last Year's Lab 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.

Latest Wed 12 December
Last day anything can be accepted for grading.