CIS279L notes