Tag Archives: teaching

Death by Powerpoint

In my grad algorithms course, I am teaching in an increasingly Socratic way (not all the way there yet) and covering less material as well.  Well, going through fewer examples.  In my freshman “Orientation to Computer Science” course, I am doing this much less so.  I find it challenging because, while the material is quite easy, I have no idea of the background of the students.  How do you teach Socratically to a group of students, a third of whom already know what you are teaching and a third who think you are speaking Greek?  I’ve still managed to keep the classroom somewhat interactive, but it definitely needs work.  Maybe next year.

But it came to a screeching sleep-inducing halt on Wednesday.  I needed/wanted to teach the students basic computer architecture.  Now, this is a topic that I have somehow escaped learning anything but the most basic of knowledge about.  I scrounged up some slides online as a starting point and decided the only way I too could teach this material is with slides.  I never teach with slides.  This really was only the second time.  The first time was for a 15-minute teaching sample I had to give during an interview in which they refused to provide anything other than a projector.  I was glad to have asked.

It’s a bad sign that I was bored by lecture.  The students certainly didn’t look any better. Never again.

Of course, about an hour after the lecture – having learned, digested, taught the material – I realized there definitely is a way to cover basic computer architecture Socratically and, in retrospect – as this was the one topic that was new to everyone in the class – this may have been the one place that I could have really teach in a deep, meaningful way.

Oh well.  Next time.

Note to self: turn off cell-phone data connection during class

In my large intro class I used Robozzle to talk about program control and introduce recursion. Robozzle does use a true call stack and to solve some puzzles (for example, learning stackrecursedlearning stack 2limit your stackcounting – green) you really need to understand both recursion and how the to use the call stack.  This is week one of computer science, so  I didn’t get into a huge amount of detail, but it did seem to get the “newbies” engaged and make the “hackers” realize that they do have something to learn.  Only a tiny handful of students could solve the aforementioned puzzle before being taught how the call stack can be used.  Overall, it was a success (I think), and I recommend it as a learning tool.

A colleague once mentioned “boy, this would be difficult to debug” and reminded me that the iPhone version of the game shows the call stack – or a version thereof – in the “step-through” mode.  I decided it would be a good idea to use the document camera to show this live (rather than hand-drawing the call-stack on the board).  It never even occurred to me that while my phone was exposed under the document camera, I could receive a call from <embarrassing pet name> or a text of <face-reddening material>.  And then “BING”.

Cue my nightmare.

Thankfully the text message was some automated one from AT&T.  However, in my “deer in headlights” teaching state, it didn’t occur to me to then turn off my phone’s data connection.  Nervously, I made it through the next 10 or so minutes of class without incident.

My office hours are gender balanced

If I didn’t see the students sitting in the lecture room while I taught and only knew who I was teaching to by the students who speak to me after class, in the hallways or in my office hours, I would think the gender ratio was at least balanced in computer science.

Overwhelmingly, one-on-one, my students are female.  I can be even more anecdotal.  Most students ask me questions immediately after class, rather than during office hours – I encourage this, and loiter outside the classroom, taking questions.  Inevitably, I get several male students first.  Then, after, I get just as many, if not more, female students.  Are the male students more aggressive? Are the female students more polite?

What I’d really like to know: what is your experience?  Do more women see you one-on-one?  In your comments, it would be helpful if you include your own gender …

(I am posting to the TCS aggregator, even though this is not  TCS specific, because I would like the broader reach.)

Grade inflation and teaching evaluations

I recently got my teaching evaluations back for a graduate course on approximation algorithms that I taught in the spring quarter.  They were significantly better reviews than I’ve received in my previous courses (which were okay – slightly above the College average).  I chalked it up to it being the first course I taught for which all the students in the room were taking it as an elective.  They wanted to be there.  If they didn’t like the course or me as a teacher, they probably wouldn’t be there.  The grades in the class were also higher than I’ve ever given before – all A’s and B’s.  I abhor grade inflation, but this might be thought of as grade inflation.  For an elective graduate course though?  I truly believe the performance should be almost uniformly high.  But perhaps the high evaluations were because of this higher-than-normal grade average?

