Advanced Programming
(required course for Software Development)Really just ‘More programming’. Concurrency, distributed systems, couple of design patterns, Git, boom. Zooms out from single Java classes into design and interaction. Good hearty stuff.
Instructor: Engaging, competent, approachable.
Inherent interest: Medium
Slides: Good, digressive.
Assessments: Midterm exam, but with questions detailed a week beforehand. 30%
Marking: Easy
Algorithms and Data Structures
(required course for Software Development)There is something profound going on here. Sadly not much is asked of us.
Instructor: Wry, competent. Was handed responsibility for it one week before term.
Inherent interest: Medium
Slides: Exhaustive, thus repetitive.
Assessments: Two small pieces of brain-tickling code: a spell checker and an abstract heterogeneous Relation. 30%
Marking: Medium.
+ Elective: Cyber Security
Lectures are poor and the maths not well-developed. But content is of a remarkable variety and tastiness: we cover all the traditional ciphers, ENIGMA, information theory, modular and polynomial arithmetic, pseudo-randoms, Feistel’s DES and AES, public key infrastructure including RSA and Diffie-Helman (with a tiny detour into NP-completeness), the death of Chip-and-PIN, basic web architecture, Kerberos, why anti-piracy fails, Bell-LaPadula secrecy. Pretty up-to-date, too, with Heartbleed, SHA-3, and DUAL_EC_DBRG, PRISM.
Instructor: Phoned-in.
Inherent interest: High
Slides: Long but not self-sufficient.
Assessments: get to brute force and time-memory trade-off attack some shiz. (mine was a Calvin and Hobbes quotation). 2: cursory essay on security standards. 20%
Marking: Fair (by which I mean strict)
+ Elective: Human-Computer Interaction
Chose it because it had no exam.
Instructor: Imperious, jolly, worrying.
Inherent interest:Low
Slides: None. None needed.
Assessments: Whole course is one pretend-to-be-an academic exercise involving GUI design. 100%
Marking: Fair (by which I mean strict)
Requisite: Software Engineering
Once again, the courses with 'engineering' in the title offer the least rigour and the least intellectual content. (This is a judgment on the department, not on engineers.) Only set text in the programme that you actually need to read, and it’s a good’un: Mythical Man-Month.
Instructor: Cheery, nervous, ok.
Inherent interest:Low
Slides: Detailed enough.
Assessments: Nice variety – UML, a blogpost. 30%
Marking: Fair (by which I mean strict)
+ Elective: Safety Critical Systems
A lot of work but possibly the best course. See here.