|
|
|
|
|
by shepherdjerred
638 days ago
|
|
Wow, I thought I was masochistic. What possessed you to take DC and GA (two of the hardest classes) together? I took DC alone and found it manageable if you weren't a perfectionist. Compilers was the most difficult thing I've ever done, though that was mostly due to my own poor time management during phase 3 (generating the intermediate representation). I didn't complete phase 3, so most of my time during phase 4 (emitting MIPS assembly + implementing three register allocation algorithms + optimizations) was catching up. Also, as a note, the very difficult classes like distributed computing and compilers are completely optional (though well worth it IMO). The only very difficult class that's required is graduate algorithms. For those not familiar with OMSCS, there are some class ratings here: https://www.omscentral.com/ |
|
It was a good life experience even though I wound up sacrificing my 4.0 by a few grade points. In hindsight, had I realized how steep the curve would be for DC, I'd have pushed a bit harder to squeeze out a few more test cases, but I was pretty mentally defeated at the time and felt like I'd exhausted all of the ideas I had on the projects multiple times over.
I found DC more difficult than compilers by a wide margin because of the nondeterminism, debugging difficulty and trying to figure out what the test harness was even doing. Compilers involved writing more lines of code, but it was manageable, synchronous greenfield application design.