> You haven't really learned the material if you keep making careless mistakes.

In case it's not clear what "careless mistakes" means, this would be something like taking a physics problem where two rigid balls of a given mass and given initial velocity and momentum collide, and correctly carrying out the steps to determine their final velocities, except you forgot to carry a 1 or flipped a sign somewhere along the process.

Given that the student showed his work for each step of the process, I think this can be clearly distinguished from, say, a student who didn't know how to apply the laws of conservation of momentum and energy. I'd agree that it makes sense to take a point off, because there is a correlation between mastery and a lower error rate, but I don't think it makes sense to say "well, you're not perfect, therefore we'll take 20% off your grade for not doing homework".

If you took a bunch of physics university professors and gave them a quiz with 10 problems of roughly that level, how many of them do you think would get perfect scores?

Er, I assumed that the phrase "aced the final" meant "got a perfect score". Was I wrong? If it's more like "got 90+%", then forget everything I said about it.

> How can you divine that a person has mastered the material when they fail every test you can concoct?

Er... you decide that they probably haven't mastered the material? I haven't talked about anyone who fails tests, just those who make a few math mistakes and don't do most of the homework.

> I wouldn't want to hire a person who was so unreliable.

I think there's a lot of time in between high school and becoming a pilot or a surgeon. Once you're pretty close to knowing your career path, it certainly makes sense to practice a lot and lower your error rate a great deal—and if, for some reason, you can't do that, then it would make sense for people to refuse to employ you in that field. However, when students are taking classes in 4 completely separate subjects, and there is no way any career would cover more than 2 of them, then intense practicing is very premature—most of the work would be wasted.

Also, by the way, pilots and surgeons are two examples of professions where your work is direct and has immediate effect, and mistakes can be catastrophic and hard to fix. In fact, it's hard to think of professions that are more extreme in that regard (drivers and other operators of heavy machinery—but airplanes are some of the biggest and most dangerous machinery out there). There are plenty of professions where all your work can be looked over by a peer before it goes into production / otherwise has a real effect. That is a cost, but if you're good enough in other ways, you may more than compensate for it (and I think it is common for sufficiently large tech companies to require peer review for all changes before they go into the master branch, let alone production).[1] So I would say it is inappropriate to apply the standards of pilots and surgeons to all students of all subjects.

[1] Come to think of it, I know two programmers who have some form of dyslexia; one is my coworker and his pull requests are full of typos, the other is a friend and keeps mixing up words. Both of them also spent lots of time studying CS on their own—one focusing on data structures, the other on programming languages—and are quite valuable engineers. They're also fans of programming languages that do advanced compile-time type-checking.