Why don’t schools teach debugging, or, more fundamentally, fundamentals?

If you find this piece worthwhile, consider the Go Fund Me that’s funding ongoing cancer care.

A story from Dan Luu, from back when he “TA’ed EE 202, a second year class on signals and systems at Purdue:”

When I suggested to the professor that he spend half an hour reviewing algebra for those students who never had the material covered cogently in high school, I was told in no uncertain terms that it would be a waste of time because some people just can’t hack it in engineering. I was told that I wouldn’t be so naive once the semester was done, because some people just can’t hack it in engineering.

This matches my experiences: when I was a first-year grad student in English,[1] my advisor was complaining about his students not knowing how to use commas, and I made a suggestion very similar to Luu’s: “Why not teach commas?” His reasoning was slightly different from “some people just can’t hack it in engineering,” in that he thought students should’ve learned comma usage in high school. I argued that, while he might be right in theory, if the students don’t know how to use commas, he ought to teach them how. He looked at me like I was a little dim and said “no.” 

I thought and still think he’s wrong.

If a person doesn’t know fundamentals of a given field, and particularly if a larger group doesn’t, teach those fundamentals.[2] I’ve taught commas and semicolons to students almost every semester I’ve taught in college, and it’s neither time consuming nor hard. A lot of the students appreciate it and say no one has ever stopped to do so. 

Usually I ask, when the first or second draft of their paper is due for peer editing, that students write down four major comma rules and a sample sentence showcasing each. I’m looking for something like: connecting two independent clauses (aka complete sentences) with a coordinating conjunction (like “and” or “or”), offsetting a dependent word, clause, or phase (“When John picked up the knife, …”), as a parenthetical (sometimes called “appositives” for reasons not obvious to me but probably having something to do with Latin), and lists. Students often know about lists (“John went to the store and bought mango, avocado, and shrimp”), but the other three elude them.

I don’t obsess with the way the rules are phrased and if the student has gotten the gist of the idea, that’s sufficient. They write for a few minutes, then I walk around and look at their answers and offer a bit of individual feedback. Ideally, I have some chocolate and give the winner or sometimes winners a treat. After, we go over the rules as a class. I repeat this three times, for each major paper. Students sometimes come up with funny example sentences. The goal is to rapidly learn and recall the material, then move on. There aren’t formal grades or punishments, but most students try in part because they know I’m coming around to read their answers.

We do semicolons, too—they’re used to conjoin related independent clauses without a coordinating conjunction, or to separate complex lists. I’ll use an example sentence of unrelated independent clauses like “I went to the grocery store; there is no god.”

I tell students that, once they know comma rules, they can break them, as I did in the previous paragraph. I don’t get into smaller, less important comma rules, which are covered by whatever book I assign students, like Write Right!.

Humanities classes almost never teach editing, either, which I find bizarre. I suspect that editing is to debugging as writing is to programming (or hardware design): essential. I usually teach editing at the sentence level, by collecting example sentences from student journals, then putting them on the board and asking students: “what would you do with this sentence, and why?” I walk around to read answers and offer brief feedback or tips. These are, to my mind, fundamental skills. Sentences I’ve used in the past include ones like this, regarding a chapter from Alain de Botton’s novel On Love: “Revealed in ‘Marxism,’ those who are satisfying a desire are not experiencing love rather they are using the concept to give themselves a purpose.” Or: “Contrast is something that most people find most intriguing.” These sentences are representative of the ones first- and second-year undergrads tend to produce at first.

I showed Bess an early version of this essay, and it turns out she had experiences similar to Luu’s, but at Arizona State University (ASU):

My O-chem professor was teaching us all something new, but he told me to quit when I didn’t just understand it immediately and was struggling. He had daily office hours, and I was determined to figure out the material, so I kept showing up. He wanted to appear helpful, but then acted resentful when I asked questions, “wasting his time” with topics from which he’d already moved on, and which I “should already understand”.

He suggested I drop the class, because “O-Chem is just too much for some people.” When I got the second-highest grade in the class two semesters in a row, he refused to write me a letter of recommendation because it had been so hard for me to initially grasp the material, despite the fact that I now thought fluently in it. My need for extra assistance to grasp the basics somehow overshadowed the fact that I became adept, and eventually offered tutoring for the course (where I hope I was kinder and more helpful to students than he was).

