Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I liked the approach Cambridge took for computer science (at least while I was there). Practical assessments:

* Year 1, term 1: ML, on a Windows machine, using Cambridge ML (for the practicals; the actual course, Foundations of Computer Science, used any Standard ML and recommended Moscow ML)

* Year 1, term 2: Java, on a Linux machine[1], using javac; Eclipse was introduced in another course

* Year 2, term 1: Further Java, on a Linux machine, using Eclipse, Verilog on a Windows machine with a DE2 Board, MIPS assembler using a soft processor (same board) plus one or both of:

* * C/C++, non-compiler specific, no recommended IDE/editor, must run against gcc -std=c99 -Wall --pedantic sourcefile.c or g++ -std=c++98 -Wall --pedantic sourcefile.cc (your choice) with no warnings

* * Prolog, on a Linux machine, using SWI-Prolog

* Year 2, term 2: Group project - group's choice (we used C on an Arm mBed board in whatever IDE that came with and Java in Eclipse)

Everything else (the bulk of the course) was either abstract/theoretical or used you/your supervisors' choice of tools - courses used a varying mix of pseudocode/ML/Java/C where useful, but you didn't necessarily have to use them outside of the lectures and there were no practical exams on these (someone I knew used Haskell for his group project and dissertation, and for testing concepts in supervisions).

The idea was to make you comfortable with the fundamentals and moving between technologies, and not be reliant on any particular set of tools. IMO, the contrasting concepts (Windows vs. Linux; functional vs. object-oriented; high-level vs. low-level; hardware vs. software) did this rather successfully. It didn't necessarily get you completely fluent in any particular language (you were largely expected to do this in your own time if it was a direction you wanted to pursue), but it did prepare you for jumping into pretty much any language/environment and getting up to speed quickly.

(There were also digital electronics and physics practicals in the first year, but they're a bit of a different thing)

[1] It gave you enough bash to run javac and manipulate files. There was a follow-up course the next year that went into a bit more depth on shell, and introduced make/Perl/LaTeX/MATLAB.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: