- Here's this semester's final exam questions. Note that there is an extra problem between 11 and 12 that didn't get numbered. We called it problem 11.5.
- I've posted office hours for finals week on my schedule page.
- Deadline for a redo of the recursion problem is extended to Monday, Dec 10.
- Office hours for finals week will be posted on my schedule page.
- The final exam will be held on Dec 12, from 6 to 9 pm.
It will be comprehensive, although emphasis will be placed on the
material after the midterm. 40 % of the questions will be from
material covered before the midterm, 45% on material from chapters 5 and
6, and 15% on the buffer overflow exploit, traps and interrupts, and
logic circuits.
You can also look at the final exam from last year's course, except that it will not cover all the topics we covered.

**Topics on the final exam:**- Abstraction
- Block diagram of a computer system (Fig 1.9)
- Layered design of a computer system (Fig 1.7)
- Memory layout of a C++ program
- Simple C++ programs including cin/cout, if/else, loops, arrays, function calls, parameters (including reference parameters), pointers (no structs)
- Recursion in a C++ program, including the way the stack gets used to support recursion, and tracing recursive function's execution
- ASCII, Hex and binary representations of data
- Signed and unsigned integer arithmetic: add, subtract, shift. Also the NZVC status bits
- Bitwise boolean operations
- Floating point representation: only "toy" and single precision.
- Pep/8 layout, including structure of memory and CPU, instruction format, and i, d, s, x, sx addressing modes.
- The von Neumann execution cycle
- Pep/8 assembler, loader, operating system
- Buffer overflow exploits
- Global and local variables and arrays
- Loops, if statements, and function calls (including parameters, local variables, and return values) in Pep/8
- Traps and interrupts (including a very basic idea of how they work in Pep/8)
- Definition of mutual exclusion
- Combinational circuits—converting between boolean expressions, truth tables, and circuits

- The last homework assignment has been posted below.
- Read section 8.2 through p. 400, section 8.3 to the middle of p. 428, and chapter 10 through the middle of p. 518 end of section 10.2.

- Quiz 2, covering chapters 5 and 6, will be on Monday, December 3. Here is a sample quiz.
- Monday, Nov. 19 example posted below.
- Friday Nov 16. examples posted below.
- There is a new programming assignment posted below.
- Read chapters 5 and 6.
- Corrections to homework assignments 3 through 5 are due Wednesday, Nov. 7.
- The midterm test, covering chapters 1-4, is now scheduled for Friday, Nov. 2 Wednesday, Nov. 7. See the sample midterm.
- Corrections to chapter 2 homework will be accepted up until the end of class on October 12.
- My office hour on Thursday, Oct. 11 from 1 to 2 pm is cancelled. Please arrange an appointment with me if you were planning to come to that office hour.
- Read chapter 3.
- Upcoming presentations, both in 057 KHIC:
- Thursday, Sept. 27 at 2:30 pm, Dr. Shuvo Roy, a Mount Union alum.
- Monday, Oct. 8 at 4:15 pm, Dr. Rusty Baldwin from the Center for Cyberspace Research.

- Quiz 1, covering chapters 1 and 2, will be given on Friday, September 21. See last year's quiz 1 for a sample. This version has the answer to problem 3.
- Read section 2.5
- Read sections 2.1-2.4.
- Read chapter 1 of the text.

**A8: Due 12/7**- Turn in answers to exercises 8b, 15eg, 17eg, 18a, 19bc, 21c, and 22c from chapter 10 (pages 541-544).
**A7: Due 11/30**- Translate both the iterative and recursive versions of the decimal-to-binary C++ programs to Pep/8. Send me the assembly code versions of both programs.
**A6: Due 11/5**- Do problem 15 on p. 187. Make sure your Pep/8 "object" code really works in Pep/8, then email me the code, either in the message body or as an attachment.
**A5: Due 10/24**- Turn in answers to exercises 23, 25, 29a, 31b, 32b, 35, 37, 41, 45, 47, 49, 52b-f, 53b-f, and 55abcf from chapter 3 (pages 142-146).
**A4: Due 10/17**- Modify the example C++ program from Friday, Oct. 12, to calculate
the square root of a number using a
*recursive*implementation of the Newton-Raphson method. Hint: the new recursive function will need two parameters: v, the value to take the square root of, and xold, the most recent approximation to the answer. **A3: Due 10/10**- Turn in answers to exercises 2b, 4df, 6be, 7ce, 9, 16abc, 18bcf, and 20abd from chapter 3 (pages 139-142).
**A2: Due 9/19**- Turn in answers to exercises 2bce, 3bce, 5abc and 7ab from chapter 2 (pages 81-2).
**A1: Due 9/10**- Write a C++ function that will two parameters—an array of
`unsigned int`

and the size of the array—and return the*median*value in the list. Also write a C++ program to test your function. Hand in the function and the test program by email to weberk@mountunion.edu

- Buffer overflow exploit--input to the small buffer, no test, variant of the example from Nov. 19.
- A variant of Nov. 19 example that allows the user to specify the size of the list.
- Completed example from Monday, Nov. 19 on indexed mode.
- Two examples from Friday, Nov. 16: div16 divPow2
- Example from Nov. 14.
- A C++ program to compute the square root of a number, from Oct. 12.
- Converting decimal to binary from September 26: iterative technique recursive technique. Here is a stripped-down version using the iterative technique; see if you can follow what's going on.
- Smallest of a list using recursion to temporarily store the data then put it into an appropriate sized array: min.cpp newSmallestInArray.cpp
- The recursive reverse program, cleaned up and with a count of the data entered.
- A recursive program that reads a list of integers and prints them in reverse order, from Sep 10.
- Smallest of a list using fixed-size arrays: min.cpp smallestInArray.cpp (the original version of smallestInArray.cpp did not correctly handle a list of all positive numbers.) You can also experiment with a version of smallestInArray.cpp that uses Brad's idea to try to recover from bad input.
- Smallest of a list of any length from Sep 3.
- Smallest of 5
`int`

values from Aug 31.

- Wikipedia entry on binary prefixes.
- Link to cplusplus.com entry on the iostream library
- Start the bat file
**M:\CSIS\WEBERK\OneClickVncTunnelTo-weberklinuxfac\weberklinuxssh.bat** - Wikipedia entries on abstraction and abstraction layer, as they relate to computers.
- Textbook website