The topics we will cover are difficult to master. Below are resources to help with foundational concepts, including proof techniques and additional practice problems.
- Lehman, Mathematics for Computer Science
- For tips, see Section 1.9
- Velleman, How to Prove It
- Wikipedia Math Portal
- Cusack, et al, An Active Introduction toDiscrete Mathematics and Algorithms
- CLRS, Introduction to Algorithms
- Wikipedia Algorithms Page
- Skiena, The Algorithm Design Manual
- Levitin, Algorithmic Puzzles
-C++ demo program. This program demonstrates some useful C++ techniques you may not have learned in CS2150: using library classes for pairs and tuples; how to sort vectors of pairs, tuples, structs and objects; how to use the built-in map class for lookup tables.
Software Development Methods (2110)
The pen-and-paper (a.k.a. “written”) assignments are not really pen-and-paper: they must be typeset with LaTeX, a professional formatting system. Tutorials on how to use LaTeX are provided with Homework 1A. LaTeX is easily installable on many computers:
- Overleaf, overleaf.com: a Web-hosted LaTeX editor which behaves much like Google Docs.
- Cygwin (which you may have seen in CS 2150) has LaTeX packages that can be installed
- MiKTeX provides a stand-alone installer for Windows and Mac, miktex.org
- Ubuntu and CentOS provide TeXLive packages in their repos
- LyX, TexShop, and TeXStudio are GUI editors available either through the MiKTeX and TeXLive repos or available as separate downloads.
We strongly recommend using Overleaf, overleaf.com, since it contains all the necessary packages and works in-browser. We generally will not accept LaTeX documents with images of text or formulas; you must typeset the formulas in LaTeX, not in another program and have them exported as images.
Other students found these resources helpful. If you have suggestions for other resources to list here, please send Profs Hott or Horton an email!