3 ms·
> What would a "Great Works" version of a programing[sic] or computer science curriculum look like? Ah now, that is a very good question. Some names come to mi
by javajosh 10y ago
> What would a "Great Works" version of a programing[sic] or computer science curriculum look like?
Ah now, that is a very good question. Some names come to mind: Turing, Church, Goedel, and also Djikstra, Knuth, Ableson & Sussman.
Knuth (esp his bibliography) in "The Art of Computer Programming" is probably the richest source of possibilities. He has said himself that he enjoys "surrounding" a problem completely, and he is incredibly well read. And apparently entirely devoted to CS, without much to distract him (except, perhaps, some organ playing). Vol. 2 ("Seminumerical Algorithms") with it's straddling of machine and math is particularly representative of a foundational text, IMHO.
And yet, all of these are works about CS. Virgil didn't write about Latin, he wrote in Latin. So what are the great works, then? "Phylogeny recapitulates ontogeny" so you could begin with the smallest pieces of code that run when you provide power to the computer, understand them, write your own variants of them, and then work your way through every 'level of code' until you get to a working operating system. Then you'd work your way through important processes like databases, virtual machines, and graphics. (I believe something like that could be achieved with 4 years of stringent effort by an 18-year-old.)
- rspeer 10y agoYour idea for a foundation of practical computing sounds a lot like MIT's 6.004 Computation Structures [1], which is available on OpenCourseWare and edX. In 6.004, you start by learning about the digital abstraction and MOSFETs, then go on to logic gates, flip-flops, pipelining, instruction sets, and halfway through the course you use a circuit simulator to build a RISC processor called the Beta. Then you go on to I/O buses, virtual memory, and interrupts, and at the end of the course you can compile C programs for the Beta. To get from having a processor to having a self-contained programming environment, you could work through a variation on jonesforth [2]. (You'd have to port it from i386 to the Beta if you wanted to keep the same architecture.) [1] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/ https://ocw.mit.edu/courses/electrical-engineering-and-compu... [2] https://github.com/AlexandreAbreu/jonesforth/blob/master/jonesforth.S https://github.com/AlexandreAbreu/jonesforth/blob/master/jon...
- jhbadger 10y agoCoincidentally, Knuth is from Milwaukee as is Foster.