Live data from Hacker News

Why Don't Schools Teach Debugging?

danluu.com

91–100 of 132 posts

Re: Why Don't Schools Teach Debugging?

#92
post #77

Earlier quoted context omitted.

Print statements for debugging is not necessarily a bad thing: http://www.scott-a-s.com/traces-vs-snapshots/

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.

Re: Why Don't Schools Teach Debugging?

#93
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 acumen, but taking time to figure out the core problem.

Aptly, it often involves debugging the person! Figure out where the chain of thought broke down!

Re: Why Don't Schools Teach Debugging?

#94
post #8

Because it isn't fun or exciting.

One of the best experiences of my engineering career was being on top of a 10-story sensor tower at midnight in a Seattle drizzle trying to get some custom sensor probes attached to a radar to work properly because we were chasing a very elusive but potentially catastrophic failure mode we didn't understand.

Yeah, I'm a little... different.

Re: Why Don't Schools Teach Debugging?

#95

I did an electrical engineering course. Especially with hardware ("welcome to tweak week"), there was a real sink or swim approach. I ended up feeling like it had to do with testability. It's easy to grade a test if you just look for right answers, and mark everything else off. It's easy to grade labs if you just look for the circuit tracking the input frequency. Grading either based on some assessment of how well th…

> It's easy to grade a test if you just look for right answers, and mark everything else off. It's easy to grade labs if you just look for the circuit tracking the input frequency. Grading either based on some assessment of how well the student understands what's actually happening is much, much harder.

The professor I had for Networks and Linear Systems had an interesting approach to that. He developed every test problem such that the input values were small, whole numbers. If you did the problem right, your answers would also be small whole numbers. If you went off into the weeds, you would get really weird answers. That was both a hint to the student that they were barking up the wrong tree and a guide as to where the solution broke down.

Re: Why Don't Schools Teach Debugging?

#96

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…

Not all schools do that, however. Some have weedout classes with 30% or higher failure rates (I'm looking at you GA Tech!). This wasn't just a wakeup call with a C, "Oh, maybe CS isn't for me." It was more, "Here, we threw this course together for the 3rd CS course, we'll poorly introduce terminology and use TAs (some were awesome) who are only one semester ahead of you and terrible teachers. Your next 3 courses, that depend on this, will be much easier and better taught. Good luck!" And then 30% or more would fail.

Re: Why Don't Schools Teach Debugging?

#97
post #38

Earlier quoted context omitted.

That's a common thing I didn't understand about my fellow CS majors. Many of them did not want to become developers and even took pride in the fact that they made it until the final exams without ever having to hand in a single programming assignment they did themselves. Yes, these people have amazing careers in management and consulting ahead. Is this good for the industry? I doubt it. For me, the purpose of a CS co…

Funny, I always thought it the other way around. I struggle whenever I try to teach myself any formal/theoretical stuff because without the aid of a teacher checking my work I'm never sure if I really understand or not. I never had a problem learning programming languages on my own by following examples though.

I think you'll find that in CS, there's often if not always a way to implement or approximate the theory in code. To me, that's the more interesting part, but it requires self-learning because there are very few teachers who can blend theory into practical terms. Like the original EE intuition examples, perhaps it's something you appreciate after 10 years in the field.

Re: Why Don't Schools Teach Debugging?

#98

The short answer is because they're supposed to figure it out themselves. I've been on the teaching staff of CIS 120 and CIS 121 at Penn for five semesters now (the second and third classes in the intro computer science series). Both have units on debugging, both in Eclipse and independently of an IDE. We teach students proper testing fundamentals, how to use the debugger, and how bottom-up design can make debugging…

I agree. Though writing my assignments for a C course was made so much easier thanks to Xcode and the ability to quickly view what's in memory at a breakpoint. Sadly, the course never mentioned debuggers -- likely as a way to weed out students. I suspect this has changed since, but it's up to the prof, so who knows. Part of it is that few profs understand the practical reasons to favour some tools over others -- if you don't write the code day in and day out, you won't know which tools to recommend when. I think maybe there's room for a "practice of programming" course on methodology, tools and open source licensing.

Re: Why Don't Schools Teach Debugging?

#99
post #22

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…

Plenty of people still use ant. It's the path of least resistance where I work since we have a lot of tooling and preexisting code that use it.

As an update Gradle's easier to use Maven is gradually replacing Ant and has its sights on Make next. See Android for example.

Re: Why Don't Schools Teach Debugging?

#100
post #86
post #61

Earlier quoted context omitted.

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…

We aren't asking for vocational training, but for teachers that teach how to think, how to design, how to run experiments, and so on. So many schools (even the 'top' ones) turn out people that cannot do this, and I find it appalling. These things are foundational, they are not vocational. Unfortunately that does in fact meaning having to learn some tools which will become obsolete. So what? I did EE labs, and while r…

[deleted]
Post reply on HN