Regarding Bess’s organic chemistry story, I’m reminded of a section from David Epstein’s book Range: How Generalists Triumph in a Specialized World. In his chapter “Learning, Fast and Slow” Epstein writes that “for learning that is both durable (it sticks) and flexible (it can be applied broadly), fast and easy is precisely the problem” (85). Instead, it’s important to encounter “desirable difficulties,” or “obstacles that make learning more challenging, slower, and more frustrating in the short term, but better in the long term.” According to Epstein, students like Bess are often the ones who master the material and go on to be able to apply it. How many students has that professor foolishly discouraged? Has he ever read Range? Maybe he should.

Bess went on:  

Dan’s story also reminds me of an attending doctor in my emergency medicine program; she judged residents on what they already knew and thought negatively of ones who, like me, asked a bunch of questions. But how else are you supposed to learn? This woman (I’m tempted to use a less-nice word) considered a good resident one who’d either already been taught the information during medical school, or, more likely, pretended to know it.

She saw the desire to learn and be taught—the point of a medical residency— as an inconvenience (hers) and a weakness (ours). Residency should be about gaining a firm foundation in an environment ostensibly about education, but turns out it’s really about cheap labor, posturing, and also some education where you can pick it up off the floor. When I see hospitals claiming that residency is about education, not work, I laugh. Everyone knows that argument is bullshit.    

We can and should do a better job of teaching fundamentals, though I don’t see a lot of incentive to do so in formal settings. In most K – 12 public schools, after one to three years most teachers can’t effectively be fired, due to union rules, so the incentive to be good, let alone great, is weak. In universities, a lot of professors are, as I noted earlier, hired for research, not teaching. It’s possible that, as charter schools spread, we’ll see more experimentation and improvement at the ˚K –12 level. At the college and graduate school level, I’d love to see more efforts at instructional and institutional experimentation and diversity, but apart from the University of Austin, Minerva, the Thiel Fellowship, and a few other efforts, the teaching business is business-as-usual.

Moreover, there’s an important quirk of the college system: Congress and the Department of Education have outsourced the credentialing of colleges and universities to regional accreditation bodies. Harvard, for example, is accredited by “The New England Association of Schools and Colleges (NEASC).” But guess who makes up the regional accreditation bodies? Existing colleges and universities. How excited are existing colleges and universities to allow new competitors? Exactly. The term for this is “cartel.” This point is near top-of-mind because Marc Andreessen and Ben Horowitz emphasized it on their recent podcast regarding the crises of higher education. If you want a lot more, their podcast is good.

Unfortunately, my notions of what’s important in teaching don’t matter much any more because it’s unlikely I’ll ever teach again, given that I no longer have a tongue  and am consequently difficult to understand. I really liked (and still like!) teaching, but doing it as an adjunct making $3 – $4k / class has been unwise for many years and is even more unwise given how short time is for me right now. Plus, the likelihood of me living out the year is not high.   

In terms of trying to facilitate change and better practices, I also don’t know where, if at all, people teaching writing congregate online. Maybe they don’t congregate anywhere, so it’s hard to try and engage large numbers of instructors.

Tyler Cowen has a theory, expounded in various podcasts I’ve heard him on, that better teachers are really here to inspire students—which is true regarding both formal and informal education. Part of inspiration is, in my view, being able to rapidly traverse the knowledge space and figure out whatever the learner needs.

Until we perfect neural chips that can download the entirety of human knowledge to the fetal cortex while still in utero, no one springs from the womb knowing everything. In some areas you’ll always be a beginner. Competence, let alone mastery, starts with desire and basics.

If you’ve gotten this far, consider the Go Fund Me that’s funding ongoing care.


[1] Going to grad school in general is a bad idea; going in any humanities discipline is a horribly bad idea, but I did it, and am now a cautionary tale for having done it.

[2] Schools like Purdue also overwhelmingly select faculty on the basis of research and grantsmanship, not teaching, so it’s possible that the instructors don’t care at all. Not every researcher is a Feynman, to put it lightly.

