Thinking About Technology

Ideas behind computing, including programming practice, reasoning, and the nature of software systems.