That's super impressive, but there's a niggle. From his site:
> Did you grade the work yourself? Yes.
From my experience of doing CS in college, I think that's a problem.
The difference between what I believe and think I can prove to be correct, and what the professor says is correct, can be painfully stark sometimes. Especially where it comes to more advanced topics where it's easy to make your explanation of a concept sound correct, but contain crucial mistakes that invalidate your answer. Mistakes that only somebody with more intimate knowledge than yourself can spot.
We're talking fundamentals like writing out a proof that some algorithm is O(n^3) and classmates agreeing the proof does look correct, then the professor looking at it, saying "LoL, no. Watch this" and proving that it's O(n).
Not the best example. An algorithm that is O(n) is also O(n^3). If you want a tight bound you should use big theta.
I also think while it might be a bit of an issue for undergrad, by grad school at latest for math at least you should be able to tell the difference between a correct proof and incorrect proof most of the time. Usually I'd expect it after your first/second proof heavy math class (analysis/algebra/etc). Usually when I take math tests I can tell pretty precisely what grade I'll get as I know when I'm writing a proper proof or if I'm just writing for the sake of having some progress. Admittingly, my math interests are biased towards proofs/logic and I've spent time writing proofs in coq.
You're a better mathematician than I am. My experience passing mathematics exams involves a lot of "Ugh I know how this works in principle! Why doesn't it work when I apply it!? #@$%$#%!" I remember one time I was studying Newton's Method and got 5 different results for the same problem. It looked like I was applying the algorithm correctly in all of them, but the algo is very sensitive to small errors in arithmetic.
Hell, even for knowledge based tests, especially oral, I had this problem.
"How does CPU pipeline work?", prof
"blahblahblah", swiz
"Lol you have no idea what you're talking about"
"Argh but that's what your book says!"
"Nu-uh. Look, here"
"Ugghhh I changed one little word!"
"Yeah but that changes the meaning and now your explanation is wrong"
"#@$@#%%!@#"
You know, little details I'd never realize on my own are wrong because I was 80% correct and that sounds correct enough, you can look up details when you need them. But prof is looking for 99.999% correct.
I did not graduate, as you can imagine. But I did get straight A's in coding-based classes. :)
Math is one place where I think it tends to be nice to be pedantic as you are starting to learn a topic. Generally, when I'm unsure of something proof wise it tells me I should re-read all the relevant definitions from that section/chapter. I also generally make it a goal that most important theorems are things I should be able to prove from scratch. Partly because if I can follow the proof well, then I'm less likely to misapply it. Lastly, I like how math has a heavy focus on building upon prior math so I try to review topics from previously taken classes often. I feel that cs classes are much less connected.
> Did you grade the work yourself? Yes.
From my experience of doing CS in college, I think that's a problem.
The difference between what I believe and think I can prove to be correct, and what the professor says is correct, can be painfully stark sometimes. Especially where it comes to more advanced topics where it's easy to make your explanation of a concept sound correct, but contain crucial mistakes that invalidate your answer. Mistakes that only somebody with more intimate knowledge than yourself can spot.
We're talking fundamentals like writing out a proof that some algorithm is O(n^3) and classmates agreeing the proof does look correct, then the professor looking at it, saying "LoL, no. Watch this" and proving that it's O(n).