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.

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.

Lecture sucks

Scribbles on a slide that is incomprehensible if you're viewing independent of the class.

Scribbles on a slide that is incomprehensible if you’re viewing independent of the class.

One of my classes (that I’m a student in) is split into a lecture and a lab. The lecture is three days a week for one hour, and it is only lecture – slides without a theme (black text, white background), instructor talking, stuff from the textbook, occasional review questions.

They’re so boring. They suck. I can’t focus on them.

As a teacher, a lot of my teaching philosophy has been shaped by the frustrations I had as an undergrad — quizzes worded specifically to trick you, tests where the teacher doesn’t give you any clue as to what they think is important and what they will cover on the exam, boring-ass lectures…

Admittedly, since I teach at a community college, all of my classes are held in computer labs. It is wonderful. I have the ability to flip my classroom, record video lectures to watch as homework, and do programming during class. At university, there are too many students to have all computer science courses in labs – this is true at KU and at UMKC. Still, even though we are constrained to classrooms with desks instead of school computers, it would be nice to try to shake up the class in other ways.

My math classes aren’t just me lecturing the entire session. I give a short lecture, the video lectures that I recorded last semester are available online, and each week I write up an “in-class exercise“, which contains introduction text and examples, and then a series of questions. The students work in groups, and submit only one copy per team. They’re free to ask me questions as well. We spend time learning and practicing in the classroom, instead of putting all the onus on them figuring it out totally alone from the homework questions.

I resent pure lectures. They feel like a waste of my time. If the lectures are just going to reiterate content from the book, why not just let me read the textbook instead? Another big issue I have with lectures are that (1) I never go back and reference my notes. I just don’t. Over my 7 – 8 years as a college student, I just never go back, and (2) When I have taken notes in the past, any time I’m trying to recall something really specific, I can never find it. Probably because I cannot write as fast as teachers can talk.

This is why I record video lectures.

Students can watch again, pause, and watch when it is best for them.

Some teachers in previous classes would just record their in-class lecture – all 1+ hours of it – and post it as-is. You can’t find shit by sifting through such a long video, and it’s still boring as hell. It isn’t concise at all.

This is why I edit my video lectures.

I pre-script them. Usually, this means my slides are pretty detailed and it’s my main script. I export my slides to image files, put them in the video editor, then record my audio in Audacity. That way, I cut out all that is extra. Those go in the video lecture, too.

Then, if it’s a programming class, I use OBS to screen capture while I do some example coding – this is less scripted, but gives the same kind of example coding you’d get from a lecture. If it’s math, I open up GIMP and plug in my Wacom tablet and work some example problems. I further edit these down to get rid of long pauses and excess “ums” and speed up sections where I’m only writing stuff out or coding stuff after I have explained what I am doing.

I comb several books to figure out what points I need to make on the topic, and I put my slides together. Everything I would test over, I mention. I want my students to get everything they need, and be able to access that information at any time.

But it sucks for me.

I’m already the type of person who likes to control things, and gets annoyed when Redbox’s user interface isn’t as streamlined as I would like. (Brightspace has inconsistencies in user interface that drive me up a freaking wall!!!)

This means that when I’m a student rather than a teacher, I get really frustrated by the classes I take. I’m frustrated by the boredom, the inefficiency, the unknown, the schedule.

Best I can do? Basically go through the course content the way I would as a teacher – and write my own notes. Basically come up with the same sort of resources that I would as a teacher (because sometimes we have to teach ourselves the content while teaching, too – do you think I really remembered discrete math from when I took it 10+ years ago??)

So, just like I make repositories for my courses and throw all the content I make, available for anyone at any time (https://github.com/Rachels-Courses), I do the same with my classes. My notes, the code I write to try to learn the content, and so on. (https://github.com/Rachels-studies).

Programming for Discrete Math

  • Josephus Game
  • Magic Trick
  • Tennis Matches

I like using programming in the classroom. I’ve never seen programming really used much in any of the math classes I’ve had in the past, save from some odd MatLab projects (of course I opt for NumPy or SciLab – Go FOSS!), and sometimes reading paragraphs of math problem examples in a textbook just makes my eyes glaze over. Rather than try to demonstrate this stuff on the whiteboard, I decided to write some quick Python/PyGame programs for the examples from the textbook we’re using.

Another pro of this is that it helps me “grok” the content. I might read over something and think “yeah, that makes sense”, but I don’t really know it until I put it into practice, and the best way for me to put it into practice is to make it a program. When applying it in code, it’s more likely I’ll remember the fine details much better, just through the entire process of working on the program step-by-step.

Not sure if I’ll have my students do any coding (various prereqs, they might all know different languages), but it might be nice in the future!

GR3

Dear public internet diary,

Today I decided to pay for the GRE fee with my credit card, because I need to get the test over with so I can apply to colleges before the September – December deadlines, but I don’t think I’ll have the spare cash in June. (The financially awkward part of being an adjunct instructor is not quite knowing how pay is going to go when going between semesters)

Why is the exam so dang expensive? I will already most likely need to take out loans for college itself. I will have to do research into scholarships and assistantships. Sigh. I still have loans from my BS, and from the last two times I tried to get into gradschool for different areas. I thought that I had to pay off these loans before I could move onto the next thing, but it is clear that this debt will be with me for a while – so why let it stop me? I’ll just go back to school, gain more debt, and then once I have a career that I’m happy with, then I can spend the rest of my life paying it off. 😛

I’m looking forward to going back to school, I guess. I’m building a new career, or a couple new careers, because the life of a corporate software engineer doesn’t suit me. Since I’ve quit and been working on my startup and as an adjunct, and been on an antidepressant, I’ve been so happy – probably happier than I’ve been in years. I’m a bit disappointed in myself for not having an established career at the age of 28, but eh… who really has their shit together in their 20s anymore? But I have hope in my future now, once I realized that I don’t have to keep doing the same kind of work – the 8-to-5 open-floorplan boring but stressful programming work. I’m no longer making anywhere near $90k/yr, I’m trying to figure out how to manage my finances on a tight budget, but at least I’m not withering away anymore.

Jeopardy for Computer Science

Sometimes, class gets quiet. Especially during review days, students usually don’t speak up on their own to ask questions. So, this semester I wrote a little Jeopardy program and used it for both of my classes.

The students at the community college I’m teaching at seemed to enjoy it; I was even asked to make more questions and come back with candy as a reward next class. So I will. I upgraded the Jeopardy program and wrote new questions dealing with different topics in Computer Science / C++, and it’s all ready to go!

This program is written with C++ and SDL2, as well as my Kuko framework. Since the class is about C++, I thought that it would be good to write the program with C++, instead of doing it as a webapp (which would have taken less time, admittedly!)

You can download the game code here: https://github.com/Rachels-Courses/CompSci-Jeopardy

It also requires the Kuko library: https://github.com/moosader/kuko

As well as SDL2 and Lua 5.2!