Earlier quoted context omitted.
> Anything that has one right answer is going to smell like a made-up classroom assignment. If you're doing C (or any other language where that particular problem exists), it's always a nice exercise to have students write a program (or a function) that takes the radius of a circle and outputs its volume. Most students will write: double volume(double radius) { return 4 / 3 * M_PI * radius * radius * radius; } Can yo…
Circle has no volume
Why don't schools teach debugging? (2014)
101–110 of 174 posts
Re: Why don't schools teach debugging? (2014)
#102Turned out the program we stole didn't quite work and the process of debugging it was at least as educational as starting from scratch.
Re: Why don't schools teach debugging? (2014)
#103Instead they focus on /writing/ code. In the process of writing code, at least some incidental debugging experience is gained (this article is actually an example of that -- the debugging wasn't formally taught, but the assignment clearly forced the author to learn it a bit), but almost no /reading/ code experience. It took me a while in industry to make up for this deficit.
Re: Why don't schools teach debugging? (2014)
#104> why schools don’t teach systematic debugging. It’s one of the most fundamental skills And herein lies Dan Luu's fundamental misconception: that universities see themselves as places where students come to learn skills , i.e. as places of certification producing skilled workers for industry. Most universities see themselves as academic places of learning for the pursuit of knowledge for knowledge's sake, which only…
I respectfully disagree with your argument in relation to this article. Dan Luu is describing a method that would help people achieve a better success in their exams and classes, he's not even pointing their usefulness in the workplace. Therefore, your point about him thinking that universities are here to produce skilled workers is a strawman.
Re: Why don't schools teach debugging? (2014)
#105What schools DON'T teach debugging? Simple trace statements were one of the first things we learned in 101. Maybe I was just lucky to have a good teacher. I still remember him not liking my solution to a problem when I was extremely proud of how smart I'd made an object, so that it reacted properly based on whatever was passed in. Instead of arguing with me he offered an extra credit assignment to take all of the log…
Re: Why don't schools teach debugging? (2014)
#106Yeah, this is horrible and irresponsible on the university and professors' part. But that's the way it seems to be in most large US universities (anecdotally based on talking to friends in grad schools).
However, decent small liberal arts colleges often do exactly what you prescribe, they correctly try to teach it to everyone and generally succeed. Big box schools are just exploiting undergrads as cash cows, don't attend them or send your children to them.
Re: Why don't schools teach debugging? (2014)
#107When asked "How do you debug programs?" my Programming Languages professor responded, "I don't. I prove every line correct before I write it."
Good, now do that on a deadline, with python.
Re: Why don't schools teach debugging? (2014)
#108Re: Why don't schools teach debugging? (2014)
#109To give another example, anyone who's working in a programming context can boost their productivity by knowing how to set up their aliases, learning the basics of unix tools such as grep, and mastering a good text-editor/IDE such as vim/emacs/intellij. And yet, after 4 years in college, I didn't know a single thing about any of the above, and slowly picked up bits and pieces randomly over the course of my career. If a professor could have taught the above in a intro-to-engineering course, it would have saved us countless hours and allowed us to hit the ground running.
Re: Why don't schools teach debugging? (2014)
#110I think the Feynman Method is equally applicable to debugging; I've also done some teaching before, and seen far too many beginners open the debugger at the first bug they find and start stepping aimlessly through the code, seemingly unaware of what their code should be doing. They eventually reach the point where the program outputs the wrong result, and have no better understanding of what they did wrong, because t…
They're both great, like having two sets of teeth to grind problems down to a fine digestible paste.
My software engineering prof encouraged us to use both approaches to programming. The analogy to teeth, however, is my own.