Live data from Hacker News

Why Don't Schools Teach Debugging?

danluu.com

101–110 of 132 posts

Re: Why Don't Schools Teach Debugging?

#101
post #75

I’m no great teacher, but I was able to get all but one of the office hour regulars up to speed over the course of the semester. The first part of the sentence is in direct contradiction to the second part. If you did that, it means you had patience, were willing to explain, re-explain, and find alternative ways to explain. And you cared .

So much truth here. Especially the fact that you cared. As someone who had his share of poor TAs and was a TA, caring is what sets apart the good teachers from the poor ones. Taking the time to sit and figure out the fundamental misunderstanding and then a good way around it is essential. It may look obvious to you, but the other person is obviously lost. The only way to solve that isn't by special power or teaching…

Yes, very much. It requires a deep understanding of the material, empathy, and abstract thinking.

You need a deep understanding of the material, obviously. You need to have a model of the correct thing in your head. The empathy bit comes in from first caring, but also being able to quiz the student's understanding so you can start to understand what the (incorrect) model is in their head.

Then you need to figure out how to build a bridge between their model, and the correct one. And you may need to build multiple bridges if the first one doesn't take.

Re: Why Don't Schools Teach Debugging?

#102

The author mentions the answer in the first paragraph: ECE 352 was the weedout class that would be responsible for much of the damage. Weed out courses are common in undergraduate education. In some disciplines the logic is plausible because the resources available for upper division undergraduates are limited and vast numbers of Freshmen choose the track. The first year biology sequence is a good example. The proble…

If every professor feels compelled to thwart the admissions policies by failing an inordinate number of students, either the university should re-think its admissions policies, or the professors should find other work.

Re: Why Don't Schools Teach Debugging?

#103
Okay real life example....

In Mobile Operating systems the application lifecycle and the OS application system sandbox collide to give you this nice Jaberwoky of output in a debug, for example Android...

They way I did Id was use some example Android Apps to learn what the normal android OS would show in a debug output as far as the OS components themselves start up the android OS and than the application..

I can always look at logcat and see where things are hanging and just know where to look in my code because of what OS components I see reporting in

Re: Why Don't Schools Teach Debugging?

#104

The author mentions the answer in the first paragraph: ECE 352 was the weedout class that would be responsible for much of the damage. Weed out courses are common in undergraduate education. In some disciplines the logic is plausible because the resources available for upper division undergraduates are limited and vast numbers of Freshmen choose the track. The first year biology sequence is a good example. The proble…

