SOFTENG Wrapped 2025

And just like that, it’s already Week 12 of Semester Two, which means classes are finishing up (for the year!), we’re heading into the second exam season, and this is my final post on the Part II blog.

I thought what better way to celebrate than do a big recap of the year that has been, Spotify Wrapped-style! For each course I took this year, I will describe my experience with a song, along with my top 5 topics and ranking of lecturers in a flashy graphic. For those who prefer to read, I will also give a short summary on the course and my overall thoughts.

It goes without saying, these are my personal opinions on these courses. Your experience may be different, and also note that courses do change from year-to-year.

ENGSCI 211 (Mathematical Modelling 2)

MM2, or known by its legal name Mathematical Modelling 2, is not a particularly difficult course. It’s the continuation of ENGSCI 111, and follows a similar structure going through a variety of mathematical topics with weekly quizzes. The coursebook is good; there are lots of practice problems to help you study for tests/exams. It’s straightforward, taken by all engineering students and liked by many. It does move quite quickly and there is a lot of content, but as long as you keep on top of the lectures you should do well. As a software engineering student, I did not find it to be the most relevant course (compared to other specialisations), but I enjoyed it nonetheless.

SOFTENG 281 (Object-Oriented Programming)

This course is a software engineer’s bread and butter. It introduces the Java programming language (commonly used in the industry!) and fundamental object-oriented programming concepts such as classes and interfaces. It also introduces industry-standard tools Visual Studio Code (a code editor) and Git (for keeping track of changes to your code). The second half of the course teaches some basics on data structures and algorithms, which you’ll learn more about in SOFTENG 284 in semester two. There’s a helpful website for all the course content/learning resources. You get a lot of time to work on the assignments, and the tests are done on CodeRunner. If you’ve done OOP before, you’ll have no issues with this course, and even if you haven’t it’s quite easy and a great way to learn.

Fun fact: the second test was nearly cancelled due to a uni network outage.

COMPSYS 201 (Introduction to Computer Engineering)

COMPSYS 201 picks up where ELECTENG 101 left off in the digital circuits section and builds on boolean algebra and multiplexers, introducing new circuits like adders, shifters and encoders. The second half of the course is about microcontrollers, specifically the ATmega328p (which you will be quite familiar with by the end). This section is not difficult, there’s just a bunch of stuff to memorise and some simple C code to program the microcontroller. My main annoyances with this course were the four 9am labs and the lab quizzes, which you only get 30 minutes to complete. The exam is closed-book, and this year was mostly multiple-choice with a small long-answer section worth 30% of the exam. Multiple-choice exams are a blessing and a curse – I missed a couple easy multi-choice questions due to misinterpretation, but thankfully I made up for it in the long-answer questions.

SOFTENG 282 (Software Engineering Theory)

This is the discrete mathematics course and the most challenging course of the semester. Picture this: the day before the first assignment was due, the entire class stayed to ask the lecturer questions after the lecture. (Don’t worry, we made it in the end and got a good average mark)

Many of the concepts in this course are actually quite simple, but the formal definitions can be tricky to understand and apply. Despite that, I enjoyed this course and found the content quite interesting. It’s technically an elective, but pretty much all Software students take this course instead of ELECTENG 291. I highly recommend this course, it is a great way to get to know your Software cohort better. It also provides helpful background knowledge for SOFTENG 284 in Semester Two.

We didn’t get many study resources in this course, so YouTube is your best friend. ChatGPT can help with some topics, but can also be completely wrong on others. You may have heard about something called Test Advice, I don’t know the probability of receiving it, but I can confirm it is real and was certainly helpful advice.

ENGGEN 204 (Professional Skills, Communication, and Collaboration)