8 responses

  1. Thanks for writing this up. It reminds me of conversations I had with my dad, who also teaches intro-level college English and Journalism (as an adjunct) and heard from many of his students that they had never been thought the formal rules of grammar before.

    In addition I’m one of the people who has never had shame in asking questions, yet have often found that I am judged for my initial ignorance more than for my ultimate understanding.

    Finally, I intend to bring debugging back! I have this crazy belief that I can bring the fundamentals of code literacy to everyone at once by stopping and taking the time to teach my tools the mind-numbingly boring basics, just as I have learned them.

    Liked by 1 person

  2. Jake, your observations and anecdotes hit the mark and the issue appears to be far deeper at a structural level. Since I graduated high school, I’ve been working on my degree, I’m now 20 years after the fact, and these roadblocks an gate-keeping you mention are endemic and systemic. Its actually gotten to a level where the material tested is not reflective of skill. For example, I attempted Mechanics of Solids 9 times, I aced the lab without issue after the first 3 attempts, but failed the tests along with 90% of the rest of the class. This spanned 8 different professors, across multiple colleges and college districts. The test in these cases was structured in a way that no person could rationally complete it without inside knowledge of the test beforehand (academic honesty). In detail, there were 3 questions, it would take multiple steps for each question, and the 2nd question would depend on the correct answer to the first, the 3rd on the second, at the time I was unable to verbalize how this was unfair (fraud), I have since learned. The system property of causality skews distributions so you can only get the 3rd question wrong for any test. This acts as a filter. In the case of physics where significant digits play a role, normally you would round only at the end of the problem to prevent propagation of error, but linked problems like implement a undisclosed and inconsistent variation on this rule. So the only people who pass, are the ones who have been told by the professor in private, or the ones that have violated academic honesty policies. This also occurs in other classes with mismatched subject matter where the subject matter tested doesn’t match the material provided (i.e. you are tested on material you never saw or were taught), and other fraudulent ways such as invalid inference (i.e. two correct answers and one undisclosed more correct). I’ve been around to the community colleges and state colleges and this is nearly everywhere more times then nought. They don’t do these things at private and Ivy league schools.

    Regarding the fundamentals, I had a similar issue with Trigonometry where the grading methodology was changed between two progressive classes. If you followed the method and showed your work in earlier classes you would pass even if you got the incorrect answer, and suddenly without notice sometimes two classes down the line the answer matters. This has happened with so much frequency that it appears to be by design. Teachers that teach fundamentals are pressured into retiring, those that don’t do so to benefit themselves because they aren’t paid enough to make the extra effort (a structural issue, per Ludwig Mises on corruption, socialism, and bureacracy).

    A system is what that system does, not what people hope it is. Trends point to the actions taken by the majority of people in that system.

    At the point that a system hasn’t changed in any meaningful way to correct issues for over a generation (20 years), and in fact has only worsened, its safe to say its doing exactly what the people involved in the system want (forever students sold a fraud) as opposed to what they claim (investment in the future).

    Its a perfect example of how socialism fails, because socialism structurally by element is the same as any bureaucracy. You have a bad element that has taken over academia and no one has the power to stop them.

    I still don’t have a degree, the only reason I can reasonably communicate this is because I’m self taught from good resources (ocw.mit.edu has been invaluable).

    The problem isn’t a local issue. The the problem is systemic, and its metastasized to the point that colleges as superior places of learning academic institutions, have lost all credibility they once had. When fraud and counterparty risk is rampant and unpunished, there’s no good reason to put money into it.

    Yes there is an appeals process, its completely broken with regards to fulfilling due process. In fact the Chair and Dean are often in it together. There’s no obligation to investigate, or correct complaints. They see any investigation as promoting an adversarial environment with co-workers. More recently, I had an economics professor who taught every microeconomics course in the county at every college (10+ sections), the lectures were links to Khan academy, Pearson had an autograder that was used, and he only showed up to office hours. The material was mismatched, Pearson added additional fraud onto things, the professor refused to correct errors brought to their attention, and no action was taken. This escalated to the Chair, and Dean. Radio silence. 10 years ago same process same outcome. Dean wouldn’t take action because they viewed the professor as having seniority.

    Several semesters later this professor is still the only teacher teaching this material, the failure rate is extremely high but they won’t release the numbers, and they don’t track repetitions. This willful unadulterated fraud, is why people are giving up on education, and its a top down problem. If these criminals were removed and not allowed to be re-hired we wouldn’t have this issue. Corruption and graft are the norm.

    Liked by 1 person

  3. I teach undergraduate and graduate computer science at a liberal arts college. Debugging, in the technical sense, is identifying that something didn’t work, figuring out why it didn’t work, and how to correct it. Debugging, which is also known as troubleshooting, is a skill we teach at a fundamental level, then the students must build on this foundation to solve more sophisticated problems. By the time a student is accepted into college and declares a major, it is assumed that they have learned sufficient mathematical and scientific knowledge to further progress in their chosen major. In most cases, the semesters are barely enough time to cover the required material and there is little time for teaching something that students should already know.

    Like

    • “the semesters are barely enough time to cover the required material and there is little time for teaching something that students should already know.”

      Which sounds like a recipe for just the problems Luu is describing. And probably the kinds of experiences Bess had.

      Like

    • William, System’s Engineering in IT Operations is my chosen profession. I had gone through a number of Computer Science courses before dropping out of the computer science program and attempting the Physics Engineering route that I previously mentioned before giving up on that finally and just trying to get any degree (which was setback as well with the additional requirements of DEI Cultural Marxist re-education curricula requirement being forced on all students).

      As I previously said its been over a 2-decade investment with no forward progress aside from what I’ve been able to do outside academia (self-study). During the latter half I worked professionally in IT while tackling the degree.

      I’d like to point out that Troubleshooting is never actually taught, it is assumed that one knows how to troubleshoot, and there is no previous exposure to this in K-12 curricula prior to college in any way that would provide any rigorous or correct approach. You don’t learn this in math class.

      You either know intuitively a process that works without being able to explain, or you don’t (it worked or it didn’t, and you didn’t know why as a student). That’s how it is for nearly everyone.

      I ended up having to teach myself, and it never really clicked until after having taken both a system’s and signals course in the EE program, working through Oppenheim’s book, alongside a compiler design course (dragon book).

      This is where that fundamental material is. Half of it is not even included in a computer science degree curricula; its in EE/Computer Engineering. The other half had to be gotten from the Dragon book, which let me tell you is a challeng read to teach yourself from.

      The rigor comes from being able to tell upfront with no time-investment whether you can troubleshoot a technical problem effectively. Most people use troubleshooting and debugging interchangeably with guess and check, but this isn’t included in troubleshooting because its simply comparing expectations which spins your wheels. Its not scientific or rigorous, you can’t make any valid inferences from it other than working as expected or not working, and that only means something when certain system’s properties are present. If you don’t know that those properties are present or have a contradiction, no valid inferences can be made with a guess and check approach for all problem domains. Its a document, guess, and check.

      The correct approach is to look and test for the system’s properties required by computers to function, and know what their fundamental limitations are (from the automata theory in dragon book) coupled with structure.

      This in most cases ends up being system’s properties in time invariance, and determinism, but may also be impacted and include ‘memory’ systems properties as well depending on the interconnected systems.

      This isn’t taught anywhere, as far as I know except at the signal domain (Electrical Engineering), and non-determinism and failures in time invariance (without the ability to flush any caches) account for the vast majority of problems seen both at the hardware signal domain level, and further up the stack at the software level in IT.

      These fundamental failures (system’s properties missing) are also largely not recognized or downplayed as often not being a problem even to professionals who supposedly got their CS degree. They still mark it as wontfix such as happened with ldd on linux (2016) which introduces non-determinism onto the pipe. It breaks any automation where the tools result is passed to, until you patch the software to fix the output of the overloaded tokens (to preserve that 1:1 relationship required for determinism, one of those errors is the null token or absence of data in a column).

      Personally, I find it absolutely galling when people make pigheaded claims that its expected you should know fundamental material which is never taught.

      As a student who has put themselves through every course of their education out of their own hard-earned money without parental support, that’s the same as saying;
      “I’ve stolen your money because my predecessor didn’t do their job. I by design didn’t provide enough information so you could determine this before the cutoff withdraw date. Too bad, you should have known, , and there’s nothing you can do about it…”.

      This strong opinion is to be expected when one is subjected to what amounts to a 20-year struggle-session of fraud where everyone that had the pre-requisite knowledge to correct the issue just punts the problem further down the hill instead of addressing the fundamental issues caused by their predecessors in the same profession. Not all teachers are bad like this, but as I previously said; its endemic and in some areas its gotten to the point where one teacher front-of-line blocks all students coming down an academic path unless they violate academic honesty policies.

      Students coming into college have no idea how computers work or why they function the way they do. This isn’t covered anywhere, even in an AP CompSci in HS.

      It requires a hybrid approach from EE->CS, and until those students get that exposure, they simply view it as magical, and learn by rote; and don’t remember after graduating.

      Computers aren’t magical and there are problems computers can’t solve.

      Liked by 1 person

  4. I’ll be blunt but you’ve kind of hit on the answer. They don’t teach that because the big universities (the R1’s) don’t even want to be in the education business. They’re in the research business and undergrad education is something they do on the side because they have to for some reason. At least the impression I got from my university was they thought their priorities were as follows.

    One was definitely research/scholarship. Find the guy who is the lead in his field, most publication, etc. Even things like being a leading philosopher or historian is something that would catch their eye.

    Two and three I’m not sure of the order. Just to clarify they are “finding the next generation of researchers ” and “Public policy/outreach.” The first one is pretty much “grad education” which isn’t really education but figuring out who has the knack for being a professor. If you can’t get the hell out. The other is being the go to for when a politician needs to figure out what he should vote for or when a news program needs an expert to explain something in the news. The university wants either of those to come to their university. However once you got beyond those 3 they were totally about undergrad education and it showed. (Mostly because my university didn’t have a huge endowment. If they did it would be job #1)
    Just so you understand why I’m so insanely jaded I can tell you about my first semester there taking physics for physics majors. I took 2 tests to figure out what physics I should take and when. The first one was a physic test which pretty much just repeatedly checked to see if you knew newton’s first law. I did so I aced it. The second was a calc test. Well I had taken calc as a junior in high school, it wasn’t taught very well so I did poorly on that test. So they told me to take the freshman physics that had calc as pre-req. In theory I should have been told to wait since the class was largely an applied calc course and made no sense without knowing calc first but I followed the recommendation of the faculty who btw was a physics professor. That did not go well at all. (I got a D. Admittedly I managed to get full credit on one exam question which very few people managed to pull off) What I figure is that the professor told me to do that because he was just looking for the next generation of physics professors and if I could have passed with that handicap I’d probably be a leading candidate to be one. Also since there’s way more physics Phds than jobs as physics professors for them if I burned out it was no loss for them. (I did take physics 1 & 2 when I was in my 30s but that time I made sure I knew calculus. I got A’s in that.)

    Liked by 1 person

  5. Perhaps the sequence with which the teacher learned stuff differed from how younger students do. Also, certain skills seem less critical today than they seemed to be decades ago. To use the punctuation example, a lot of punctuation is autocorrected, and basically students just need to run the grammar/punctuation checker.

    That said, I used the latest and greatest version of MS Word recently and was surprised at how often I end up overruling MS Word because the rule it was applying didn’t need to be applied for this situation. (i.e., false positive).

    At one level we should defer to the teacher as to the optimal sequence to teach things. But one age group can skip certain topics for various reasons during their education. At least with editing, there is a fairly finite number of situations to go through (contrast that with debugging, which might have all kinds of different troubleshooting scenarios). I think of the covid years — I’m sure teachers had to hurry past some learning objectives so that they could get to others which seemed more pressing.

    Liked by 1 person

  6. Interesting. I’m much more used to seeing the opposite claim: that universities are increasingly spending time teaching basic skills that students should already know, and that this can use up most of the first year just getting them ready to start undergrad material, so, to cover the same amount of material in total, they have to study for more years, exacerbating the red queen’s race where students spend more time and money to achieve the same outcome.
    Are you saying that this isn’t happening, or that it is happening but should happen more?

    Liked by 1 person

Leave a comment