Reading this textbook is not required, though many students in the past have found it helpful in reinforcing what's covered in lecture!

For many of you, this is your first time writing proofs, and even for those who have written proofs before, what we consider a good proof in CS22 likely differs from what made a good proof wherever you were writing them before! Check out the proof virtues document below to acquaint yourself with what we consider a good proof in CS22. ** Your proofs will be graded with respect to this document **, so be sure to read it carefully, and come to hours with any questions.

- Proof Virtues — PDF

LaTeX (pronounced *la-tek*) is program that you will be using to make your homework solutions look beautiful. The sample proofs above were written in LaTeX to give you an idea of what documents written in LaTeX look like. LaTeX allows you to incorporate mathematical notation into your proofs, and because this class involves a healthy dose of mathematical notation, LaTeX is going to be very useful! Using LaTeX is required after the 2nd homework.

We don't expect you've ever done this whole LaTeX business before, and that's why we're giving you some time to learn it! To get started, we recommend creating an account on Overleaf, an online program for writing and compiling LaTeX. After you do that, here are some links to check out:

- LaTeX Workshops at Brown's Science Center
- A Not So Short Introduction to LaTeX
- LaTeX Symbols Guide
- Essential LaTeX
- Art of Problem Solving: LaTeX
- LaTeX Intro Wikibook
- LaTeX on Brown CS Systems

In general, a really good resource for learning LaTeX is the web. When you have a question, google it, and you'll likely find someone who had the very same question!

Below is a template you can use as a starting point for your homeworks.

If you'd like to download LaTeX on your computer, here are some resources to do that:

If you're using LaTeX and you just don't know what the code for some symbol is, this is a neat site which will return the LaTeX code based on handwritten input (although searching your question on the web is likely more efficient):