I teach a graduate class in algorithms. Students take this class primarily as a breadth requirement in grad school, and they are a mix of MS and Ph.D students in computer science. Most students taking the class have a CS background, but a few don't: instead, they have enough math background that I deem it permissible for them to take the class.

The class itself spends roughly a third of the time covering/reviewing what would be standard material in undergrad algorithms (basic algorithm design principles and methods for analyzing algorithms) and a third of time with more advanced material that is still core algorithms (flows, complexity theory, randomness) and a third with more advanced material (approximation algorithms, and advanced topics).

The main emphasis in the class (and the reason why I'm posting the question here) is an understanding how to reason formally about algorithm (as opposed to learning recipes, which is common in undergrad algorithms). Students are expected to write proofs, and understand how to apply imperfect design strategies to specific problems and generate provably correct algorithms. Students also do assignments and projects that involve programming, but this is not a central part of the course.

As is probably not surprising, understanding what constitutes a proof is a major issue for students.

Over the years, the class size has grown: partly because of the growth of the program and partly (I hope!) because of interest in the material. I started off some years ago with under 20 students, and now I'm upto 80 and counting.

This has forced many changes in the structure of my teaching. But I'm still in a "standard" lecture-style model, where I deliver lectures and assign homeworks.

What I'm thinking about doing is 'flipping' the class around to do something more interactive, especially to help students understand how to go about reasoning formally about algorithms. But at this size I'm not sure how possible this is.

So finally, my question:

are there good pointers on ways to flip a large grad class in a mathematical topic where the focus is on helping students assimilate algorithm design principles and understand how to reason about them ?

  • $\begingroup$ I think you have to define what you mean by "flipping". It is a bit of a buzzword and maybe it means a more radical change in eliminating all lectures. But you have to define what you mean. My advice would be to be a bit more evolutionary and use some of the class time for drill or activities but not can all the lectures. $\endgroup$
    – guest
    Commented Apr 14, 2018 at 21:58

2 Answers 2


It's definitely possible to flip the class you're mentioning here. Certainly the fact it's a graduate class makes it a good candidate for flipping since those students can and should be responsible for more of the learning. As for the size, there are two main areas you'll need to think carefully about: the logistics of the pre-class work, and what you will do during class.

Part of flipping a class involves getting the "lecture" content out to students in a medium that can be taken in and studied prior to class, to prepare for the class activities. If you are putting your materials online, or if you are just using a standard textbook, then pretty much the size of the class is irrelevant. However, you may also want students to do something before class and not only read the textbook.

For example students in my calculus classes have reading assignments and videos to watch, followed by simple exercises that instantiate a number of learning objectives I've laid out for them. (Here is an example.) So this raises the issue of logistics. How will students submit the work that they do on those pre-class activities? For me, I had students submit their work using a Google Form, which just looks like an ordinary web form which then dumps the results into a spreadsheet, which I then scan prior to class for any big trends or misconceptions. Whichever way you go, you'll want the means of submitting work something that can be automated and scaled up if possible.

As for the in class work, here are some ideas.

  • Clicker questions. Joe O'Rourke already hit on this, and he mentioned Learning Catalytics of which I am a user and big fan. Clicker questions are awesome for getting at conceptual understanding which can be very important in proof-based classes. I would highly recommend skimming through Derek Bruff's book on classroom response systems to get a lot of good ideas on how to use clickers or web-based classroom response systems.
  • Proof evaluation tasks. This is where you give students a mathematical statement and an argument, possibly flawed, and ask them which category the argument falls into: (1) the statement is correct and the argument is a valid proof; (2) the statement is correct but the proof has a flaw; or (3) the statement is not correct. You can do proof evaluation as a class discussion activity, or a think-pair-share, or using clickers, or some combination.
  • Proof writing workshops. This is where students practice their proof writing live and in class, collaborating with each other and giving feedback on the proofs they've constructed. Writing courses do this all the time.

Really, you can use the class time any way you want because by flipping, you've moved the lectures and basic content outside of class and made a ton of room for activities. And the active learning is really the magic ingredient -- the flipping is done solely for the purposes of launching the active learning.

Finally I would say Joe's advice to take it slowly and incrementally is sound. Maybe you could reserve one day a week for the "writers workshop" I mentioned above, for example. Or, start the class with no flipping at all, then gradually increase the amount students to prior to class until by midterms the entire class is flipped. But certainly there's no need to go all in with the flipping unless you're totally comfortable with it.

It sounds like an awesome class, and good luck with it.


You might take this in stages. One of our Chemistry professors, Kevin Shea, is using Learning Catalytics in his 75-student Organic Chemistry class, a comparable enrollment and complexity of material to your situation. This enables him to pose a question at the very start of the class that was supposed to be explored the night before, and receive overlaid and comprehensive feedback in the first 5 minutes of the class, that gives him an indication of where everyone stands.

Here is an example from his class, where he can conclude immediately that most of them "get it.":

This is a useful step beyond clickers, which have limited question range. Students may use any device—phone, tablet, laptop—that can access the web, and the instructor sees the results, both in a aggregated format as above, and also individually, all pretty much instantaneously. Your challenge would be to be concoct questions that get to the heart of the algorithmic correctness and performance issues that are your focus.

I would not attempt to flip the entire semester's classes, but rather do it in stages. It works for some material, but not for others. It takes some time to figure out what works and what does not.

  • $\begingroup$ Thanks, Joe ! that's a good idea. $\endgroup$ Commented May 17, 2014 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.