Unintended Lessons

Things not on the syllabus

Some of my most memorable lessons from the classes I took at Purdue were not ones that the professors were intending to teach. I am not claiming that these are profound, but nevertheless I will recount the ones that had the largest impact on me.

I took a soft class on Greek mythology in my sophomore year to pad out some requirements. To get people to attend, the professor told us that the slides from class would not be available on the course website. She also warned us that she would go through the slides faster than we could take notes, so we should not expect to be able to write down the contents of the slides verbatim. Learning to summarize was an important skill, we were told.

Every class I ever took at Purdue permitted students to use laptops for taking notes, and this one was no exception. I could type at a reasonable speed, and I found that I could in fact type the slide contents verbatim. When studying for the exams, I was one of the few, if not the only student who had full access to the slides. In my opinion, the exam questions focused more on minutiae than the exhortation to summarize would suggest, so my advantage was rather steep. I didn’t do anything smarter or work any harder than the other students, but I did relatively well just because I had the extra information. Lesson? Take notes, write down what you can, and keep all the information that you can get your hands on.

I took abstract algebra my senior year as a requirement for my math major. At Purdue, if you were a computer science major, and if you picked the right classes to meet the CS major’s math requirements, then you could also get a math minor by taking only one extra class: abstract algebra. At least half of the class was composed of CS majors taking it to complete the math minor. The professor was strikingly lenient. When explaining the grading, he said he was intending to only count our best 3 of the 4 exams. Our lowest exam would “drop”. Naturally, we were all quite thrilled at this.

The math department at Purdue is rather hands-off about prerequisite courses. After taking calculus through calc 3 and taking linear algebra, you could sign up for just about anything you wanted. There was a natural, expected order for taking certain classes, but there were rarely formal, enforced prerequisites, and the advisors would often not even warn you if you deviated from the expected order. Real analysis was the hardest class I ever took by a mile, and that is because I found out halfway through the semester that there was a particular class that most of the other students had already taken that laid the groundwork for much of the material, so I knew the trouble this hands-off approach could cause first hand.

Purdue’s abstract algebra curriculum reasonably assumes that you have taken other proof-heavy classes before. But if you were there to eek out the math minor, your only other proof-focused class would have been linear algebra. Many students – too large a proportion to ignore – struggled due to not having that background. The professor dealt with this by slowing the pacing of the material. I think we finished barely half of what the syllabus promised. This was great if you were in the class for the credit, but unfortunate if you had hoped to learn the material as well. To be fair to the professor and the math department more broadly, the strategy of completing the math minor by taking that class is one that the CS department widely touted, and was not something that I remember the math department itself promoting.

Since less material was covered, fewer exams were given. I believe we only had 2 exams and then the final. The professor realized that dropping the lowest of only 3 total exams was a bridge too far, so he apologetically announced that he would not be doing so after all. Naturally, people were rather upset. It turns out that his generous policy was not mentioned in the syllabus. So he was grading the course as formally outlined; his promised policy was instead a favor that was withheld. Thus, we had no recourse. Lesson? If you are banking on a decision that someone told you they are making, get it in writing.

Junior year I took a class on operating systems. The lectures were fairly formal and abstract. However, the homework assignments were hands-on, requiring us to implement some fundamental component to replace the stock version in the school’s educational toy operating system over the course of usually 3 weeks. There was an automated plagiarism checking system, so you could not simply base your implementation on the implementation from the full version of the OS.

Halfway through the semester, we were given an assignment to implement a basic process scheduler, with three weeks to do it. For reasons that I do not remember (good ones I am sure), I waited to begin the assignment on a Friday evening despite it being due at the end of that Saturday. I also had plans for the full day Saturday. In that class the assignments were always fairly reasonable, but any problems you encountered were a nightmare to debug. Additionally, I had realized on past assignments that runtime performance was not part of the grading rubrics. Your code had to run and be correct, and that was sufficient. So I thought, I will implement everything in whatever I feel is the simplest way possible, without worrying about performance. I distinctly remember needing to sort the process list by priority order and cranking out good ol’ O(n2) bubble-sort, because I knew I could implement it quickly and correctly.

In about five or six hours of fairly linear progress, I had completed the assignment. I had much less debugging to do than other assignments, and the little I did was not so bad. When it was graded, the performance did not matter. Lesson? Write the simplest implementation that will work. You can worry about performance later. And usually, the performance of that initial implementation will already be good enough.

I am sure there are additional examples of this phenomenon, so perhaps I will write a part 2 one day. As to whether I learned the material that actually was on the syllabus, you would have to ask my coworkers for their opinion.