Wanna hear something crazy?
There are 2-ish weeks left of Semester 2. TWO WEEKS.
Hearing this definitely made me wonder where the rest of my semester has gone. I thought mid-sem break was just a week ago? Regardless, we’re more than halfway through semester two and I figured I have enough experience to make a decent review of this semester’s courses!
Note: I’m currently in the middle of doing these courses, so I won’t have anything to say on the difficulty of exams. :<
ENGGEN 204 – professional skills and communication
In comes the older brother of ENGGEN 115, ENGGEN 204. This compulsory course essentially teaches you how to be a good engineer. This includes teaching you skills in problem analysis and collaborating in teams! Most of the assignments in this course are done with a large group (eight people), and you’re stuck with them for the rest of the semester. You end up doing reports and presentations with your group. Being in a good group makes or breaks your experience with this course, so I highly recommend mass signing up to the same tutorial with people you trust. If you’re like me and still don’t end up being in a group with the one other person you signed up with, have no fear! The feedback I’ve heard from friends have been more positive than not – you might have to adjust the way you work depending on your group. On the bright side, you get to work with students who might not be from your specialisation, so that’s pretty cool! Overall, I’d rate it an 8/10 :’)
SOFTENG 206 – software engineering design
I have a love-hate relationship with this also compulsory course. SOFTENG 206 introduces you to BASH programming in Linux, which I really didn’t know was a thing. Just as I thought I was getting used to BASH, you get thrown into some new Java things (JavaFX specifically). To be honest, this was pretty cool! I actually got to make something that doesn’t just output to console! You can add buttons, and labels, and all the other cool scenes – actual user interface/user experience things if you’re interested in that. In the first two assignments, I think Google played a significant part in my cohort’s success. SOFTENG 206 also features a programming group assignment! I ended up being with a bunch of strangers – even though many people got into groups with their friends – but it’s been really fun working with them. :> (They paid me to say this, so #ad.) In all seriousness, coding as part of a group has been enjoyable and challenging. My group of 3 literally almost do everything with pair programming. So, imagine coding alone when you’re code’s not working. Frustrating, right? Now imagine two other people judging you’re every move. :’) Thankfully, they’re really nice, and we just bond over the errors that end up appearing. Very very fun :DD
For the lack of an exam, fun group assignments, and super kind lecturers, I would rate this course a 9.5/10. :DD
SOFTENG 284 – data structures and algorithms
Okay, this gave me big SOFTENG 282 vibes. Some of the content taught here was actually covered in the SOFTENG282 elective from semester one (refer to the previous blog post!). However, I’ve found that I’m still learning quite a lot from it – especially data structures, which is pretty important! Companies, when hiring software engineers, typically have a technical interview component to the hiring process. 284 would be particularly helpful for those. Pretty important to actually understand what’s happening in this course, in my opinion. There’s a LOT to learn. If you thought an array was the only type of data structure you needed, well, think again. This elective highlights the importance of building code right and also building fast code.
In terms of assessments, the course structure of 284 is pretty similar to 282: assignments + tests + big exam. For me, I’ve found lectures a little hard to understand (as I’m literally learning things as they’re presented to me), so the tutorials have been really helpful for solidifying my understanding. As I’ve recommended in the previous blog post, put in the extra effort (possibly even read the coursebook) to completely understand what’s being taught :’)
SOFTENG 283 – software quality assurance
Don’t you hate it when your code doesn’t work? Well, now you can learn all about how to make sure your code does what it’s supposed to do! Not only does SOFTENG 283 teach you how to build code right (testing, good coding practices, etc.), it also teaches you how to build the right code – the latter being especially interesting to me as I’ve never thought about it before. This compulsory course highlights all my bad habits when it comes to programming (like too many comments – which I didn’t know was a thing), and is also pretty fun! As you can see from the photo, in-person lectures allowed us to do some pretty fun activities, thanks to our lecturer, Kelly, who’s actually the sweetest. SOFTENG 283 simulates somewhat what it’s like to build software for a client – focusing more on what they need rather than what they think they want – helping me realise that software engineering is about solving problems for the user. Not about me :’)
For course structure, it’s pretty typical: assignments, tests + exam. There is one group assignment where you actually get to pick who you’re in a group with (which was honestly kinda terrifying) so make sure you pick the right people. I was very lucky and had a group that was actually on it. <3
This course is great overall, but I might be biased because I would rate any course a solid 9/10 if they featured Kahoot’s.
Semester two went by way too quickly, and maybe that’s because I was forced to spend most of my days in my room. I can’t believe I’ll be moving on to my third year in a couple months when I still feel like a first year who didn’t know anything about programming. I know exams are coming up, so I hope that the grind has been healthy and actually happening. Let me know in the comments if there’s anything, in particular, you want to know about software, and I might just cover it in the next post! Stay safe <3