Suffering

There are two kinds of people. Those who think, “I don’t want anyone to suffer like I did.” And those who think, “I suffered; why shouldn’t they?”

It’s my birthday!

Me: “I should keep up with grading by grading one assignment every night!”

My day –

Teacher work: Wake up, eat, begin working on class prep for the day. Fund an old lecture on stacks and queues, write a lab, adjust an old project to be a new project.

Business work: Create a set of wireframes for contract app, send out emails to client and to interns.

Homework: Spend last half hour before class begins working on homework. Fix queue problem.

Teach class: Give lecture, read through documentation of my homework while my students work on their lab, answer questions as-needed.

Get home: Eat fast food, be lazy for a while.

Work on homework: Figure out WTF is going on with this programming assignment since the project spec doesn’t really give us much to go on.

Look at clock: 1:30 am…

Tomorrow’s plans: Wake up early, work on class prep before my first class, teach Discrete Math at 12:30, work meeting, then meet with intern after class to help them set up their tools, eat, teach my 6 – 9 pm class, do homework until late again.

Friday…: 9 am meeting at work, meeting with intern, then I guess homework all weekend. Also need to write a letter of recommendation and do my taxes and finish up the fiancé visa paperwork.

Maybe I’ll fit in grading somewhere around there.

Just because I’m a student doesn’t mean that you shouldn’t respect my time: Study guides

OK, I was going to write this blog post after I was done studying for the midterm, but I’m just too steamed right now so I’m going to vent and then get back to it. My plan right now is to spend this entire weekend re-reading all the chapters of the book and making notes on everything. (I keep these notes on my GitHub.)

I’m salty because I emailed the instructor a month ago and asked for the best way to study for the midterm. The response I got was:

Hi Rachel

Lecture notes and the book are probably the best way to prepare for the exam. 

So I guess that I’m just supposed to memorize every fucking thing out of the textbook, because there is no clear way to tell what this teacher things is important and what we will be assessed over.


A textbook I teach out of with only a few sentences highlighted

I clearly have not highlighted every paragraph of the Data Structures textbook that I teach from.

“Oh well you should be learning everything anyway.”

Sure, read all the content, absorb it all, but what we need to know of and what we need to have burned into our brains are very different. I sift through the textbooks that I teach out of and I sure as hell don’t highlight every damn line with what I think is important.

And it depends between teachers!

What I highlight and think is important is based on my own experience in the professional world with things that have come in handy, what I’ve needed to know, and so on. What somebody in academia thinks is important, someone whose research focus is operating systems, might be completely different than what someone thinks from a practical standpoint.

Textbooks are full of words. These words might be good in creating a flow for the textbook, but they are not reference material, and they do not only contain the important bits – they contain information on context, examples, and explanations. At some level, when studying, I’d prefer a reference book than a textbook, because there’s so much to sift through and pull out.

Something I probably don’t need to memorize, but is still mentioned in the textbook, taking up valuable space: “Two common techniques for loading executable files are double-clicking an icon representing the executable file and entering the name of the executable file on the command line (as in prog.exe or a.out).” – Operating Systems Concepts, 9th Edition, Silberschatz


It's part of a study guide that I've prepared.

It’s part of a study guide that I’ve prepared.

The study guides I prepare contain all of the information that I expect my students to know, and that they may potentially be tested over during an exam. It may still be a lot to read and learn, but it doesn’t compare to the amount of time they would have to spend in their textbook, guesstimating what may be important and what may not be.

Because how is a student supposed to properly figure what is and is not important? They’re students. They haven’t had the same background as the instructor, and cannot properly judge what the instructor is going to deem worthy to know.

Functions? Yes, you better damn well know the vocabulary relating to functions so that you can know what I’m talking about when I tell you specifically, “you’re not passing in enough arguments into your function call.”, because if you don’t know the definitions you’re lost.

