Alex and I were talking this week about what the syllabus for a course along the lines of Arora’s Theorist’s Toolkit or Kelner’s An Algorithmist’s Toolkit (HT to Lav for the link on my last post on this topic). I think developing a course along these lines with interchangeable 2-4 lecture “modules” would be a great thing in general. Modular design is appealing from an engineering perspective (although, as my advisor might say, separation of design is in general suboptimal). The question is, what would a good set of topics be? Here’s a partial set:
- Advanced matrix tricks: matrix derivatives and other tools
- Majorization and applications
- Random graphs and random geometric graphs
- Mixing times for Markov chains
- Auctions and related allocation mechanisms
- Random matrix theory : the basic results
- Message passing algorithms
- High-dimensional convex geometry
- Concentration of measure phenomena
- Alternating projection techniques
If any readers have ideas for additional topics, please leave a comment.
The point of such a course would be to give students some exposure to analysis and modeling techniques and more importantly a set of references so they could learn more if they need to. It’s like having a kind of cultural literacy to read systems EE papers. Of course, if you’re going to go and study LDPC codes, the brief introduction to message passing wouldn’t be enough, but if you want to understand the issues around BP decoding, the 3 lectures may be sufficient for you to follow what is going on. The list above has some items that are too narrow and some that are too broad. There are a lot of different tools out there, and some exposure to what they are used for would be useful, especially for graduate students at schools which don’t have an extremely diverse seminar series.