EEN118, Programming I, Autumn 2009

Class History

     Class 1    Thurs 27-8-2009    General introductions, the nature of computing.
The official syllabus.
    
Class 2 Tues 1-9-2009 The very basics of making a program.
The wrong approach: part of the Mariner I guidance program from 1962.
Class 3 Thurs 3-9-2009 Divide and Conquer, Defining functions, Naming constants.
our decorative squares and taken to the next level
Class 4 Tues 8-9-2009 The different numeric types (int and double) and their representations and how C++ deals with them. (page)
Building up functions to control repetition, and an infinitely repeating function.
The thing that draws a circle,
The thing that nearly prints the three-times table, and its output.
Class 5 Thurs 10-9-2009 Very useful functions: perfectly controlled repetition, plotting a graph
The detention punishment: a stupid but logical program,
a sensible but still flawed version of it,
making it help to debug itself,
a perfect version of it,
converting it into controlled repetition with a counter,
A function that tabulates the formula y=x2-5x+1,
A nice graph plotter for a complicated function.
Class 6 Tues 15-9-2009 The beginning of a very big function,
The final version: a function that can speak any number.
Class 7 Thurs 17-9-2009 How functions avoid confusing themselves: private universes called stack frames,
a function that prints numbers in decimal or binary,
functions that produce results.
Class 8 Tues 22-9-2009 Mastering unlimited repetition, eels growing from horses' hairs, the experiments with
Brownian motion - didn't go far enough, exploded, worked perfectly.
User control: "do you want another go?"
Good programming principles: A vastly tidied function plotter.
Class 9 Thurs 24-9-2009 The enormous benefits of making small simple functions and giving everything a name,
Today's starting point, and what we had half way through.
Functions can be parameters too,
Divide and conquer by cutting the problem in half, Searching for square roots.
Class 10 Tues 29-9-2009 Using Unix.
(remember there is a detailed description here)
Class 11 Thurs 1‑10‑2009 The development methodology: big results through steps too small and simple to fail.
Today's creation, our own sine function.
Class 12 Tues 6‑10‑2009 Arrays and searching. The deceptive cout.
3D graph plotting, divide and conquer by quartering.
(Wed‑7‑10‑2009 Academic alerts due)
Class 13 Thurs 8‑10‑2009 What would it do? practice and analysis. sample-1, sample-2, sample-3.
Class 14 Tues 13‑10‑2009 Thinking about clarity and generality: (the good 3D plotter);
The strange shape: the calculations, creating a shape, a pile of shapes, a wobbly pile;
The magic of fractals: creating a tree. experimentally making it nicer.
Class 15 Thurs 15‑10‑2009 Variables: variables used well, variables used badly.
Class 16 Tues 20‑10‑2009 Mid Term Test.
Class 17 Thurs 22‑10‑2009 Reference parameters, cin, cout, ifstreams, ofstreams.
The Boy and the Bull, part one.
Class 18 Tues 27‑10‑2009 Simplifying and structuring the simulation Boy and Bull, part two.
Class 19 Thurs 29‑10‑2009 Introducing structured objects: money for old fogeys, and unicode
Using objects to make the simulation more comprehensible, the result.
What went wrong.
Class 20 Tues 3‑11‑2009 A good reason for not being lazy,
Objects within objects, and another case for clean simple design: simulated dinosaur.
Class 21 Thurs 5‑11‑2009 Complex numbers. Implementing them as structs. Discovering the Mandelbrot Set,
the first picture, zoomed in on his neck, zoomed in on a shoulder wart, much further.
Class 22 Tues 10‑11‑2009 Output streams as parameters (example 1, 2), and <iomanip>; Using "for" loops (good, bad); "For" loops with arrays (good, bad); Arrays of objects (beginning example).
Class 23 Thurs 12‑11‑2009 The unfortunately-formatted data file, and the five minute converter utility.
Exploring the representation of strings, the beginning of a molecular weight calculator.
Class 24 Tues 17‑11‑2009 Developing the "mystream" helper struct to simplify string processing,
and what it did to our calculator.
Class 25 Thurs 19‑11‑2009 Multi-dimensional arrays. A very easy calculator utility, and extending the molecular weight calculator to allow parentheses.
Class 26 Tues 24‑11‑2009 Second Test Day: Arrays, Structs, Files. A7.
(model answers from previous tests: A, B.
Class 27 Tues 1‑12‑2009 Ethics in Computer Engineering. The aurthority and origin of ethical systems, robots, copyright, harvesting the rich, privacy, evil yellow dots.
NSPE code of ethics, ethics test, answers.
Class 28 Thurs 3‑12‑2009 What we learned from the second test, being ready for the final.
Paper due Sun 13‑12‑2009 Ethics paper. Write 4 to 5 paragraphs on the ethical issue of your choice within the area of computer engineering.
Three requirements: Proper English, About Ethics, Concerning Computer Engineering.
e-mail it directly to me: stephen "at-sign" rabbit.eng.miami.edu.
Review Sat 12‑12‑2009 Voluntary review session with Sam/Mike at 2:00 pm, in Engineering lab.
Review Tues 15‑12‑2009 Voluntary review session with Sam/Mike at 11:00 am, in Enginerring lab.
Final exam Wed 16‑12‑2009 At 2:00 pm in our normal classroom.


Lab Assignments

                    Lab Setup Guide     
     Lab 1 1-2 Sept      (pdf)      Using visual C++ to run programs; drawing stars and stick figures.
     Lab 2 8-9 Sept      (pdf)      Divide and conquer: building big programs from little functions.
     Lab 3 15-16 Sept      (pdf)      A video game: exploding the enemy with a cannon.
     Lab 4 22-23 Sept      (pdf)      A real-time animated clock application.
     Lab 5 29-30 Sept      (pdf)      Generating calendars and using Unix.
     Lab 6 6-7 Oct      (pdf)      A randomly generated Happy Street Scene.
     Lab 7 13-14 Oct      (pdf)      Debugging Practise (Here's the suspect program)
     Lab 8 20-21 Oct      (pdf)      An interactive desk calculator.
     Lab 9 27-28 Oct      (pdf)      Meteorological data processing and visualisation. the data files
     Lab 10 3-4 Nov      (pdf)      Interactive map of the United States. Data files: state outlines, capitals.
     Lab 11 10-11 Nov      (pdf)      Database programming under Unix.
Data files: database1.txt, 2, 3, 5, 10, 20.
The special timing function.
     Lab 12 17-18 Nov      (pdf)      A robot seaching for treasure in a maze. sample maze
     24-25 Nov           No labs this week. Voluntary help session Tuesday 6:25 to 7:40
     Lab 13 1-2 Dec      (pdf)      An automatic robot: he turned into a video game.