Maybe we should start aggregating the more "timeless" books/articles we recommend. I'll probably start something on Github or Medium like for my own recommendations.
College CS courses (at least in my limited experience) are so far from day-to-day software engineering that I don't hold out much hope that they'd assign these kinda readings though. A few months ago I wrote about how reading Joel on Software was useful to me while I was getting into the field: https://medium.com/@firasd/things-i-read-on-joel-on-software...
What I think is so important about history like this I still draw on those ideas all of the time. There are still so many opportunities to apply ideas from The Cathedral and the Bazaar . These foundational works can be "harvested" for a century before society is fully adapted around them.
In fact, the book is about the difference between development models of open source projects. Cathedral is not necessarily a closed source project. When the book was written, Emacs, nethack and other open source software were cathedrals in a sense that core team developed software in private and released "tarballs" from time to time. Now, most new programmers don't even have such projects around. The first thing they see is GitHub, where forking a project is one click away. Even *BSD systems made their version control systems open for everyone.
Programming culture has assimilated superior development model and there is no way back. New programmers don't even imagine that developing open source software is possible in cycles of gathering patches and releasing tarballs, like the GNU project did before.
I was involved in a source code copyright lawsuit a few years ago as an expert witness. It made me realize how immature the software industry is. How many terms we use have no authoritative definition. There are no books that cover the basics that say "this is this" and "that is that"
http://ocw.mit.edu/courses/electrical-engineering-and-comput...
Not exactly a history course, but emphasis is on thinking about system-level issues, with plenty of reading (including both classic & newer papers) and writing (of essays, not code).
Also, new programmers aren't the only ones who don't know enough history.
I'm starting to feel that teaching a history of computer science (in terms of sociology and insights, not just programming) would be a great addition to the curriculum in college. Some familiarity with classics like The Cathedral and the Bazaar, Fred Brooks' The Mythical Man-Month (which predates even my old-timer ass), The Agile Manifesto, and other masterpieces would teach students a lot that they may otherwise have to learn the hard way, or won't learn at all.