5 ms·
Serious (non-snarky) question: are projects like this no longer standard fare for undergraduate CS majors? This example is rather comprehensive and well-docume
by ojiikun 14y ago
Serious (non-snarky) question: are projects like this no longer standard fare for undergraduate CS majors? This example is rather comprehensive and well-documented, but is almost spot on what all 50-75 of us had to do for a Junior-level class at Georgia Tech back in 2003 or so.
- robryan 14y agoFrom my personal experience no they aren't, although I would have loved to have gone somewhere where they were.
- jcurbo 14y agoReally depends on your school. I went to a little podunk college (graduated in '02) with a tiny CS department and we did not do anything nearly this complex. You went to a top 10 CS school and did stuff like this. I don't have any real data but I imagine the situation is probably the same these days.
- CaveTech 14y agoI'm a Canadian and we did something exactly like this as well for a junior level class.
- rasmusfabbe 14y ago(Not taken as snarky) I would believe so. I never went to school, but started working when I was in 8th grade. Didn't even learn algebra or any advanced math beyond multiplication, which I have since regret at several occasions. I'm surrounded by amazingly talented computer scientists all day long and we thrive on each others' knowledge. For instance, a mathematician friend of mine once gave me the book "Fermat's Last Theorem" (ISBN 1841157910) which sparked an interest in math, and more so the function that the language of math plays in logic. I would only assume something like this Sol project of mine would be a very good fit in any CS education.
- jarel 14y agoYou are awesome!
- jsolson 14y agoInteresting that you mentioned Georgia Tech (BS '06, MS '09), as I was thinking that it's disappointing that no systems or compilers classes are required anymore. The new Threads curriculum doesn't (or didn't when I last paid attention to it) require anything nearly this complicated. I have a friend who graduated under Threads without having taken CS2200 (Systems and Networks) or ECE2030 (Intro ECE). He's a talented computer scientist, but he's had to learn a lot of the bits of systems that are relevant to his day-to-day work on his own. That said, I feel like this goes beyond anything that was ever strictly "required". The most complicated VM or language related work I had that was in a core class was Olin Shivers's[0] CS3240 (Languages and Computation). That concluded with us building a basic Scheme interpreter in Java. The other work I did on the subject was in specialization or elective classes (or grad school). [0]: To folks who might happen to be at Northeastern, do take any class you can with Olin. He is a fantastic professor, and I can't recommend his classes enough. Favorite class I took at tech, hands down.
- sswezey 14y agoI'm not a fan of the threads program either. It is too easy to not learn any 'hardcore' CS with it. I took Devices and Information Internetworks. Doing some like Media and People (very popular for reasons to be mentioned), you didn't have to take CS2200, CS3251, or ECE2030/1. Granted I didn't take any compilers/VM classes, but I did take several low-level classes as I feel like it's hard to truly understand CS basics without understanding how a computer works from the base up. I think the switch to allowing easier tracks is to get more people interested, but at the cost of a degree which is not truly well rounded.
- jtchang 14y agoAmusing to see other gatech people here on here. I remember taking a systems class as well either 2nd or 3rd year (CS '03). Pretty much exactly what this is implemented all in C. I talk to my other friends at CS schools and lately some of them don't nearly go into as much depth.
- fusiongyro 14y agoI did not have to implement a virtual machine to get my degree at New Mexico Tech, but I did have to write a compiler with an x86 backend, and some Linux drivers. It depends on the school, but Georgia Tech is well known for a reason.
- 10098 14y agoFunny, but no, not everywhere. I did a project like that, though, in my undergrad years, but it wasn't a assignment, just for fun. Instead of doing something like this, they just made us memorize the x86 instructions and their nuances. I shudder every time I think about it.
- okal 14y agoAnother possibility is the non-CS crowd on HN might be bigger than is generally assumed. I'm an ECE undergrad, though the programme at my school skews to EE rather than CS. Our compilers course always felt like an afterthought, with implementation being entirely at the instructors discretion. We mostly just drew a bunch of state diagrams :-)
- praptak 14y agoImplementing a multithreaded VM was part of the semester task to pass Compilers (Warsaw University, 1996.) The VM was a bare bones instruction set plus threading support. The rest of the task was to implement a compiler for a concurrency-supporting language targetting the VM. The most tedious part was implementing a garbage collector on top of the VM (GC was not part of the VM spec) We grumbled a lot about this task :)