When I was an undergraduate (i took Computer System & data communication major), one of the assignment requirement was to design an SIC/XE (link: http://tinyurl.com/3fyxjc8) simulator machine. Basically I’ve to understand how a microcomputer works by studying the SIC machine architecture, implementing the register understanding its opcode, etc.
The final outcome was the SIC/XE simulator written in C language which I was able to come out in a few days of spending time in front of computer. I compiled it with gcc, and it happily runs all of my opcodes and instructions.
In another assignment, I (and the rest of the class) are required to study BNF about a quarter of the semester, and we had to come up with an assembler for that particular simulator. Basically we have to create a fully working/executable assembler that spits out object code to be executed with the SIC/XE Simulator.
In short, we have to built a working computer simulator, and an assembler to enables programmer to write a program and executes it on that particular simulator in a course of one semester, and to me.. it is still a lightweight.
oh yeah, in another assignment I was tasked to write my own substitution/transposition cipher and integrates it with Java JCE and its cracker based on differential analysis. of course it only represent only 10% of the whole marks of the course.
And when we spoke about multimedia, we really mean about drawing a straight line in 3-d space by using spatial drawing algorithm and how to use OpenGL (in C) effectively to generate a computer representation of whatever object that the lecturer had just shown us. and the object must be interactive and must be accompanied with sound effect (thanks to libSDL - http://libsdl.org/ ).
Knowledge of actual physics and linear algebra, advanced calculus and numerical methods are a must, because you won’t be able to create a body in 3D space without those math shits. advance calculus helps you with handling the volume of the model. linear algebra, well.. helps you to get the model aligned within 3d space, vector and physics helps you to get around the environment within opengl without looking like a complete idiot.because you need to code stuffs in lines of C first without the benefits of seeing the output in a WYSIWYG environment until the point of compilation and running the actual code.
Kids nowadays grumble when they got an assignment that *only* requires them to use Java/PHP language to create a part of login system which implements basic (built-in!) hashing, which to me is completely doable under 15minutes with the benefit of the internet and free codes lying around.
Moreover there are several cases of Final Year Degree Project (FYP) that only requires a student to put together a mobile based web registration system using XHTML (and probably with PHP as the back-end) — they complained that the task was damn “too hard”….. which in my opinion is not suiteable at all to be a degree-level FYP (and it can be completely done under one week!)
Well, back in my days, those FYP examples aren’t even qualified for a class project that worth more than 5% of the semesters’ grade and those who aren’t capable in interpreting TCP/UDP packets or those who are not been able to do network programming will be having hard time graduating from the degree program (duh, its about Data Communication!)
Is the standards going down?