I'm teaching the 400-level Algorithms class at Maryland this summer. It's obvious to me how to do interesting somewhat interactive lectures on the standard algorithm subjects, it's less obvious to me how to make these lessons truly interactive non-lectures. The "math class approach" of problems and presentations is certainly one option. But I'd love to do lessons more in the true spirit of "interactiveness." Any suggestions?

(While I'm picking your collective brains, I'm also trying to decide on a good textbook that's an actually readable reference that I can also take some homework problems from. I'm currently planning on

*Algorithm Design*by Kleinberg and Tardos. Is there another book I should be seriously considering?)

## 6 comments:

Sorelle, I have been quite happy with [KT] for 451. And, about pedagogy, your advisor Dave is an awesome teacher, as you know -- make sure to bug him for some tips!

All the best with the class! We'd like to hear your comments when it's done.

Jeff Erickson has some nice undergrad level class notes on algorithms: http://www.cs.uiuc.edu/class/sp09/cs473/lectures.html. I am very much against textbooks for algorithms classes - they are way over-priced (KT is a good example), and they are inherently less flexible than class notes. I have my own class notes, but they are targeted at grad students... http://valis.cs.uiuc.edu/~sariel/teach/notes/algos/book.pdf

And of course, there is infinite amount of other stuff online...

Here is an idea that might work:

I have run math circles. http://www.themathcircle.org

I really believe in this way of teaching. If you are not familiar with this, then I would describe it as a facilitated colaboration.

Some friends of mine and I are going to run one at Grace Hopper this year. We're going to do Computational Geometry as the topic.

I could see you working this into your semester by picking one problem and spending some time during the class working on it as a group.

Basically, you just bring up a problem and then lead the class to solving it on their own.

1. pick a question or problem that is solvable in the time slice you have but have back up problems incase somone in the class has seen the problem already

2. pick something with a ah-ha moment (if possible)

3. Let the students go down dead ends and fail as a part of the process

4. you might want to pick a strange problem that is cool but not part of the normal material - so that the answer isn't in the book or easy to find on google

5. Just bring up the problem and let them apply the techniques you have taught them (divide and conquer, greedy, dynamic) and let them think about what data stuctures to use.

So, you lead it but you do not lecture or lead very much.

It is really fun because they need to think and talk to each other and problem solve together to figure it out.

You could call it "our research problem" to make it clear that this is different from the normal lecturing you are doing in the class.

ok - just an idea. I know it is hard though.

KT is a great book -- I especially like their "applied" problems that illustrate very nicely the underlying algorithmic problems in other areas.

You may also want to look at Anany Levitin: Introduction to The Design and Analysis of Algorithms.

It is very nice.

There is a very elementary excellent reference for students uneasy about the subject: Jeff Edmonds' "How to think about algorithms".

Unfortunately, solutions to most problems in most textbooks are easily available on-line. I am curious about how instructors cope with this difficulty.

The Algorithms book of Dasgupta, Papadimitriou and Vazirani is quite nice and readable. It is cheap and a pre-publication version is available online.

http://www.cs.berkeley.edu/~vazirani/algorithms.html

The "math class" approach you describe is for babies. It is the students' job to do this on their own, or have the TAs cover it in section.

With these approaches you cannot cover as much material. It is style over substance. But if you are going slowly and not trying to cover much material, I suppose it can't hurt.

Post a Comment