Course notes, projects and material for CompSci 222