Design and Analysis of Algorithms

LaTeX Resources

Writing homework solutions is not required for this course; however, it is a good skill to learn. If you plan on going to graduate school and/or publishing papers in the future, you will end up writing in latex. On this page, I give some resources and links to good latex tutorials.

For most latex files, you should be able to compile a latex file using e.g. 'pdflatex foo.tex'. As with other compilable programs like C++, you might get some compilation errors.

  • Tom Cormen's clrscode style file. This is what Cormen, Leierson, Rivest, and Stein use to write CLRS.
  • This file contains many macros that might be useful for writing homework assignments. I use this file to write lab and homework assignments and will maintain and add to this file as the course progresses.

LaTeX Tutorials

Below are some good latex tutorials. If you just need to know a simple command or two, googling "latex " often gets you just what you need.

Text Editors

Below are links to some text editors. Most of the faculty in the CS department use emacs or vi, but there are a couple more recent editors that many students have found success with.
  • emacs. An emacs tutorial is here. Here is a more thorogh tutorial.
  • overleaf is a text editor specifically designed for collaboration.
  • Some recent Swarthmore students have liked sublime.
  • Atom is a text editor developed by github.
  • If you need to become annoyed use vi, here are some tutorials.