CS341 Course Notes