As of today, exam season is over! So, first of all, congratulations on making it through! Regardless of how they went, they’re over now, and life goes on, and that’s all that matters … so are you ready to do it all over again next year?
Haha, you think, he’s just joking. Second year is totally different to first year. Well yes, but actually no. While the content you’ll be doing is very different, and the workload you’ll be under more significant (see: previous post), I’ve found that you can draw a kind-of connection between the courses you just completed in Part I, and what awaits you in Part II Software. It mostly makes sense. Allow me to explain…
SOFTENG 206 – Software Engineering Design 1: ENGGEN 131 (Fun With Coding Projects)
In Semester 1, I said that the course most like a potential career in software is SOFTENG 251. 206 picks up exactly where it left off, but you do a lot less learning and a lot more doing.
The course is split into two very distinct halves. In the first half, we learnt about the fundamentals of Linux – how to interact with terminals and other things with hackertyper.com-type-energy. At this point, the course is fairly ordinary, just like any other. The second half is an entirely different rodeo – you are grouped with a randomly-selected partner who will work with you on a software project for the next six weeks. This year, the goal was to produce an application that could convert Wikipedia context into multimedia videos and then review them in a way that helped the user learn.
If you remember my last post, you’ll remember that this group project consumed my entire being. It also consumes the entire course. There were about 3 whole lectures of content in the entire second half, before they gave way to “design meetings” that were effectively Q&A sessions with the lecturers about the project.
This project will become the primary focus of your semester. It accounts for 56% of your final mark in 206, so this makes sense. (There’s no exam!) You will spend countless late nights at uni in the labs. You will sweat over countless fragments of code on StackOverflow. And you will have a bloody great time doing it. 206 is stressful, and sometimes you have a little too much freedom, but it’s also so enjoyable because it feels like Real Software Engineer Work. Rather than simply following instructions to calculate a thing that has been calculated a million times before, you really have agency in building something that’s yours. In this way, it’s kind of like the ENGGEN 131 MATLAB and C projects, but with less of an emphasis on figuring out how to technically solve the problem, and more on the design side of things.
(As a final note – if you didn’t excel at ENGGEN 131, that doesn’t mean you’ll do poorly in 206, or in Software in general. 131 isn’t really a great representation of Software as a specialisation. More about that in my next post.)
SOFTENG 211 – Software Engineering Theory: ELECTENG 101 (Oh My God My GPA Is Already Dead)
I heard the ELECTENG 101 exam was pretty hard this year. Firstly, you have my sympathies, because I also messed up that exam last year. Secondly, you’ll love SOFTENG 211. Not because the content is in any way similar at all, but because 211 is a really hard course.
This course is the successor to 250, which kind of explains the difficulty. Where 250 was focused on algorithms and the data structures used by them, 211 is far more conceptual … because it’s a straight-up theoretical mathematics course. Which means everything from proofs to graphs to relations to sets to functions to languages. You will encounter terms like existentation and deterministic finite automata and ꓱxiR ⊈ ꓯxiR and be expected to believe that they actually exist in the English language. And then you’ll need to understand them!
You should be dedicating a lot of extra study time to this course (just like with 250!), especially if you don’t naturally gel with the content. As discussed in my last post, I didn’t – and so exam season preparation was very painful as I had to learn a lot of indigestible content. It isn’t impossible to do well in this course, but success demands a high price.
SOFTENG 254 – Quality Assurance: CHEMMAT 121 (Lots And Lots And Lots And Lots Of Content)
Think of the sheer amount of stuff you had to memorise for the CHEMMAT 121 exam. Goodness, it was like downloading Wikipedia into your brain, wasn’t it? Now, imagine doing that again, but this time you have a journal you can take into the exam with you.
Woah! You can notes into the exam with you? Yep, and as you might figure, writing a good journal is basically the key to success in this course, because there’s so much stuff in it that you’ll be screwed without. What is that stuff, exactly?
That stuff is software quality … which is very distinctly split into two halves. The first half is all about testing – verifying that the software you write is actually good and won’t crash a satellite or a plane (both things that have actually happened, by the way). The second half is more general and broadly covers various aspects of the process of making software, from basic UI modelling to tools such as version control.
Truth be told, I found this course to be quite dry. It was just a lot of stuff that you needed to remember … except that we had a journal, so the journal did the remembering for us. The journal = the Bible. Live it and breathe it.
ENGGEN 204 – Managing Design and Communication: ??? (???)
While ENGGEN 204 is billed in most of the University documentation as a “course”, I’d be more inclined to describe it as an “experience”. While it technically is the direct successor to ENGGEN 115 in first year, this course is the first of the ENGGENs to be run by the Systems Team, led by the venerable Jim and Rob. And it is a very different experience.
This is the second course in this semester to be without an exam, which means two things. The first is that you have more time to study for 211 and write your 254 journal, which is awesome. The second is that the course is assessed through various assignments delivered in your tutorials. The pinnacle of this is the Team Report, which is a 10-person effort to write a report about a given topic with provided material (so no research necessary). This is our first experience with a big group project in engineering, and how well it goes hinges heavily on how you work with that group. (Shoutout to my group, who were all genuinely great.) There’s also a presentation, and an essay about reflecting on reflecting on reflecting on learning. That’s not a typo.
The group project is an experience. Going to lectures is an experience – not only to see your mates in other specialisations again, but also to experience Jim himself. There were also a couple of tests, which are an experience because they’re so weirdly executed, but that might change in the future as it was new to the course this year.
Oh, what was that? What’s the course about? Uh, good question. I think it’s supposed to be about the various things that need to be considered as a manager in Engineering, and the communications skills we use as engineers. Pretty sure that’s what it is. Yep.
Semester 2 kind of feels like “206 and Friends”. The 206 project is all-consuming. It’s a hectic time, but you’ll learn a lot and genuinely enjoy making something as cool as you want it to be. And the other courses, well, they happen. If you have a study-friend-group established from Semester 1 (and you should!), lean on them hard – it’ll make all the late nights much more bearable.
Also, my next post is my final post! You have less than two weeks left to rank your specialisations. Should software be on your list? I’ll talk about the reasons why it should be, and why it maybe shouldn’t be. In the meantime, enjoy the holidays – you made it!