Finally

The course has run its course. The final is finished.  The red ink has dried.  The assessments are formed and recorded. Did everything go as expected?  No.

  • I thought I edited the test to fit its demands to two hours, comfortably, for any prepared student; I was wrong. Approximately 1/3 of the students needed extra time, and many were my well-prepared students.
  • I thought all my students understood the cardinal points of cardinality of sets; I was wrong.  Many students completely missed the finite/infinite distinctions.
  • I thought my students understood the subtleties of counting team formations; I was mostly wrong.  Many clearly had never read the examples in the text.
  • I thought my students understood a notation I introduced early in the quarter and used almost weekly; I was mostly right, but some students had no idea what I was asking.
  • I thought I had proof-read and edited the test to the point of clarity of all questions; I was wrong on at least three of 15 questions.

What about the architecture of the test?  Did it meet my needs?  Here I can be positive.  The test was divided into three sections.  The first section tested basic understanding of definitions and methods.  The second section integrated concepts but sought definite answers.  The third section was open-ended and devoted to proof.  Having the sections so divided did give me a profile of understanding for each student.  If the test had been a little shorter the students may have had time to polish their proofs at the end; but shorter tests magnify errors.  Overall I was pleased with the form and function, even with some very rough edges.  I’ll use the same blueprint again.  But now it is time, finally, to rest.

The Week Before Finals

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.

The End Approaches

This was the penultimate week of class for this quarter.  The students are tired of quizzes and homework and I’m tired of grading.  The topic was interesting, graph theory.  Graphs are important in computer science which has endless applications involving networks.  But I wonder if any perceived student interest at this point in the quarter is just an echo of my voice. Some thoughts on teaching this week.

  • Some of my students tried to slip in homework with correct answers but incorrect derivations.  How desperate are you when you write C(25, 20) – C(10,4) = 46,761 just because the answer to the problem is 46,761.  Am I that easy to fool?
  • Some of my students came to class on Monday expecting an in-class quiz–but I had announced last week, and emailed to all students, that the quiz was changed to take-home and was due on Monday at the start of class.  Is my teaching so unchanging that they are hypnotized into a false reality?
  • One of my students had questions about a C-language program I wrote to answer a question about group selection.  The program represented all the possible choices for the group in a 16-bit integer (16 students to choose from)–the integer was incremented from 0 to 2^16-1.  The program then counted the number of bit patterns with exactly eight ones (the size of the group); and used masks to identify and subtract any 8-bit pattern that did not have at least one freshman, sophomore, junior and senior.  The student programs, but not often in C.  He was skeptical of the approach; why do things using bit representations?  Why indeed in this time of limitless memory.  But it still feels good to get close to the machine.
  • The quarter is quickly closing and I’m beginning to think about what I should change for next quarter.  I haven’t engaged the students often with group projects.  There are some topics, especially graph theory which is replete with computer algorithms, that offer good examples.
  • Finally, some of my students wanted to know what questions will be on the final; could I tell them exactly what to study.  They know the answer to their question; the question is, will they know the answers to my questions on the final.

A Lecture on Lecture

The topic of the week was probability and counting. Everything from flipping coins to Bayes’ theorem. A week packed with definitions and example problems. A week that went by in a blur. I’d like to reflect this week on a choice I made before the course began.

I chose to teach the course in a standard lecture format where I introduce topics, offer examples, ask questions, answer questions and then move on. I follow the text; the students know what I will cover (it’s in the syllabus); homework is assigned to challenge understanding, promote connections among material, new and old—formative assessment; quizzes and tests are given to check on more basic understanding–summative assessment.

I did not choose to teach the course with student-driven construction of concepts. I do not form in-class small groups to develop a method to solve a problem, or a theorem to consolidate results—I often present arguments in my lectures that motivate the use of a formula or theorem, but the hard work and joy of discovery are muted.

Did I make the wrong choice in choosing the standard lecture format? I don’t think so. Every course at my college is defined with an official description of content that lists topics that will be covered in the offered course. This description is not a suggestion, it’s a contract. Other schools agree to accept transfer credits based on what is covered in the course, as stated in the description of record. For this particular course, we have to cover the majority of ten text book chapters in approximately eleven weeks of class. In my judgment, I could not facilitate student-driven discovery of that much material in that little time.

Could it be done? I’ve taken a graduate-level introduction to topology that was entirely student-driven discovery. Every definition and theorem was constructed from a very small start of very few concepts. We developed proofs alone or in groups and defended them at the board (sometimes successfully, often not). Agreement that a proof was good-enough allowed us to move on. Did we make it through the description of record? Maybe three quarters of the way. The professor resorted to lecture at the end to finish the process on time. So maybe it could be done, but for undergraduates it would be challenging for many if not all of the students. You could argue that students don’t really internalize the material if it’s based on the lecture-homework-test model, anyway. But can we ever expect internalization in the first introduction to ten chapters of discrete mathematics in eleven weeks? I doubt it.