This course is the spiritual successor to ENGGEN 140 (and some parts of ENGGEN 115), diving into ethics, communication and teamwork skills. This is only the start of the ENGGEN professional development sequence, leading up to ENGGEN 303 and ENGGEN 403. (Did you see flocks of part IV students around campus in week 9? That’s called systems week, a week-long project in groups of 30-40. Anyway, that’s a topic for another day.) All the assignments in this course are group projects, so your randomly-assigned team is an important factor on your grades. Get to know your teammates and try to have fun, it’ll make the course more enjoyable and easier for everyone. It can be tempting to put this course on the back burner, just make sure your team is onto it and doesn’t miss deadlines. Even a little work from each team member goes a long way.

SOFTENG 206 (Software Engineering Design)

SOFTENG 206 is like the software version of ENGGEN 115. You work on a project throughout the semester, split into three stages: Alpha, Beta, and Final. You develop the Alpha version independently, then get a randomly assigned team with whom you’ll work on the Beta and Final versions, adding additional features/changes based on the client (lecturer) feedback. There are lectures in the first few weeks covering JavaFX (a library for building GUIs using Java), then the lectures become design meetings where you can ask the clients questions about what they are looking for in the project. This year, the project was an AI decision-making ethics simulation, where you talk to characters in a courtroom (powered by ChatGPT) to decide whether the defendant is guilty. It was about as interesting as it sounds, but there was a lot of freedom to explore different creative UI designs.

SOFTENG 283 (Software Quality Assurance)

It might not be the most exciting course, but I found the content rather interesting and useful, and it has given me new tools and ways of designing and developing software. This course looks at how software is developed, first at specifying requirements- how do you know exactly what software needs to be built? It moves onto development methodologies like Agile- how is the development process run and managed? In the second half, we learn about testing and different ways to reduce bugs and maintain functional code. In terms of workload, it’s one of the easier courses this year, with two group assignments, two individual assignments, two in-person Canvas quizzes, and no exam. Each week, there is a 2-hour lecture and a 1-hour lecture, but the 2-hour lectures usually only take less than half the time allocated. There are also frequent Kahoot quizzes during lectures.

*At the time of publishing (25 Oct), we still have not received our Quiz 1 marks. The quiz was on 27 Aug.

SOFTENG 284 (Data Structures and Algorithms)

This course looks at data structures and algorithms at a fundamental level. SOFTENG 282 is not a prerequisite (CompSys students can also take this course), but 284 builds on knowledge from that course, such as mathematical proofs and graphs. First, you learn about time complexity (an important concept that’s not the easiest to understand), then different sorting algorithms such as selection, merge and quick sort. There are a few weeks about calculating running time and hashing, then in the second half, you learn about graph traversal. It’s the most difficult course this semester with the most content to learn, but at least for me it’s a nice change of pace from group projects. There are eight weekly coding assignments in Python, which are basically Leetcode problems, ranging from basic implementations of data structures and algorithms to Leetcode Hard-level questions. There is a test and an exam that are both multiple-choice.

SOFTENG 299 (Workshop Motor Practice)

Ah, SOFTENG 299. I enjoyed this course until like the last two hours of it.

First, you complete three Digital Tools sessions in the city campus: 3D printing (where you load pre-existing 3D models onto a 3D printer), laser cutting (where you load a template file to cut/engrave a piece of clear acrylic), and soldering (as someone who had never soldered before, this was my favourite. Soldering was satisfyingly fun and made me feel skilled). After completing these three sessions, you go to the Newmarket campus workshop to bend sheet metal and coil copper wire into an electromagnet. Once you have all your individual components, it’s time to assemble them all together.

I had alignment issues with my 3D printed parts which led me to spend a long time trying to get them to fit. In the end, I just got replacement parts. This was entirely user error, but some of my previous wire connections came undone, so I had to fix them with more soldering. Once I had everything together, the motor wouldn’t even start spinning. After much trial and error and spending even more time, I got it to work. While it was above the passing speed, it was well below the target of 1000RPM. I ended up spending 7 hours straight at the Newmarket campus for a barely functioning motor. Hopefully your experience will be much better than mine. I was very tired by the end and just happy to be done.


And that’s a wrap! Listen to the Spotify playlist for SOFTENG Wrapped here:

Leave a Reply

Your email address will not be published. Required fields are marked *