Helpful Resources


We have written a style guide to help you write clean, clear, and concise SML. You should follow it closely and feel free to ask for clarifications.

Most of you have taken 15-150 and therefore already know SML. If you do not we encourage to go over this tutorial, and use this book as a reference guide.

An official installation of SML of New Jersey (SML/NJ) can be run from the Andrew Unix servers at They are currently running version 110.76. All of your submissions for the class must compile on the Unix machines, as we will test them using Autolab on a Unix machine using the same version of SML.

This course will make heavy use of SML/NJ's compilation manager, CM. We have a brief document on how to use CM that should be sufficient for this course.

Function Costs

We have a very detailed online library documentation, and a mathematical notation reference online as well as in PDF form as a glossary. Do take the time to understand all of these resources so that you're better able to use our library while coding your labs.


This course will use Piazza (the end is pronounced like Pizza, not Pisa) for online communication among students and staff. Students should post their questions here and they will be answered either by other students or by the staff (you can decide which answers are more reliable). The staff will also post any updates to labs or other announcements here. You are responsible for being current with any information posted by the staff.

You should be getting an invite from Piazza to join, but if you do not, you can find the class page here.


We require that you turn in the written parts of the labs as typeset PDFs. Please use $\LaTeX$ to typeset your solutions, as it is by far the best way to produce clean-looking write-ups. You can find useful information on how to use $\LaTeX$ on the 15-150 resources page.


If you are taking this course without having had 15-150 (e.g. as a graduate student), then you should see the 15-150 resources page for information on using Andrew Unix, or using Text Editors with SML.