In my last go at the undergrad algorithms course, the course evaluations were filled out the week after the second midterm, on which the students did not do very well at all.  (Yes, I probably made the midterm too difficult.)  My teaching evaluations?  Super low.  I do see how one could game the system …

Starting this fall, OSU is moving to electronic teaching evaluations.  If a student does not fill in an evaluation, they will get their grade several weeks late. If they want their grade as soon as humanly possible, they will first have to fill out an evaluation.  I predict that the number of filled evaluations will go up and I also predict that evaluation scores will drop.  I further predict that “bad” lecturers will see a bigger drop than “good” lectures.  Why?  Currently, evaluations are filled out in class.  So, to fill out an evaluation a student must be present on a given day.  “Bad” lecturers likely have lower attendance rates and students who do not like the course/lecturer are more likely to not attend lectures.  I’ll try to remember to report back …

From C's to A's
Created by: Masters Degree

Experiments in teaching: am-I-ready-for-this? quiz followup

One of my experiments in teaching this quarter was to have a quiz the second week of class on material that I considered so basic, that if you couldn’t do very well on the quiz, well, you may well consider (re-)taking the undergrad algorithms course first.  A few students with lower scores on the quiz did decide to drop the class.  Well, term is over now and I can see how good an indicator this quiz was.

Shown below are the student grades on the midterm and final (y-axis, midterm ‘o’ and final ‘*’)  vs the quiz score (z-axis) – plots are linear.  The brighter the shade of green for the vertical bar connecting a students exam scores, the higher the final grade for the student.  While there are a few outliers, I think that I wasn’t wrong in saying that a low score on the quiz may indicate that you aren’t ready for grad algorithms.  What you can’t see as well here is that the midterm scores were quite linear with the quiz – not as surprising as the midterm covered material that I would expect starting CS grad students to know anyway.

So I’ll probably do this again next year.  I’m better informed though.  I’d like to include a few harder questions to give a better indication of mathematical maturity than this year’s version provided.  My goal?  A perfect indicator, so that I can skip all forms of evaluation and simply assign the students a grade based on the first quiz.

Pedagogical excuses: bad penmanship

Finally an excuse for my bad black/whiteboardpersonship!

Apparently, retention of information is improved if the way it is presented is difficult to read:

… if something is hard to see or hear, it feels disfluent … We’d found that disfluency led people to think harder about things.

Aside: the lead author, Connor Diemand-Yauman, either has a surprisingly non-unique name, or partakes of reality tv-show contestantship while majoring in psychology.

Experiments in teaching: problem-solving sessions

In a more significant experiment than the am-I-ready-for-this quiz, I am rethinking the assignments that accompany my grad algorithms course.  In last year’s class, I had the grad students work in randomly-assigned and rotating (different for each assignment) groups.  I will comment on this in another post.

I’m sticking with the group-based approach – partly for feasibility.  But rather than having standard written submissions and written comments/grades, I am having the students participate in a type of problem-solving session; and idea I stole from Claire Mathieu.

Each group will prepare solutions to some (2) problems ahead of the 2-hour problem-solving session.  Each group (A) will explain the solution to one of their problems X (picked by me) to another group (B) who will then explain the solution to me, with instant feedback/help/cleaning. Group B should leave the session satisfied that they understand the solution to X and will prepare a written solution within 2 days.  The grade of both group A and B will depend on the oral explanation I was given and the written solution to problem X.  Every group will take the role of teacher/student for one problem (that is, group B will then explain the solution to one of their problems, Y, to group A).  The written solutions will be placed into a (private-to-OSU) repository for other groups to see.  For details, see here.

Students are encouraged to repeat this process for other problems that they did not solve or learn; there are as many problems as groups (12) and every student knows who has solved each problem.  I’m hoping this will be a helpful, less lonely, way for them to prepare for the midterm and final (which will determine the bulk of their grade).

