Modified: February 07, 2022
if ever a prof
This page is from my personal notes, and has not been specifically reviewed for public consumption. It might be incomplete, wrong, outdated, or stupid. Caveat lector.(originally written as a Google doc between 2010-2012) most of this advice is obvious, but still good to remember.
- students appreciate food, like donuts and oj/coffee brought to class. especially after an arduous assignment (or every day if it's chocolate covered expresso beans). or iced coffee / cold drinks on a hot day (tom griffiths)
- inviting students over for dinner is nice.
- make sure your students know each other, at least a little. one way would be to encourage class participation and call on people by name, so people at least know names.
- teaching trick: get a student to stand up at the board and figure out how do solve some problem, but make sure it's difficult enough that they can't reasonably be expected to see the answer immediately. Thus other people will have to help, and if the problem is hard enough they'll realize not to be ashamed about saying things that are wrong. (http://mathgradblog.williams.edu/?p=1439)
- make an effort to be accessible. if you know students are going to be working in the lab at 11pm, show up in the lab to answer questions. reach out to the students who don't reach out to you (by showing up at office hours, etc.) and ask them how they're doing, interests, future plans, etc.
- tell students to come to office hours - even if they don't think they need it. they might learn something.
- conversely, be prepared with things to talk about during office hours if students have no particular focus. ask about their lives, how they find the class, think of some interesting special topics to discuss, etc.
- do the Williams math dept. thing and announce upcoming talks and events at the beginning of every class.
- quiz people cumulatively to keep them from forgetting what happened at the beginning of the semester
- make the last week of class relatively easy
- miller's last problem set: fix a problem from earlier in the semester, come to my office and give a ten-minute presentation, work on an independent problem, etc.
- offer closure: don't just allow the class to end. use the last class of the semester to summarize where we've been, what we've learned, talk about research or new ideas, and/or generally have fun.
- actively seek out and talk to prefrosh. get a list of admitted students from the admissions office and get in touch with those interested in CS
- email students about random things, brent-style (cool links, pbk congrats) or frank morgan-style (concert congratulations, etc). congratulate students on their accomplishments and console them on their failures (brent's sorry i didn't get fellowship emails).
- survey people several times during the semester as to what they think of the class and your teaching, and how it could improve.
- require all students to meet with me sometime during the semester
- assign readings not directly relevant to the class material similar to stujo in game theory. for theoretical cs, assign scott aaronson, russell impagliazzo, dan dennett, etc.
- have students read historical papers to get a sense of the history of the field. so, read turing on computability. read hartmanis on complexity. etc.
- email students before class starts to say hello, tell them about the course, reading material, etc. (kirby and stoicu style)
- continue emailing the class throughout the semester (at least once a week, maybe once every lecture) to keep them up on what's going on, what's due, and what they should be reading/doing.
- story related by dcatsam on ephblog: a prof pulled him aside and told him that independent of the (bad) grade he'd gotten, he thought he'd done a great job in the class. If this is ever true (e..g with me and Prof. Miller in probability, or maybe with me and Prof. Kirby in cogsci), make sure to encourage the student and tell them you'd be happy to recommend them even though some part of the class may have gone badly for them, or if they were unprepared (e.g. freshman taking a high-level class) but still showed great promise.
- pay attention to campus pseudo holidays (e.g. homecoming, parent's weekend, etc.) and vary homework load accordingly.
- pay attention to departmental stuff: e.g. williams cs snacks, bowling and barbeques, informal guide to cs online, common lab space (or library space for the math dept.), what else? all help create a good environment
- give students lots of feedback as to where they stand in the class - i.e. when handing back homework/exams, give them the mean grade and the ranges.
- don't give lots of work just to give it - but enough so that people practice the stuff they need to have drilled in to them. Ideally every problem will force people to learn something new, rather than just going through the motions. This may not be feasible on homeworks (sometimes you do just need to drill a technique), but it's good on exams, e.g. Duane's 237 midterm which asked us to explore various interesting ideas such as reversible computation.
- have a course website that posts additional notes about the material for the day, connections to other ideas and jumping-off points for further exploration for the students that are interested. steve miller is the king of this; it must be incredibly time-consuming but you can reuse lots of the material from year to year.
- emphasize in class every time there's anything vaguely related to research topics that "if you think this stuff is interesting, come talk to me and we can work more on it"
- leave explicit space for doodling on exams, to make grading more entertaining (- paul pearce)
- have people mark how they thought they did on exams, on a smiley-frowney face spectrum, so that you can make sure everyone's expectations are well calibrated
- better to have a really hard midterm and an easy final than vice versa
- try not to make assignments/material totally cumulative, so that missing one piece screws you over for the rest of the semester (http://teachingintrotocs.blogspot.com/2011/11/how-to-make-students-fail.html)
lecturing tips:
- when presenting technical material, write everything on the board. if someone zones out for two minutes and then comes back, they should be able to catch up by reading the board.
- see http://www.ams.org/ams/ttips.pdf (mirrored in my google gocs) for Frank Morgan / Tom Garrity's tips
whenever you ask, "are there any questions" after explaining something complicated, first give a quick recap of what you just said ("so, we can do A by doing B and C") so that (potentially confused) people have an immediate idea of what just happened and have some scaffolding for coming up with clarifying questions.
idea: instead of grading, meet with people to go over their work in person. that way you can give better feedback and it doesn't necessarily take any longer than thorough grading would have.
steve miller approach: grade all exams the day of. why not?
don't write extensive feedback; just hand out solutions and invite questions
make public (website, office door, whatever) a willingness to supervise independent studies into some list of subjects: have a list of subjects you'd be comfortable supervising, and also a list of subjects you'd like to learn more about and would be willing to work with a student on.
for advising research: -- have students start by writing a survey on the area they’re getting into. this helps get them up to speed and gives them experience reading papers, synthesizing information, and writing about it
advice on coding: -- http://arkitus.com/PRML/ (patterns for research in ML)
teach the material. but also think of goals broader than just the material, i.e. these questions by Yale dean of admissions Jeff Brenzel: • Are you graduating with broader views of what you might do in life compared to the ideas you had when you arrived? • To what degree have you learned how to lead by subordinating your own ambition to the common good, rather than vice versa? • Have you mastered a mode of inquiry, or developed anything that could constitute a permanent and fertile source of intellectual interest? • How much more did you contribute to classes and organizations and jobs than you took from them? • Have you as yet loved anyone or anything beyond reason? • Have you learned how and why to risk a serious, public failure? • How well can you sustain a determined, focused and disciplined attempt to solve an important problem? • How much more inclined and more able are you to recognize and appreciate real genius, whatever its mode of expression? • What have you become willing to do without getting paid, graded or recognized? • How much room have you been able to leave for the inconvenient exercise of compassion, kindness and generosity?
remember the broader role that colleges/universities can play. Do outreach, set up summer programs for high schoolers, etc.
stanford cs education library: http://cslibrary.stanford.edu/
advice on writing:
knuth: http://tex.loria.fr/typographie/mathwriting.pdf roberts: http://web.archive.org/web/20101124040620/http://www.apostate.com/how-say-nothing-500-words orwell: http://theorwellprize.co.uk/george-orwell/by-orwell/essays-and-other-works/politics-and-the-english-language/