1. understanding logical arguments
  2. modeling problem spaces and deducing new facts
  3. modeling programs & "gates" (the physical building blocks of computers)