I’m hoping that this will help students learn to solve the types of problems they will be asked on the midterm and exam, and (more importantly) that they might face in their research (or in job interviews).  I’m also hoping that it is a more effective use of class time than hearing me lecture for another 2 hours a week. (I have 4 total hours per week of class time).

As before, I will (bravely) ask my students to comment.  I will try and do my best to take the comments into consideration to improve the remaining 5 problem solving sessions.  I have already received one comment that will take effect next session: in the last session, some problems went undiscussed; in future sessions, every problem will be discussed (by some pair of groups) and posted to the repository.  Comments from non-students are always appreciated!

Experiments in teaching: am-I-ready-for-this? quiz outcome

Last week, I gave the students in my grad algorithms class an am-I-ready-for-this? quiz.  I promised to report back, and I’m already a little late on that.  The average for the quiz was ~ 70% – I was hoping for a higher average, given how easy the quiz was (in my opinion).  Two students did not take the quiz (and have dropped the class) and two students (who were in the bottom 10%) did drop the class; so perhaps the quiz had the intended effect.

I am more interested in hearing what the students in my class have to say, though.  So, I’m opening up the comments to them:  Was the quiz useful?  Did you study for the quiz?  How could I make the quiz more useful?  I will try to use this feedback in future years, so please be honest.  Feel free to respond anonymously with a fake email and fake name.

Experiments in teaching: am-I-ready-for-this quiz

I am teaching ‘the grad algorithms course’ for the second time.  It is the first time I am teaching a course for the second time and am excited at finally having the opportunity to fix my previous mistakes.  ‘The grad algorithms course’ is required for all CS Ph.D. students in our department and a prerequisite for any other grad course that I teach.  Last year I had ~30 students.  This year I expected the same, if not less, since I heard that grad enrolment was high last year and low this year.  But no.  First the 35 slots filled up.  Then the 10 slot waiting list filled up.  Then they raised the cap (complete with room change 3 days before term) to 45.  Then the class filled up again.  Cap raise + room change to 49 the day before class.  STOP!

Enrolment has waned back down to 38.  Perhaps at least partly due to my first experiment in teaching, the am-I-ready-for-this quiz.

Last year I was a softy.  Don’t think you have the background for the class?  Give it a try! Come by my office, I’ll bring you up to speed.

I’m not doing that this year.  Sure it will probably save me some time, but mostly I think (hope) it is more fair to the students in the class who do have the background.  So on the first class of the second week, I am giving a quiz on material that is either (a) standard and easy undergraduate algorithms material or (b) very easy for someone to learn in roughly one hour of reading given standard undergraduate algorithms material.  My motivation was from Jeff Erickson’s Homework Zeroes and has the goal of:

  • Formally letting the students know that even though this course may be required for their program and they were accepted to the program, they may need to do some work before attempting the course.
  • Getting the students thinking about algorithms and paging back in their (fond) memories of undergrad algorithms.
  • Getting the students reading material, learning the lingo (particularly if their undergrad courses were not taught in English) before we get into the harder material in the class.

The quiz is next week. I’ll try and remember to report back on how it went.

What theory should every non-theory Ph.D. student know?

I’ve survived my first week of teaching graduate algorithms and data structures. “Survived” really isn’t the right word. I’ve had a lot of fun and the students in the class are bright and interactive, which makes a 50 minute lecture go by in a flash.

Since the time is going by so quickly, I realize the need to consider more systematically what should be taught in this course. As you might know, I am the only algorithms/TCS person in the department (who isn’t emeritus) and so I will likely be able to quite easily affect the graduate curriculum.  I’m impressed by the amount of theory that the CS Ph.D. students are required to take here (at least in comparison to Brown, a theory-heavy school).  Each student must take the (10-week long) courses called “Algorithms and Data Structures” and “Theory of Computation and Formal Languages”.  Beyond that, there are several other optional algorithms and complexity courses offered every second year.

There has been some discussion on My Biased Coin on what every theory Ph.D. student should know. My question is: given 20 weeks of class time (three 50 minute lectures a week), what topics in TCS should every CS Ph.D. student know?