Your phone dings – it’s a message from your mate. “Where are you?” You step off of your bus and bump into a friend on Symonds Street. “I haven’t seen you in months!” You scamper to your 8am ELECTENG 101 lecture, one minute late. “You must go to the overflow room.”
Or maybe none of those things happen because you don’t have any friends. The point is, it’s probably the type of thing you’ve heard a lot this semester – “where are we supposed to study?” The Leech is gone, and with it, our sense of belonging. Of self-worth. Of home.
But you know what isn’t gone? The four papers you sit as a 2nd year software engineering student! What do they involve? What are they like? Do they contain gluten? Find out in this handy review of last semester’s courses below, complete with metaphorical comparisons with study spaces. (It’s long, but I promise I’ve made it somewhat entertaining.)
They’ve also been listed in order of relevance to your potential future career…
SOFTENG 251 – Object-Oriented Software Construction: The New Engineering Building (in two months)
If somebody were to ask me, “what does a software engineer do?”, and I could pick only one paper out of these four to represent an answer, this course would be it. To be clear, what you learn in this course is just scratching the surface of a software engineer’s career – but it immediately feels like the right kind of work. It’s really less of a scratch and more of a deep, thick gouge, during which you will be crash-coursed in the ways of Java and object-oriented design. Emphasis on the word design – the focus is less on building more complicated things, and more on how to build those things in a better way. But don’t mistake that description for that of a theory course. This course is very practical, with plenty of labs and assignments that immediately get you knees-deep into code. The second half of the course is about design patterns and GUI, with a project that will follow you across multiple labs and assignments and develops into a fully-formed piece of software.
This course is everything you imagine software engineering to be, just like how the new Engineering building is everything we imagine the University’s facilities are. Well, will be, once the building is actually finished.
I should probably have mentioned that this is the only paper this semester in which we actually write code as a significant part of it. So what are the other courses like?
SOFTENG 250 – Introduction to Data Structures and Algorithms: IC4
Air is air. It has no flavour, no feeling, no emotion. Yet somehow, when you walk into IC4, you can feel the air get thicker, tenser, more anxious. As if every minute of study you pull in this place will matter to any hopes you have of a future. It does to the people in this place studying biomed … and it does to you studying SOFTENG 250. Because this course is hard.
The course description leads with “this is a challenging course…” … and that tells you all you need to know. The first lecture was probably the most intimidating I’ve ever had at uni, as we dived straight into “warm-up” content that really felt like the 30th kilometre of a marathon. (If you’re curious – it’s the “Stable marriage problem” on Wikipedia, although this course really gave me more of a “Stable GPA problem”.) This course barrels through about 20+ algorithms for all kinds of applications, from sorting stored data to finding efficient navigation paths. As we covered each algorithm, we also learnt various data structures along the way – what worked best for different needs, what caused things to run faster or slower, and so on.
This course is tough. You will need to dedicate extra study time to this course, and you may feel that at times the hours are going unrewarded. But if you put in enough work, the concepts do start to connect, and typically once you figure out one algorithm, a couple become much clearer to go with it.
(Also, make friends with your tutor and attend all of their office hours – the extra explanation time is absolutely necessary.)
COMPSYS 201 – Fundamentals of Computer Engineering: UG4
When you start second year, you learn about a small little lab called “301-1062”. Okay, nobody calls it that. It’s called “UG4”, and at first, you may wonder why people spend any time there. Who needs uni lab computers when you have your own laptop, and you can find more people in the Leech? But as the semester rolls on, you might find yourself in there more and more. Sure, it’s not the Home of Engineers, but it has its own uses and its own atmosphere that you appreciate. Eventually, you might even study there every single day. This reflects how I felt about COMPSYS 201.
This paper is a common paper with Electrical and Computer Systems, so you’ll see more than just the same 100 people milling about every class. We started by revising a bunch of second half ELECTENG 101 content – which is useful if you forgot it all like I did, but also makes you wonder, “why are we doing this class?”. Eventually we moved onto to logic circuit design, which kind of went over my head at first; and then onto coding for FPGAs and microprocessors – wait! Did you just say “coding”? Yes! But the coding in 201 is very different from your typical software program, especially the FPGA stuff, which runs a language called VHDL. This language is more of a descriptor of real physical circuits – and in the real world, these circuits run so fast that everything happens all at once rather than in order. So it was very different (and kind of trippy).
This difference is what made me appreciate this course more as we got further into it. Unless you choose to do more of this side of things via electives (or if you just do compsys, which is a great specialisation), you may not use these skills again later in your degree. But it’s important to remember that software actually runs on stuff, and learning about that stuff is a welcome break from the rest of your degree, while still feeling relevant.
ENGSCI 211 – Mathematical Modelling 2: The Leech
Oh, the Leech. It was everything a study space needed to be – large enough to hold hundreds of engineers, a universal meeting place for all your friends, and weirdly smelly. Okay, well it didn’t need to be smelly, but the point is that now it’s kind of tiny, not a place you can reliably find anyone, and still weirdly smelly. Damn.
ENGSCI 211 reminds me of this study space, because to software engineers, it used to be something different. It used to be ENGSCI 213SE – a specialised course that dropped the multivariate calculus in exchange for more linear algebra, which was supposed to be more useful for our specialisation. This year, the course was folded into the common 211 – which means a rare chance to see some of your old first year mates in class, but also a reintroduction of that supposedly “less useful” content.
Truthfully, I don’t know how much of either course would be more useful for a software development career. What I do know is that there were many points during the semester when I felt that I wouldn’t need what I was learning six months from now. This isn’t a slight on the course itself, which is really well taught and run, but more a reflection on how software engineers don’t even take ENGSCI 311 in third year.
If you enjoy maths, you’ll love this course. If you don’t (like me) you’ll still enjoy the course, but it’ll be challenging. Either way, it unfortunately doesn’t feel like a landmark part of the specialisation (although it still counts towards your GPA, so don’t slack off on it!).
In conclusion, Semester 1 was definitely no walk in the park. At this stage it really becomes about time in = results out, so if you put in the yards you will get something back. I’d definitely recommend forming a good group of friends to study with, because nothing develops a good bond like a good cry, I mean struggle. And don’t feel that this means that uni will be the only thing that fits in your life next year – I’ll discuss that more next time!