"Unlearning Object-Oriented Programming," "Classical Software Studies," "Writing Fast Code in Slow Languages," "User Experience of Command Line Tools," and "Obsessions of the Programmer Mind."
Every one of James Hague's suggestions — while humorous — is also brilliant. I probably would have graduated from the CS program I dropped out of in 1991 if these had been on offer.
CSCI 3300: Classical Software Studies
Discuss and dissect historically significant products, including VisiCalc, AppleWorks, Robot Odyssey, Zork, and MacPaint. Emphases are on user interface and creativity fostered by hardware limitations.
CSCI 4020: Writing Fast Code in Slow Languages
Analyze performance at a high level, writing interpreted Python that matches or beats typical C++ code while being less fragile and more fun to work with.
CSCI 2170: User Experience of Command Line Tools
An introduction to UX principles as applied to command line programs designed as class projects. Core focus is on output relevance, readability, and minimization. UNIX "ls" tool is a case study in excessive command line switches.
Computer Science Courses that Don't Exist, But Should [James Hague/Dadgum]
(via O'Reilly Radar)