cs2100 summary notes