You need to know how to use pointers, and the operator names and in what contexts what * does. But do you need to know how many bytes an integer, float, and double need? I don’t have that information memorized, and it has never affected me. So I don’t tell them to memorize that. That information is good for some background knowledge and context, but they don’t need to know how many bytes they’re allocating, at least in C++, to write a basic program.


So, in summary, it pisses me off when teachers don’t provide study guides. It already seems like a lot of teachers (especially at university level) have disdain for undergrad students, thinking that they’re so frivolous and immature. What could those kids possibly be doing with their time? Obviously all they should be doing is studying! It comes off as disrespectful. Many of us work, many have families – even at the community college level! – We have shit to do, we’re here to learn, but we’re not here to memorize textbooks. Exams really aren’t the best way to assess students, but when we have so many students there’s not really a chance to do things more personally.

I teach full time, and when you teach full time, that’s way more than a full time job. I’m working on visa paperwork and travel plans. I’m studying for classes. I’m trying to get an advisor and learn about gradschool. And I’m the only one at home to take care of things. And, sometimes, I want to play video games.


Next rant: “Why my powerpoints > your powerpoints”? the next chapter on “Why I’m a better teacher than you are”, the ego-driven blog series on why school sucks and why I make it sssooooo much better. ;P

See also: “Why I make my study notes public – so that other students don’t have to suffer as I have. My teaching philosophy in a nutshell.”

More exams are better

Schedule for the Operating Systems class that I’m taking

I am stressed out. The class I’m taking has only two exams – Midterm and Final. The exams together are worth 45% of the grade. This is unfortunate for me, considering that I’m not too great at exams!

In yet another example of “things that frustrate me as a student, so I try to do better at as a teacher”, I don’t like exams that cover too many topics. Sure, make the final cumulative; that’s fine. But, during our “learning period” of the semester, I prefer a tighter cycle – Teach, practice, assess. Teach, practice, assess. You can spend more time doing in-depth study of fewer topics in order to prepare for that topic’s exam, rather than panicking and trying to cover every topic for the first 8 weeks and praying to your exam-god that your teacher’s exams aren’t unintuitive, and that what you think is important to study happens to be the same thing that your teacher thinks is important to study. (For reference, I also hate the lack of study guides!)

Schedule for the CS 200 class that I’m teaching

In my classes, I tend to have about 4 exams, including the final. I like to schedule my courses in chunks, with exams being the clear delimiter between topics. For exam 2, students will be studying up on arrays, pointers, memory management, and dynamic variables/arrays; all related and tie together. Exam 3 is everything OOPey. Structs, classes, inheritance.

For Data Structures, the first exam is over introductory content, wrapping static and dynamic arrays, and building a linked list. The second will be over stacks, queues, and dictionaries. The third will be over trees, heaps, and balanced search trees.

And for Discrete Math, each chapter of the book gets its own exam as well. A nice, clean, split between topics in the course.

I also either prepare study guides, or provide exams from a previous semester. Why? I don’t protect my old exams like a dragon hordes treasure because at some point, somebody is going to have that information. And they’ll distribute that information among their friends, so then only a small pool of people will have it. That’s not fair to everybody, and that’s also not really something I can stop. So start them all on even footing. I hope that it also discourages cheating if students know what I expect of them, and what I intend to assess of them.

So I’m nervous about this upcoming midterm. I have actually taken this class before, as an undergrad, at another university…

… and while I scored really well in my programming assignments, I just don’t do well on these kinds of exams. Math, gimme, I’ll ace that. Exams with coding on paper – ok, I can do that. Exams where you memorize a bunch of random information aimlessly? That is not my strong suit.

The first time I took the course, it was taught by Dr. Cotter, who is one of my favorite teachers. Even having an interesting teacher didn’t make it easy for me to do well!

Of course, I’m older now, I’m more experienced, I’m better at knowing how to learn. I have been using more resources as I study these concepts so that I have a better understanding than I would if I only studied from the textbook. But still, I resent not knowing what is expected of me. I resent the lack of respect for my time, by making the exam an amorphous mystery – good luck.