## Algorithms lecture notes and assignments

I just finished teaching our algorithms course for the second time. The first time around, last spring, I was always scrambling at the last minute to prepare for class, make new assignments, and so on (although I did have some excellent material from Brent Heeringa to start with). This time around, I had a bit more breathing room to develop a fuller set of assignments and actually TeX up all my hand-written lecture notes. The course is loosely based on the approach taken by Kleinberg and Tardos, though I don’t really rely on the book.

Feel free to use any of the lecture notes, assignments, or even exam questions. I didn’t leave the exams linked by accident; I use an exam format where the students have a week or so to prepare solutions to the exam, using any resources they want, and then have to come in on exam day and write down their solutions without referring to anything (I got this idea from Scott Weinstein). So leaving the exams posted publically on the web isn’t a problem for me.

Please don’t ask for solutions; I won’t give any, even if you are an instructor. But questions, comments, bug reports, etc. are most welcome.

Assistant Professor of Computer Science at Hendrix College. Functional programmer, mathematician, teacher, pianist, follower of Jesus.
This entry was posted in teaching and tagged , , , , , . Bookmark the permalink.

### 2 Responses to Algorithms lecture notes and assignments

1. Dan Oneata says:

Hello Brent! Since both functional programming and algorithm design are so dear to your heart, I was wondering what is your take on the “Algebra of Programming” [1] way of doing algorithms: derive an algorithm through a calculating approach using category theory. Is this style too technically involved or is it too specialised to be useful?

Thanks for your blog and for providing so much great content for those interested in programming and not only.

• Brent says:

Hi Dan, good question! I really love that book; while in grad school I spent several months working through a large part of it in detail. I think the calculational approach is really powerful and widely applicable. But it seems to require a lot of background and experience to be able to wield it usefully. Honestly even I am not very confident in using it. So I am not about to start teaching it to my undergraduate students or anything like that.

This site uses Akismet to reduce spam. Learn how your comment data is processed.