This document summarizes a course on software art and design at Aarhus University that teaches computational thinking through programming practice and critical code theory. The course includes two parallel parts: Aesthetic Programming, which focuses on hands-on coding exercises and projects, and Software Studies, which covers theoretical readings and discussions. Some example assignments discussed are redesigning a throbber based on its cultural meaning, parsing data from APIs to create visualizations, and a final group portfolio project such as a confession bot Twitter account. Student feedback indicates they found learning programming concepts and critical thinking about code challenging but engaging.