> The problem is that weed out classes substitute the easier task of deciding who is prepared for the harder task of preparing students. I don't think this is the intent, at least in some disciplines. For example, I minored in math and went through the weedout class. It wasn't intentionally difficult (for some it wasn't even difficult). It weeded people out because it was the first class where you actually learn what…

The difference is that in the math class, what sent people away was not a lack of success but a lack of interest. The people who remained at least found the idea of performing proofs better than a sharp stick in the eyey. In the author's class a person could be interested and passionate about coding and not succeed and a person who felt that a few hours solving a homework was a lot of time spent coding could.

Re: Why Don't Schools Teach Debugging?

#105
post #61

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

CS prof. here. We don't want to teach "tools" (e.g. IDE) because they are always changing. There is no point is knowing how to set up an IDE when the IDE will have a different GUI before the student graduates. We teach"unix tools" a bit more because they did not change much during the last decades. My goal is to teach "concepts" (which is hard) and use tools as examples of these concepts. Dealing with the specifics o…

I'm so glad you replied!

I've heard versions of what you've said hundreds of times and honestly, you academics are missing the point!

Yes, the particular tool you learn will become obsolete, but debugging between Eclipse, gdb, Visual Studio etc. is all basically the same. The knowledge you get is transferrable, just like they have a head start if you teach them C++ and they end up in a Java shop.

Teach them tools that are going to be obsolete! Stop worrying about that.

You have no idea how much time your students are wasting hitting their heads against walls that shouldn't exist trying to debug their crappy code instead of actually working on understanding the underlying concepts. I'd say it's a 9 to 10 ratio of brain-numbing debugging to actual concept implementation.

I really strongly encourage you to set up your students with IDEs. Have a few seminars on how to set up a Visual Studio environment, and how to debug a large codebase. It abstracts a lot of the fluff that stands between them and the underlying concepts. The command line and its tools are great in the right context, but you're making the barrier to entry a lot larger than it needs to be. You can transition to command line tools in more advanced courses, but don't hamper their learning from the get-go.

Re: Why Don't Schools Teach Debugging?

#106
post #51

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

>They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. Despite what you (and a lot developers that I've talked to) seem to think, CS is a hard science. However, CS and software development are not the same thing. Most CS programs are taught by professors who have resea…

"CS is a hard science"

Hahaha. As someone who did a degree in physics, computer "science" is a joke when it comes to math. They took one of the easiest field of mathematics and rolled it in to a half-assed degree. Sure you learn some logic and some graph theory (yeah, lets try to avoid numbers as much as possible...) but it's not at a very high level. I seriously doubt CS professors are making significant contributions to mathematics.

"there is a fundamental disconnect between what you seem to think you should be learning and what is actually being taught"

Yeah. That was the point of what I wrote. There is also a disconnect between what academia wants to teach, and the tools that the students need to actually learn the concepts.

It's like teaching an Literature class without actually teaching people how to write. Code is our primary tool for expressing algorithms and concepts. If you hamper people's ability to write code, you are shooting yourself in the foot.

Re: Why Don't Schools Teach Debugging?

#107
post #90
post #79

Earlier quoted context omitted.

Who the heck went through a CS degree without using version control? We used it from day 1 until graduation and you didn't get credit if you didn't use version control, even on your projects you did yourself. How does one do group projects in school without version control? Git didn't exist when I was in school either.

If by 'version control' you mean 'delete and resubmit zip files into Moodle' then sure... my courses use version control... >How does one do group projects in school without version control? Dropbox. If you're lucky. Otherwise, attaching files through gmail. FWIW I wish Git were part of my curriculum. I also wish the Java curriculum included Android. You gotta take what they give I guess.

I'm old. Dropbox did NOT exist when I was in school. Neither did Gmail...

> If by 'version control' you mean 'delete and resubmit zip files into Moodle' then sure... my courses use version control...

No I meant real version control. When I started CVS was standard.

Re: Why Don't Schools Teach Debugging?

#108
post #92

Earlier quoted context omitted.

Agreed! In the same vein, I recently wrote about both debugging vs logging [1] and about session-based logging [2]. [1] http://henrikwarne.com/2014/01/01/finding-bugs-debugger-vers... [2] http://henrikwarne.com/2014/01/21/session-based-logging/

Neat, we hit on many of the same points.

Yep!

Re: Why Don't Schools Teach Debugging?

#109
post #61

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

CS prof. here. We don't want to teach "tools" (e.g. IDE) because they are always changing. There is no point is knowing how to set up an IDE when the IDE will have a different GUI before the student graduates. We teach"unix tools" a bit more because they did not change much during the last decades. My goal is to teach "concepts" (which is hard) and use tools as examples of these concepts. Dealing with the specifics o…

I learned absolutely nothing from having to use horrid unix tools like gdb in college. The focus on unix tools, in my opinion, seriously degrades the ability of students to learn and unfortunately cements very very bad usability paradigms in their minds.

I learned a ton by debugging things on my Mac using Turbo Pascal, Think C, and even, when absolutely necessary, MacsBug. Those are all obsolete today, but it was well worth learning the skills regardless of the tool.

That said, we were also taught very little about debugging in class. I learned it all on my own (with help from friends). Most of my fellow graduates seriously didn't know how to set a breakpoint and step through code at the end of their college days.

Re: Why Don't Schools Teach Debugging?

#110
post #107
post #90

Earlier quoted context omitted.

If by 'version control' you mean 'delete and resubmit zip files into Moodle' then sure... my courses use version control... >How does one do group projects in school without version control? Dropbox. If you're lucky. Otherwise, attaching files through gmail. FWIW I wish Git were part of my curriculum. I also wish the Java curriculum included Android. You gotta take what they give I guess.

I'm old. Dropbox did NOT exist when I was in school. Neither did Gmail... > If by 'version control' you mean 'delete and resubmit zip files into Moodle' then sure... my courses use version control... No I meant real version control. When I started CVS was standard.

If it helps, the last time I was in a CS class before this current iteration (more or less to improve my career options) we were playing around with DOSSHELL and Turtle Graphics.
Post reply on HN