The quarter is almost complete. I presented my last lecture on Friday–it dealt with the concept of a function being the ‘order of’ another function. When developing algorithms it is often tempting to accept the first draft of software that appears to implement the algorithm faithfully–it produces the expected answers for specified input. But that’s never sufficient for commercial use. Early software may work very well for an average demand, but may fail completely in stressful situations. For example, too many simultaneous requests for service may drive software into an infinite descent of queuing with neither time nor memory left for serving the queue. One way to test for how explosive a demand on resources may become is to model the order of the most-used algorithm that underlies the software. To model the algorithm one has to have a function, let’s call if *f*, that reflects the use of resources based on an independent variable such as service requests per second or size of the data to be processed. Developing such a function is artful work. When function *f* is available then it needs to be confined in its behavior by a simpler mathematical function, let’s call it *g*, such as a single-term polynomial function, or an exponential function. By ‘confined in its behavior’ I mean *f* must be bounded by *g*. That is, there must exist positive constants *A* and *B* such that *A|g(x)| <= |f(x)| <= B|g(x)|* for *x* larger than some non-negative constant k. But, I’m straying too far into the subject when I am supposed to be reflecting on the teaching.

The final is all that is left now. The students are nervous about it but I think they are ready. Writing the final took more time and thought than I first expected. Like all tests, it has an architecture–a form and function that work to satisfy the needs of a client. In this case the client is me and my need is to assess what my students have learned through the quarter compared to what I planned for them to learn. After several false starts, I settled on the following form:

- Two pages of comprehensive basic-knowledge questions
- Four pages of integrated-knowledge questions, including application-related questions
- Three pages of formal proofs with the students able to select two of five proofs to complete for grading

The function of the exam was set from the beginning,

- test for basic understanding of definitions and methods
- test for integration of basic understanding
- test for facility with mechanisms and applications of formal proof methods

I expect all the students will be able to complete the test in two hours–if they are prepared. The last time I taught this course the students, prepared or not, were not able to complete all of the questions. I hope that I have written a better test this quarter. I’ll know next week, the week after finals.