Things I wish I had known...
From the 2016 New Educators Workshop
Andrea Danyluk, Williams College
- To be a successful teacher, learn from others but don't try to be just like them.
There are many different styles of "great teaching." Observe others, but in the end, be
yourself and find what works for you.
- Give students a set of "free late late days" that they can "spend" over the course of the
semester. Students are constantly trying to juggle a huge number of academic and extracurricular
commitments. Rather than negotiating late days with students for each assignment (which can be
a real time sink AND can possibly result in differential treatment of students), let them manage
their time in the way that works best for them.
- Don't just lecture. Actively engage your students in the classroom. Give them short
exercises that the can work on with their neighbors. Make them part of their own learning process.
- When you ask the class a question, given students the time to process the question before
answering it. Immediate silence doesn't mean no one has an answer. Often it just means they
need a moment to think through it.
- Avoid making changes to your syllabus on the fly! It aggravates students and can give them
a sense that you're disorganized or not in control of your course. That doesn't mean that you
have to be totally rigid. If a particular topic (especially in an elective course) is really
capturing the enthusiasm of your students, feel free to linger on it. But don't let it derail
exam dates or assignment dates, as students often plan their schedules around these big milestones.
- Get some sleep! Spending all night preparing the "perfect" new lecture or assignment isn't
worthwhile if it then makes you walk into class exhausted and more likely to make mistakes.
Balance, balance balance!
- Work/Life Balance & Time Management presentation (2014)
Dave Reed, Creighton University
- Be realistic! With a full teaching load of three courses, I have found that I can be
creative and innovative in only one course at a time. In the other courses, I need
to rely heavily on past courses or material borrowed from others. Anything beyond
this requires Herculean effort. For new faculty who are facing multiple new
preparations, realize that you are going to have to rely on colleagues and textbook
publishers for help early on.
- If you are teaching a course or topic you don't know particularly well, do what your
students do - Google it. There are all kinds of tutorials about virtually every
CS topic out there, not to mention many course lectures that you may find useful.
Finding a good example for a topic, different from the one in the text book,
can be very instructive for you and your students.
- Students really appreciate having all of the course materials (e.g., syllabus,
reading and homework assignments, lecture notes) online. This can be done using
course management software (e.g., Blackboard, Moodle) or just in a well-organized Web
- While students never like "hard" tests, they are much more upset by what they see as
"unfair" tests. A test is not the place to surprise your students with new styles of
questions that make them think in completely new ways. It is okay to have some
"outside of the box" questions, but make sure that there is enough variety in the
questions to allow students to show what they know and can do. Posting sample
questions that show them the types of questions to expect will help students to
prepare and perform to their ability level.
- In intro-level courses, I like to have frequent quizzes to provide feedback to the
students on how they are doing (and to encourage them to keep up). Daily quizzes
take a lot of class time, however. Instead, I have gone with random quizzes.
I have made a Let's Make a Deal style board with two doors - one of which has a
card saying QUIZ and the other NO QUIZ. A randomly selected student will pick for
the class, and if the QUIZ door is picked, that day's quiz will be taken and graded.
If NO QUIZ is picked, the students get the quiz sheet to take home and self-test.
- In large classes, you have got to go with a preset grading rubric and limit the amount
of time you spend grading a programming assignment. In smaller classes, it is
tempting to spend a lot of time debugging the student's code so you know exactly
where they went wrong. This is a serious time sink. I try to set a time limit for
each program. If I spend the allotted time on an assignment and still haven't
tracked down every bug, I assign a grade based on my overall assessment, and encourage
students who think that the assigned grade is too harsh to come to my office and work
through the details to convince me.
- Instead of "grace days", I have a uniform policy on late assignments. An assignment
can be turned in up to one week late for a 25% penalty. The penalty is harsh enough
to encourage students to keep up, but a student who is far from done is given a full
week to seek the help he/she needs and complete the work.
- When starting a new job, beware of walking blindly into departmental politics.
Try to stay neutral in both personality and pedagogical conflicts until you have
a chance to get to know the program, the people, and their motivations.
- Do everything you can to meet faculty members from outside your department. Attend
college events and go to seminars in other departments. It is good to get a different
perspective on your institution and your department early on. Plus, making colleagues
and building an identity for yourself outside of the department will be key when it
comes time for tenure.
- Likewise, try to develop colleagues at nearby institutions. They are great resources
when you need to teach a new course or just need advice. Attending posted seminars,
programming contests, or regional conferences such as CCSC are good ways to make
- Career Paths for CS Educators presentation (2014)
Colleen Lewis, Harvey Mudd College
- Ask for feedback during class:
- "Thumbs up if that made sense, thumbs down if that was confusing!"
- Assume that non-voters found it confusing. You can ask students what about it
was confusing and try another explanation or tell them you'll explain it again in the next class.
- This shows students that you care and the students can help you improve!
- "Thumbs up if you're ready for me to go over the answer to the in-class practice
question, thumbs down if you want more time!"
- Pacing is really really hard, but you can help students have a voice in pacing!
- Ask for feedback about the homework:
- "Please post questions about the homework on Piazza."
- Use Piazza! It allows students to ask questions anonymously, allows students to
answer questions, and allows you to keep all of the questions you need to respond to in one place!
- Update the homework immediately to add clarifications. I like to use google docs
so that it is easy for me to add an extra note or comment to a homework assignment.
- Never say "yes" in person.
- "I'd love to, but I'm sorry I need to think about it. I promised a mentor that
I would never say yes in person."
- There are too many great opportunities! You're going to have to be thoughtful
about which requests you say yes to. Try to make "no" the default and only say "yes"
when you really want to (or need to).
Darakhshan Mir, Bucknell University
- Teaching puts us in a vulnerable situation, especially as a beginning teacher,
sometimes putting us outside our zone of comfort . Over time, I have learned (I still
struggle with it, though) that embracing this vulnerability rather than pretending it
doesn't exist makes me a better teacher and learner, and a role model for my students.
- Respect your students as persons and as learners, while keeping in mind that most of
them are much less mature than you. Discounting their opinions can be tempting when you
think "you know best", but try to consider situations from different angles--- maintain
high standards and expectations but nurture an open environment where students can
bring their concerns to you.
- Think carefully about active learning exercises before you deploy them in the classroom.
Keep experimenting with different ones to see which ones work best for your class, your
students and you. Every semester, I'm surprised by what I learn.
- "Steal" teaching and presentation material from around the web, use freely available
online resources (such as python tutor) in class to encourage your students to use them
as a learning tool on their own.
- For introductory courses, think carefully how best to use the TAs (both institutions
I've taught at, are undergraduate only, so I'm referring to undergraduate TAs) to
promote and maintain a supportive learning community-- they are an incredible resource.
Listen to the TAs' feedback, use their opinions to get a feel of how the course is being
perceived by students, and adjust accordingly.
- I stole this one from Sam Rebelsky at Grinnell College-- use your (introductory) courses
as a platform to connect students both to the wider College/University intellectual
community and the department, by encouraging them to attend events that are important
for their intellectual development.
- Even in introductory courses, bring your scholarship into the classroom, even if in a
minor way. Tell them what "else" you do.
- Get to know your colleagues outside your department (this one, especially, if you're
at a small school).
- Maintain notes on "highlights" of each class as the semester progresses. Next time you
teach this course again, you will know what worked well and what didn't. Don't trust
Leo Porter, UC San Diego
- In-class - Active Learning:
- If you can, focus your time on developing in-class
activities and questions for students. Students will learn more and you'll enjoy
class much more.
- New to active learning - attend a SIGCSE workshop or two on the topic
(POGIL, Peer Instruction, etc.) to find colleagues and get help starting.
- Class Prep:
- Don't be a perfectionist about slides/activities. 90% polished slides/activities are
fine for class. Try to keep mistakes low, but if they occur just now and then,
they can be great for student learning when you/they catch them.
- You don't need
amazing/cool animations (buy a tablet and just draw it - it'll slow you down which
is good for the students). Class prep is an infinite time sink, be careful.
- Large Class Management: Tools can help make the workload easier.
- Piazza is great for student questions on homeworks.
- Gradescope can really help speed up the grading process if you have lots of
exams and a large teaching staff.
- Podcast or Video-podcast if your institution allows/supports it. Students being
able to re-listen to your lecture helps reduce the volume of questions.
- Empower your teaching staff:
- TAs should have a role in writing homeworks, solutions, and exams.
- If they want (and your school allows it) let them have a few opportunities to teach.
- Have TAs who are responsible for piazza (and who forward critical questions to you).
- Everyone benefits from this - they have more to say on the academic market, they are
more invested in the class, and it frees your time.
- First year and tenure:
- Collect advice from a number of people about what tenure looks like at your school
(the campus advancement committee or prior members, the dean if you can, a few folks
from nearby departments, and a bunch of folks in your department). I recommend doing
some of this during the job search but do it again after you arrive (you might hear
different things). From this advice, you should find a decent view of what counts,
what doesn't, and what's expected.
- Co-teach your first time if you can. The other professor will know the ropes
(how to get copies made, how to access student rosters, etc.) and will also help
you see the culture. It'll save you time that first year to get started on scholarship.
- Be aggressive at the start about scholarship. You're in a new school, new
department, etc. but you don't have two years to figure out the lay of the land
before starting your grant applications and research program. Aim to have at least one
paper (post-phd thesis) and one grant application in submission your first year at the
- Be firm about keeping service commitments low. A great mentor of mine told me to
find something you care about on campus and make it happen (join the existing committee,
create your own, or just become the director of a small-scale endeavor). Just make
sure itís not a major commitment - you likely don't have the time yet. But then when
folks ask you to serve on the random YYY committee, you can say, "Sorry, I'm busy
with <insert the project you joined here>." Saying no is hard in year one, but don't
take on more than one committee or new service project. Remember that, depending on your
institution, amazing service is almost never a substitute for poor teaching or poor
research and prioritize as such.
- Get to know your colleagues and get known:
- Go to faculty meetings, invite them out for coffee or lunch, and/or go to social events.
- Find people on campus outside your department with similar interests and try to do
things with them periodically. It helps you see the campus-wide picture and they can be
a great support network.
- I know the rule of thumb is to stay quiet, feel things out, then speak up. You
should do this - for sure. But I think there's a danger in being too quiet as well.
I can't speak for all schools, but my experience has been that even if your view isn't
100% popular, if it is well-defended and rational, then your colleagues will respect
you for having a voice.
Jodi Tims, Baldwin Wallace University
- You don't have to test everything you taught your students, grade every detail of everything
you assigned your students or have answers to absolutely everything they might ask.
- Students will complain at the moment about being asked to do something they perceive as
difficult or a lot of work. They will complain five years later if you haven't challenged them,
taught them to think for themselves, or pushed them further than they thought they could go.
- Students need to be given a grade that is an honest reflection of the knowledge, skill and
effort that they demonstrated in your course. Receiving a grade that is less than what a student
wanted may be temporarily disappointing or anger-invoking, but in the long run, as long as the
grade is fair, it will motivate a student to give more in the future courses.
- You are not teaching Greek history. Expect that you will spend the rest of your career being
challenged to learn something new or looking like a dinosaur in the eyes of your students if you don't.
- Service to your department, your university and the greater computer science community is
important and fulfilling work. Seize the opportunities you have to contribute your time and
talents for the betterment of computer science education. But be careful not to let the
combination of teaching, professional development and service displace the rest of your life.
Time with family and friends, the pursuit of things other than computing that interest you, and
taking care of yourself physically, mentally, and emotionally are critical to doing your best work.
- Opening a student's eyes to the world of computer science research is rewarding work.
Many students will enter their university years with absolutely no clue about what "research" is
all about. While not all students will have interest in pursuing an advanced degree or a
research-oriented career, all can benefit from the innovative thinking and disciplined approach
to exploring their ideas that an introduction to research provides. Invest at least some of your
time, even if you spend your career at a teaching-oriented institution, in mentoring students in
- Tenure & Promotion presentation (2014)
Steve Wolfman, University of British Columbia
- Time spent reflecting on your teaching and writing about it has a huge "return on
investment", even though it feels like a waste of time you cannot possibly afford at the
moment you do it.
- At least if you teach big classes, be more organized and
punctual than you can possibly imagine everyone else being, even if that's
entirely contrary to your nature. (E.g., I make--and post in
advance--detailed staff meeting agendas every week for the 22 TAs in my two
courses this term.)
Resources recommended during the workshop
From the 2014 New Educators Workshop
Josh Hug, Princeton University
- While the assignment from last semester may sure seem like it needs an
API overhaul a couple of days before it's released, resist the
temptation to do this. It'll be fine.
- When you join a university, make friends outside your department. You
can learn a lot about teaching from people from completely different
- Focus your efforts where you can get the most impact.
- Don't answer every Piazza question at the beginning of the semester.
TAs will fall out of the habit.
- Don't be afraid to tell students you can't help them with their
individual issue. Try to refer them to someone else.
- When designing/teaching sections, work to ensure that every student is
actively thinking about the material for as much time as possible.
- For problem-solving based sections or labs, teach your TAs to be
proactive. It is absolutely vital that they insinuate themselves into
the learning process instead of letting students come to them.
- Find a way to identify struggling students in the first two weeks.
Reach out to them individually (either yourself or via your staff). If
they're on the path to failure, tell them then!
- If you're me, start prepping for lecture later. If I start prepping
for lecture at noon, I'll work on it until I go to sleep to the
detriment of everything else. This is usually a poor usage of time.
- Give a small incentive for answering surveys (e.g. a dropped exercise
or an extra point on the lowest exercise). I found survey participation
increases from ~30% to >85%. And if students tell you something in your
class isn't working, don't be afraid to abandon it.
Mehran Sahami, Stanford University
- A little planning ahead of time can avoid a lot of headache later. When planning assignments
and exam questions, make sure you fully solve them all yourself before giving them to students.
Itís remarkable how what seems like a simple question can easily end up being much more
complicated to solve than you expected or involves needless busywork as part of the solution.
Solving everything beforehand (and providing the solutions to your TAs, if applicable, so they
can provide clear help to students) avoids lots of downstream problems.
- Engage your students to see if they are understanding the material. Teaching is really a
two-way street. Itís important for you to get feedback from students to see if they are really
following along with what you are trying to teach them. Just because you say it in a lecture
doesnít mean they understood (or even heard) it. Take time to do engaging examples or
demonstrations with the class. Ask them for answers or what might be expected to happen next.
Show them something in class and then ask them (discretely) if it made sense.
- It takes real effort to make it look effortless. Good teaching often looks effortless.
In fact, it usually starts with a foundation of solid preparation. The first time you teach a
class, itís a ton of work. But if you put in that work up-front you potentially get to leverage
it over and over in the future. Also, putting in the time to shake out typos, create engaging
demos, and come up with real-world examples of abstract concepts really helps students to better
understand what you are trying to teach them.
- Itís okay to say "I donít know". Teachers often feel pressured that they need to know
(or pretend to know) answers to all the questions their students ask. If you donít know the
answer to something or arenít comfortable coming up with an answer on the fly, itís okay to say
"Thatís a good question. I donít know the answer, off-hand. Let me look into that and we can
talk about it next class."
- Be a part of a community. Rather than trying to reinvent the wheel, engage in appropriate
teaching communities (at your institution, with former classmates, at conferences, online, etc.)
to leverage the insights and materials that other have found work well for the kinds of topics you
are trying to teach.
- Be a good citizen. Part of being a member of a community is also being a good citizen and
contributor to that community. That means making the effort to share your insights and work with
others as well as getting involved in projects that help the broader community. As a junior
faculty member, you should be careful not to "overdo it" on service. But also be aware that some
well-selected service involvement can not only help the community, but also broaden your visibility
among colleagues outside of your home institution.
- Working with Colleagues presentation (2014)
From the 2012 CRA-W Career Mentoring Workshop
Agenda & speaker bios
From the 2011 New Educators Roundtable
Valerie Barr, Union College
- Hand out large index cards on the first day that students make
into name cards for their desk. Have them bring them to class
every day until you learn their names.
- Before you make an exam, make a list of what knowledge and skills
you are testing. Then make problems that test those items. Make
sure that there is a mix of difficulties, some problems that are
straightforward repeats of things done already, some problems that
demonstrate ability to apply knowledge. Do the exam yourself, and
have at least one colleague read it over.
- Don't be afraid of silence in the room when you ask a question.
- Listen to the tone of your voice. Don't be patronizing, no matter
how hard it is to believe that a student doesn't understand
something. And sarcasm does not work in the classroom!
- It can be very effective to have students answer each other's
questions. But it can also be very effective to have students
restate the question!
- Keep track of who speaks up, who asks and answers questions.
Develop mechanisms for making sure that everyone gets called on at
some point, and announce these in class. Quiet students often
need to know in advance that it's going to be their turn. If you
are walking code, go around the room and have each student say
what happens next. They need to hear their own voice in the room
in order to become comfortable speaking up.
- Get groups working up at the board together! This is great, even
better than pair programming (though only effective if the class
is small enough for them to all get board space at once).
- Do all the assignments and projects in advance, before assigning them.
- If you "borrow" projects or assignments from colleagues, make sure
all the software runs appropriately on your system before you have
the students start working on it.
- You will have to be more patient than you thought possible.
- There's nothing quite like the AHA moment, especially when it
comes in the middle of class and everyone realizes that someone
just got it!
Susan Haller, State University of New York at Potsdam
- Everything that everyone else has mentioned.
- Be punctual and organized. They will do what you do.
- Take time to use the board now and then. If it is a big class, the
board on a tablet PC works. It slows down the pace, and gives
students a chance to follow what is going on.
- Pick your battles. The students are not going to be perfect.
Decide what outcomes are most important in your course. Focus on
- Reinforce thinking in class. Even if they are on the wrong track,
take the time (sometimes) to work through their bad reasoning until
they see what their own problem is.
- Remind them that it is fine to make mistakes, big mistakes that
consume lots of time. It is a valuable form of learning.
Stuart Reges, University of Washington
- Solve your own homework
- Until someone writes a solution to the homework, you don't know whether the level
of difficulty is right or that it even can be solved with the techniques you
have taught them
- Even if someone else has solved the problem, it is important for you to solve it
so that you can get into the right mindset to teach the material leading up to
the assignment and to make sure the writeup gives appropriate guidance
- Encourage your best students
- You may not realize how much power you have to influence your students with just
a few words of encouragement
- We often devote an inordinate amount of our time to our worst students, so
it's important to make time for the best
- Personal encouragement is best, but even mass emails can be effective
(e.g., "Your grade in this class indicates to me that you have a talent for
computer science and would do well in the major...I would be happy to talk to
you about this")
- Partner with talented undergrads
- Undergrads are an underutilized resource
- Ownership is key: a partner with significant responsibility, not a worker who
- Undergrad-TA program at Stanford, Arizona, Washington:
- TAs teach section, grade, serve as on-duty helper in the lab
- Undergrads coordinate the program, including selection and training of new TAs
- emphasis on community, teaching
- Range of questions on exams
- Have a range of difficulty in your exam questions:
- Some simple, mechanical, confidence building questions
- Some medium questions that require nontrivial problem solving
- at least one challenging question to distinguish at the high end
- My cs1 midterm:
- 60 points mechanical
- 30 points problem solving
- 10 points "super hard"
- "Program Mystery" questions
- Computer scientists are good at simulating the execution of arbitrary bits of
code (algorithmic thinking)
- We should encourage this in all of our students by asking "What does the
following code do?"
- Effect of b = (b == false) for boolean b?
- Use it for: expressions, parameters, if/else, loops, arrays, recursion,
- Distribute sample exams
- Best way to prepare your students for exams
- Use old exams as your source
- Show them exactly what structure you have planned
- Reduces test anxiety while allowing you to still ask hard questions
- Leads to extra learning because you've told them exactly what to study
- Pass it out a week before the test, distribute a key in the lecture before the test
- Second sample exam/key in section
- Section participation score
- As an incentive to attend section, have a participation score equal in weight
to a weekly programming assignment
- Make it fairly easy to get 100%, even if you miss some sections
- I give 3 points per section up to 20 (full credit for attending 7 of 10)
- Especially helpful in cs1 for nervous students
- Problem/Key handouts
- Give your TAs two handouts to copy each week: problems and a key
- Recycle old exam questions into section handouts
- Overload the handout so students have lots of practice problems to do on
their own (do only a few in section)
- Don't post section handouts on the web (encourage them to go to section)
- Adjust exam scores
- Even experienced instructors badly misjudge exam difficulty and give
- This can be devastating to some students (especially women) and can
poison the classroom atmosphere
- If your exam is too hard, add points to everyone's score right away
- Students will forgive anything if you're honest and willing to admit a mistake
- To adjust I aim for a midterm median of 80, a final median of 75, at least
- Offer an Honors Section
- Meet weekly with honors students (and others with high grades)
- Most important thing is interaction with you (seeing a real computer scientist
- Second most important is interaction with each other (they're your smartest
- Read a book with them (e.g., Battelle's The Search)
- Discuss whatever you find fun: Rubik's cube, Qubic, meta, memes, infinity,
liar's paradox, RSA encryption, halting problem
Julie Zelenski, Stanford University
- Ask students to email you a self photo and save them. You can
review them to learn names and use them to match names to faces later
when you get rec letter requests and so on.
- I'm a big fan of late days -- give students a "free" number of
small self-granted extensions. This conserves your time/energy by
avoiding the small stuff. You only get involved on serious issues.
- Make notes to yourself post-mortem (how that lecture went, what
students had trouble with on this assignment, what curve was produced
by an exam problem) at the time when your memory is fresh. Then be
sure to put that information where you will see it the next time you
give a similar lecture/assignment/exam -- I tend to add it to the top
of the document itself (my lecture slides, the assignment handout,
etc.) in a stand-out font/color so I can't miss it.
- For me, it is near impossible to write an exam that is too easy and
conversely quite easy to make it too hard. Even if you adjust points
to "fix" after the fact, the too difficult exam still has many harmful
consequences on student motivation and self-esteem. So I work to be
mindful when creating exams, knowing my own tendencies are to err on
difficulty. Starting from the learning goals and rubric tends to help
keep me focused on making sure I'm testing exactly what I intend and
getting the evaluation data I need while avoiding noise such as
effects from time pressure, non-native language, and so on.
- Stanford has an excellent "Center for Teaching and Learning" ,
your school may have something similar, look into it. Our center helps
with TA training, regularly bring interesting speakers to campus,
arrange for workshops and discussions on educational issues, and so
on. They also provide one-on-one consultation where they observe in
your class and offer feedback and advice.
From the 2010 New Educators Roundtable
Mark Stehlik, Carnegie Mellon University
- Teaching takes time!
- Prep time - I used to write out all my lectures in advance to help plan the flow.
- Office hour time - if you're not knee-deep in office hours, you're probably not
aiming high enough!
- Check time - make sure you or, if you are fortunate enough to have them, your TA's
write solutions to assignments and exams in advance. A good rule of thumb is a
factor of 3 or 4 (i.e., if it takes you 2 hours to write the solution, it will
take them 6-8).
- Be enthusiastic
- This is not a personality issue, though it sounds like it is -
regardless of how enthusiastic you are, you can always demonstrate enthusiasm for
the material. Put another way, if you're not excited about what you're teaching,
why should your students be?
- Get to know your students!
- Of course, the best way is to take roll early and often,
but this can also be accomplished with quiz/assignment handbacks. This is hard in
large lectures, but even there, one can at least familiarize oneself with the
students who come regularly to office hours.
- Be flexible! Across multiple dimensions:
- Yours is not the only course they have, so be prepared to alter a due date or exam
date so as to not overwhelm everyone with N things in a day. We've had sophomore
courses that students take concurrently have due dates fall on the same day of
the week - that's guaranteed to result in problems.
- A particular lesson might not work - be prepared to re-do a topic if the students
haven't picked it up, or to jettison a thread that isn't working. And if something
doesn't work, try to figure out why - was it you/them/the weather?
- A particular exam question (or exam!) might not work - be prepared to normalize
- But hold the bar high and make sure you're pushing all the students
- Have bonus
questions on assignments to challenge the high achievers, and support the bottom-end
with office hours to get them over the bar
- Exams in a course serve two fundamental purposes: (1) to indirectly measure a
student's mastery of course material in order to determine a grade, and (2)
to provide feedback to both students and the course instructor concerning what
material has been mastered (well taught) or not mastered (poorly taught).
It is often easy to focus on the first objective and ignore the second. The second,
though, is the more important objective. If you design your exams to provide
excellent feedback, they should also provide a solid basis for determining final
- Each problem or subproblem should test one concept or skill which was to be learned
in the course (with the exception of synthesis questions). Testing different
concepts or skills in different problems or subproblems maximizes feedback.
- Try to decouple subparts of a problem. This facilitates grading and is fairer
to the student who may miss one part and otherwise give up on the rest of the
- Only exceptional students can be expected to solve a "novel" problem under exam
- State the problem as clearly as possible and proofread your questions carefully,
not only for typographical errors, but also for ambiguous problem statements.
This is especially important for exams! If possible, have a colleague review the
questions and provide pre-exam feedback.
- Some ideas on assignments
- It should be possible for students to be successful on some part of the assignment,
which augurs against large, amorphous assignments.
- Set explicit milestones (even virtual, self-check ones) for large assignments
given over a period of weeks to make sure students are making progress
- Know What You're Asking For - make sure you have a clear picture of the concepts
and skills which the student is demonstrating by completing the assignment.
- Clear, Unambiguous - ideally, no assignment would need clarifications. The more
people who see it prior to release, the less likely clarifications will be
needed. Be attentive to bboards and mail shortly after the release of an
- Require Minimal Unrelated Knowledge - a student shouldn't need to know how to play
bridge or some other random thing (or have to learn in real-time) in order to do
- Interesting! - perhaps more important than anything else. More than anything
else, students detest boring assignments (either contextually boring or an
assignment which deals with minutiae rather than an important part of the course).
- Solicit feedback
- An early in the semester index card (first couple weeks, perhaps) with two questions
on the order of
can go a long way toward heading problems off at the pass.
- What was the best thing that happened in class this week?
- What one thing should I do differently?
- You're not alone
- if you're struggling to come up with an assignment, or how to present a topic,
ask a colleague (either local or on the SIGCSE or other list) - of course,
you can't do this for everything, but we've all got a few go-to people when we
need an answer to a question; also check out the Nifty Assignments page for ideas.
Eugene Wallingford, University of Northern Iowa
- Be honest. Students value honesty.
- Even the best students will fall down occasionally. There isn't anything wrong
with them, or you.
- Give feedback on assignments promptly.
- The previous advice is a specific example of something more general:
Most students don't handle uncertainty well. Even students who "get
it" might think they do not.
- Setting draconian standards and policies does more harm to your
learning environment than it buys you.
- Instead, set reasonable, firm, and challenging standards. Students
appreciate that they are expected to accomplish something meaningful.
- A lecture or classroom activity is only as good as what it helps your
From the 2009 New Teaching Faculty Roundtable
Claire Bono, University of Southern California
- (Curriculum) There's that saying "teach the students you have, not the ones you wished you had." I still struggle with this sometimes.
- (Curriculum) Keep notes about what worked and what didn't that semester (e.g., changes needed to an assignment, a new lecture topic you want to add) in one document (I just use a text file); update it as you think of things throughout the semester so you won't forget. Then refer to it the following semester as you go along in the same course. You can also keep notes with your lecture notes for that day, for when you go to review them next time.
- (Exams) Keep ideas for exam problems in one document (I just use a text file), and write them down as you think of them, and then look through it as you are making up the exam.
- (Exams) Publish previous exams. You don't have to worry about students getting illicit copies themselves. Lets them know the style of your exams for better studying. I provide solutions for some of the exams.
- (Policies) If you want students to do something you have to make it worth some course credit (doesn't apply to 100% of students). E.g., I would like the labs to be worth nothing, because I want them to be a low-pressure activity; they aren't really a means for evaluation, just learning. But I make them worth 10% total so they will do them (there are some slop points too to reduce the pressure).
- (Policies) A policy of no make-up exams has worked well for me. The policy is that if a student is very sick or whatever, I'll scale their scores on their other exams. I don't have a lot of students missing exams, and don't have to put in effort making up extra exams.
- (Labs) Do lab assignments for beginning (CS I / CS II) programming courses. It gets them programming right away, and often, and focusing on practicing the current topic with help readily available. Other useful lab activities (besides programming): trying out software development tools (e.g., give them a program to debug, and have them show results in the symbolic debugger), timing programs using different algorithms to solve the same problem, demonstrating their working milestone for the current programming assignment, presenting their design proposal for current programming assignment.
- (Assignments) Nifty assignments has been a great resource for me.
Dan Garcia, University of California, Berkeley
Here are 10 I talked about at the Teaching Tips We Wish They'd Told Us Before We Started (Panel) at SIGCSE 2007.
- (Policies) Slip days
- The tired "my dog ate my homework?" excuse probably isn't used much anymore, but I've certainly heard my share of "the network / system / RAID / database was down". These are a thing of the past, thanks to slip days. Slip days are one-day virtual tokens (students are usually given three at the start of a term) that can be used to grant themselves a single day's extension for any homework or project deadline. They could have a single day's extension for three assignments, save them up to use all three at once, or anything in-between. Our submission script automatically keeps track of how many slip days they've used to date, so there's no extra bookkeeping overhead. Whenever someone approaches with a sob story when they're clearly fishing for an extension, one can cut them off and suggest they use a slip day token.
- (Office Hours) TALC
- The Astronomy Learning Center (TALC) on campus runs large, collaborative "watering holes" where students gather to work on their homework in an informal, open setting. While I did not duplicate their very successful center, I did adopt some of their strategies for my own office hours. The most significant was to let the students drive as much as possible. It's so easy to lapse into lecturer mode when a student asks an innocent question, like "I don't understand ____". TALC suggests biting your tongue, avoiding the chalk, and instead spending your efforts supporting the inner teacher in the other students. You act more as a facilitator between the confused student and their "peer instructors". Once one student has explained the answer, you ask a second student to give an "instant replay" for the benefit of all. You are allowed to step in for a "slow motion instant replay" when appropriate, but only as a last resort. There are other subtle points TALC mentions, like standing within a group (not in front), avoiding getting bogged down with a single question or individual, and having the "driver" recap whenever a student joins in the middle of a discussion. One role I sometimes assume is that of a very confused student. I'll sit in the back and ask very fundamental questions and all the students in the room act as a single entity to explain things to me.
- (Lectures) Team-teach (faculty and TAs)
- Rather than having a single person teaching every lecture/section, if two can attend each other's sections, have them trade off alternate weeks.
- The week they are "ON", they'd teach all lectures/sections.
- The "OFF" person attends the first section, and sits in the back as observer, taking notes of how well the "ON" TA did that week, and debrief immediately afterward
- TAs Buddy TA in weeks 2 through n-1 (not first and last)
- (Grading) Englighted grading
- Absolute grading, bump up but never down
- Allow the final exam to replace the grade from earlier midterms
- (Cheating) Cheaters? Think movies!
- "bring in the cavalry"
- when confronting them, have really good evidence (high cheating bar) and have several TAs in the room at once. No he-said, he-said.
- "we can do this the easy way, or the hard way" (i.e. plea bargaining)
- Provide a lenient option if they confess, keep it internal, write the letter to the office of student judicial affairs saying it's resolved, and minimize the effect (perhaps just neg pts for that project).
- If they don't confess and the SJA determines they're guilty, throw the book at them (fail the class)
- Remind them that if it goes to SJA, they often call parents in. To many, this is the fact that breaks a case open.
- (Lecturing) Use PRS/CPS clickers in lecture
- (Exams) Bring laptop to exams
- Visible Timer. I use HBTimer 1.5.1
- Powerpoint bug fixes (and then fix immediately!)
- Auto-announce 30-min left, etc. Here's my script I run at all 3-hour evening exams (substitute your own mp3 files):
echo 'say "You may begin. You have three hours. Good skill!"' | /usr/bin/osascript
sleep 3600 #3600 = 1 hour
echo 'say "Sorry for the interruption... You have two hours left!"' | /usr/bin/osascript
sleep 3600 #3600 = 1 hour
echo 'say "Sorry for the interruption... You have one hour left!"' | /usr/bin/osascript
sleep 1800 #1800 = 30 min
echo 'say "Sorry for the interruption... You have thirty minutes left!"' | /usr/bin/osascript
sleep 1500 #1500 = 25 min
echo 'say "Sorry for the interruption... You have five minutes left! At this point, please remain in your seats. Make sure your name is on every payj and you have signed the front."' | /usr/bin/osascript
sleep 240 #240 = 4 min
echo 'say "You have one minute left..."' | /usr/bin/osascript
sleep 60 # 60 = 1 min
echo 'say "Time is up!! Please put down your pencils and remain in your seats."' | /usr/bin/osascript
- (Lecturing) Consider web technology (webcasting, podcasting), audio only
- "The current flows from 'here' to 'here'" is useless if audio only (or for visually impaired students)!
- (student asks un-miked question) "Yes" is useless! Repeat question!
- (Lecturing) Share your CS passion
- I try to show animations from SIGGRAPH's ET before every lecture
- (Staff) Empower TAs, support readers
- Ask TAs teach a lecture
- Have TAs and readers help write, beta-test, grade exams
- Let TAs participate in syllabus discussions
- Open your life to your TAs
- Share cell numbers (great for emergencies)
- Grade an exam at your home
- (Professional Growth and Development) Read "How Children Fail" by Holt. Again.
- Insights of a great teacher that have stood the test of time. The most important idea: Let the students drive their learning!
- (Policies) A big class is like the Queen Victoria...
- (in which making a right turn takes 50 miles) If you change a policy, it'll be months before the entire class knows the change, if ever.
David G. Kay, University of California, Irvine
- (Meta) Teaching is a design activity; there are almost always tradeoffs. There are many tips/techniques/approaches, each with strengths and weaknesses. You should build a large repertoire of alternatives and the ability to choose the right one for a given situation. It's not either "Always enforce due dates strictly" or "Always give deserving students leeway"; it depends on why you have the due date in the first place (fairness, pacing, grader convenience), the size and level of the course, the size and duration of the assignment, and more.
- (Mentoring Students) Be a model of professional behavior, even if your students flake out or tick you off; they may not have that much experience seeing how professional people behave. (Professional doesn't have to mean stiff, stilted, or stand-offish; it does mean being forthright, reliable, and focused on getting the job done.) Treat students with respect (even if they talk in class, play World of Warcraft, dress outlandishly). Students aren't your customers (they're not always right), but they are your clients in the professional sense: You should do your best to serve their needs, but you (like their doctor or lawyer) have an independent professional obligation to do what you think is best, not to just give them what they want (not to prescribe the marijuana in every case, not to give them As when their code doesn't work).
- (Exams) On the way back to your office after every lecture, think of one exam question you could ask about what you just taught. Your memory will only fade over time.
- (Lectures) If you're projecting anything, let students have a copy of the same thing on paper while you're projecting it. Otherwise, they'll concentrate on transcribing the screen (even if you tell them not to) and not listen to you.
- (Evaluations) Use mid-term course evaluations. It shows students you care, which will motivate them to work harder. The form doesn't matter; you could be as minimal as, "How can I improve this course?" If people have something to say, they'll say it. But they're unlikely to be nasty, since they have to live with you for the rest of the term. Then address the most common comments in class (without sounding defensive) and invite anyone with a concern you didn't address in class to come chat with you about it. (You don't want to use class time to go through every individual grievance.)
- (Professional Growth) Visit your colleagues' classes, and invite them to visit yours. It sounds strange, but teaching is one of the most isolated academic activities (not from the students, obviously, but from one's colleagues, who typically have no idea what you do in your class). Have coffee afterwards and talk about what you saw.
- (Labs) Practice pair programming. It's a winning strategy all the way around, and one of the most thoroughly studied pedagogical practices.
- (Retention, promotion) Know who will be evaluating your performance and retaining/promoting you. You want them to be as comfortable with you as possible. Be around; volunteer to do things; behave in ways compatible with how the decision-makers behave.
- (Professional Growth) Never throw anything away that you have created: notes, slides, software, exams, whatever. You never know when, decades later, you might find yourself teaching the same or similar topics. You also never know when you might need to change jobs, and you'll want to be able to show samples of your work.
- (Office Hours) Don't touch the pen (chalk, marker) during office hours; put it in the student's hand. If you do, you'll be tempted just to work through the problem in lecture mode. Instead, let the student write.
- (Mentoring Students) Help students make the transition from high school to college. It's not just more school; the whole ballgame is different. See http://www.ics.uci.edu/~kay/college.html .
Lester McCann, University of Arizona
- (Lecture) facial expression for "bored" == facial expression for "lost"
- (Time Management) athletes are expected to give 110%; faculty are expected to give 125+%
- (Tenure) the politics of the tenure process