“I had the feeling that top-down and bottom-up were opposing methodologies: one more suitable for program exposition and the other more suitable for program creation. But after gaining experience with WEB, I have come to realize that there is no need to choose once and for all between top-down and bottom-up, because a program is best thought of as a web instead of a tree. A hierarchical structure is present, but the most important thing about a program is its structural relationships. A complex piece of software consists of simple parts and simple relations between those parts; the programmer’s task is to state those parts and those relationships, in whatever order is best for human comprehension not in some rigidly determined order like top-down or bottom-up.”
— Donald E. Knuth, Literate Programming (emphasis added)
Great writeup by Cory Doctorow on a story that is all too common. A professor of Computer Science tried to bar a student from getting public, open source, peer review on his source code for a project after the course was completed. The complaint was that it would make it easier for other students to cheat. Thankfully, the student appealed and the school board ruled that his goal is quite acceptable and in line with academic rigor.
From the article:
Students work harder when the work is meaningful, when it has value other than as a yardstick for measuring their comprehension. I’ve always thought it was miserable that we take the supposed best and brightest in society, charge them up to $60,000 a year in fees, then put them to work for four years on producing busywork that no one — not them, not their profs, not other scholars — actually wants to read.
I’d bet the odds are great this kid will go on to do great things in software…in spite of whatever company he works for.
Student challenges prof, wins right to post source code he wrote for course – Boing Boing .