Students in prior classes have created the following resources for the course as a whole:

Additional resources for specific topics appear below.

Unified Modeling Language (UML)

Students in prior classes have created overviews for the following UML diagrams:

Tools

Knowing how irritating it is to fix mistakes when drawing a diagram by hand, I encourage you to use a tool to create UML diagrams.

Some of the tools that I’ve used in the past are as follows:

ArgoUML
This tool was used previously in Comp Sci 350, but my “experience” with it was frustrating: It requires Java 6 to run on macOS, and it also targets the UML 1.4 specification (which is as almost as old as all of you!). Finally, it hasn’t seen active development since 2014.
PlantUML
A text-based language for defining UML diagrams; although irritating when the automatic layout algorithms do a poor job, I’ve been mostly pleased with my recent experience using it. An online version is also available: http://www.plantuml.com/plantuml/.
OmniGraffle
Although I’ve never used it personally, every Mac user that I know swears by it.
Microsoft Visio
If available (e.g., thanks to a site license), then definitely worth checking out – the last time that I used Visio, it supported class, sequence, etc. diagrams.
yEd
Appears to be limited to class diagrams, but I’ve used this tool for a number of projects in the past and have been pleased with its ability to provide good graph layouts. An online version is also available: https://www.yworks.com/yed-live/.

You are also welcome to search for other UML diagramming tools. If you do use a tool, be sure to mention it in your documentation statement for this assignment (and I’d also be interested in what you thought of it – the good, the bad, and the ugly). I also will not count off for “sloppy” diagrams that have intersecting lines, etc. created using a UML tool as long as the diagram itself remains readable (e.g., PlantUML’s layouts can be very poor, but there’s no easy way to manually adjust what it produces).