Contents
Preamble
It’s quite strange, isn’t it? Just like that, and the year is almost over… When you least expect it to, time really does fly by fast ✈️. Weekly crisis aside, how has semester two of Software Engineering been? Well, it’s definitely quite different compared to semester one! As a prevailing pattern in Engineering curricula, group work becomes inevitable at some point, and in this regard, semester two undeniably takes the lead. This semester has been both group and project-heavy, which presents its own array of rewarding moments and challenges. Nevertheless, akin to semester one, I’ve definitely been pushed beyond the confines of my comfort zone, and that is something I have come to appreciate so much!
Semester Two Recap
One thing I’ve noticed this year is that I’ve almost fully transitioned into typing my notes instead. Should a cheat sheet be allowed in an exam, I’ve found that I no longer have the time to necessarily hand-write one from scratch. Turns out, you can do a lot with tables and text boxes in Microsoft Word…
Tangent aside, let’s discuss courses! As I mentioned earlier, semester two is project-heavy, and as such, there are far fewer exams compared to semester one. You’ll also notice that this semester is very practical, where you’ll start to appreciate the theoretical underpinnings you were taught in semester one 😊.
Outline
Structure
- Two lectures per week (2 hours each)
Assessments:
- Alpha (INDIVIDUAL): 30%
- Beta (GROUP): 15%
- Final (GROUP): 35%
- Report: 12%
- Reflection: 3%
Teaching Team:
- Course Coordinator: Nasser Giacaman
- Lecturers: Nasser Giacaman, Valerio Terragni
Summary
SOFTENG 206 is very much the Software Engineering course. For many, it’ll be the first time you’ll be writing code that doesn’t just show in the command line, but actually has a graphical interface! You’ll be using Java in addition to JavaFX, and although they may not be the flashiest technologies, they are good enough to help you understand how to construct a GUI application, and gives a good base for learning something more current.
The course is split into three distinct stages:
- Alpha: Each year, the theme changes, however in 2023, we were tasked to create an escape room game with ChatGPT integration. By the end of alpha, you’ll have completed a functional piece of software!
- Beta: At this stage, you’ll be randomly assigned into a group of three, with an updated set of requirements. Collaborating with your group members, you’ll embark on the journey of crafting a more refined and feature rich version of Alpha.
- Final: Here, you will add the final touches to your project.
The course runs via design meetings, where many lectures will revolve around asking the clients/the lecturers questions on the specific topic. Many consider this course to be the most similar to industry experience.
Advice
- Project work often gives you a lot of time, as such, the deadline can often feel a long way ahead. As such, most of the responsibility for getting things done will be on you. Trying to refine things the way you want it can be incredibly time-consuming, so plan ahead from the get go, and start early! The workload of this course is almost entirely up to how much effort you want to put into the course.
- Your applications should be platform-independent. Consider testing them on various OSs, either through a virtual machine or by asking friends with different OS’s.
- Collaborative coding may be initially daunting (it was for me!), especially if you’re anxious about others looking over your code every step of the way. However, with time, you’ll realise that we’re all in the same boat, bonding over the struggles we encounter.
Project’s
Outline
Structure
- Three lectures per week (1 hour each)
- One tutorial per week (1 hour)
Assessments:
- Assignment 1 (Written + Coding): 10%
- Assignment 2 (Coding): 10%
- Assignment 3 (Written + Coding): 10%
- Test (Closed Book): 30%
- Exam (Online): 40%
Teaching Team:
- Course Coordinator: Meng-Fen Chiang
- Lecturers: Rajko Nenadov, Meng-Fen Chiang
Summary
SOFTENG 284 is the sister course to SOFTENG 282. Although SOFTENG 282 is not a prerequisite, knowledge of this course will help you understand some of the more quirkier parts of SOFTENG 284. That said, this course formally introduces you to Data Structures and Algorithms, a fundamental part of Computer Science, and is what is often tested in technical interviews.
The course is broken down into two distinct sections:
- Data Structures and Sorting Algorithms
- Graph Traversal Algorithms
In the first half, you’ll look into Big O, Theta and Omega notation, as well as how to analyse algorithm complexity. Algorithm complexity in essence is a way to measure how long an algorithm/piece of code would take to run given an input size. Personally, I thought this was a lot of fun. Next, you’ll explore a range of sorting algorithms, including Selection, Insertion, Merge, Quick, Counting, Radix, and Heap Sort. Essentially, sorting algorithms organise values, such as those in an array, in specific sequences like ascending or descending order. Subsequently, you’ll dive into data structures like Linked Lists, Dynamic Arrays, Binary Search Trees, Priority Queues, and Hash Maps. At their core, data structures are methods to store data, much like an array.
In the second half, you’ll look at all sorts of graph traversal algorithms. Representing problems using vertices and edges, most of which utilising Breadth First Search and Depth First Search. Think of graph traversal algorithms as the backbone of systems like Google Maps (quickest route to get from point A to B), enabling systematic exploration and searching through all nodes in a graph.
Advice
- This course for many will be the most challenging of the bunch. As such, I do recommend looking into some of the topics ahead of time, as there’s a lot to cover, and not so much time to digest the content.
- The test didn’t allow you to bring in a cheatsheet, which meant for most, memorising enough to recall how certain algorithms or data structures work was a necessity – and should be done as soon as possible.
- The first half of the course is taught by Rajko. Having had extensive experience in both academia and industry (worked at Google!) a lot of his explanations I found were often better than those you’d find online!
- Coding problems are run through a platform called AutoMarker, where there is a queue system. Leaving assignments to the end may mean you have very little opportunity to see whether your solution was correct or within the time limit.
- The exam for next year most likely will not be online.
Outline
Structure
- Two lectures per week (2 hours, and 1 hour)
Assessments:
- Assignment 1 (Git Assignment): 14.5%
- Assignment 2 (Report): 14.5%
- Assignment 3 (Writing Test Cases): 14.5%
- Readings: 5%
- Test (Online): 7.5%
- Exam (Online): 44%
Teaching Team:
- Course Coordinator: James Tizard
- Lecturers: James Tizard, Paramvir Singh
Summary
SOFTENG 283 is all about software quality assurance. You’ll touch on more things to do with Git and Github. Furthermore, you’ll also be looking into the design process of how an application comes to fruition.
The course is broken down into two parts:
- Git and Requirements Engineering
- Testing
The first half looks at Git more closely. It also looks into the idea of user testing, and what questions to ask clients when developing a new project. The second half touches on writing test cases for your code. How and what to write, what to target. Unexpectedly, it brings in some interesting graph concepts from SOFTENG 282 – however nothing difficult is touched. The course also looks at the idea of code smells (common patterns in poor code).
If I had to describe 283, I would say it shares similarities with 115, however with a Software spin to it. You do get to choose your groups throughout the course (1 assignment), and for better or worse, Kahoots also exist. It’s a bit of a fluffy course that runs on common sense, however, the information contained in the course is still worthwhile to be aware of.
Advice
- At least in 2023, the first half of the lectures ran for around 30 min. However in the second half, the course would run for the full 2 hours and 1 hour time slots they had – so don’t be caught off guard come the second half of the semester!
- It does come across that very little effort has been put into this course, where assignments often lacked a lot of specificity, but perhaps that may change in the future.
Outline
Structure
- Two lectures per week (1 hour each)
- One compulsory tutorial (1 hour)
Assessments:
- Team Charter: 2%
- Video Assignment: 14%
- Team Presentation: 14%
- Team Report: 20%
- Tutorial Attendance: 12%
- Peer Reviews: 6%
- Peer Marking: 11%
- 4 Quizzes/Tests: 15% for three, 6% for one
Teaching Team:
- Course Coordinator: Amanda Di lenno
- Lecturers: Ashvin Thambyah, Meng Wai Woo, Reza Arjmandi, Marc Lewis, Hasini Wijayaratne, Scylla Sundheim, Amanda Di lenno
Summary
ENGGEN 204 kind of serves as a follow-up from ENGGEN 115. You’ll be put into a group of eight immediately, and tutorials are effectively compulsory. This course is taken by all specialisations, where there is an emphasis on group work and communication. Most of the assignments are project based such as a Video Assignment, Team Presentation, and Team Report. Strangely enough, this course is run by the CHEMMAT department, which did give the lectures a lot of charm. That said, most agree that your enjoyment of this course is almost entirely based on your group…
Advice
- There are four quizzes throughout the semester which effectively serve as tests. The slides provided for lectures are often short, as such, many of the answers are verbally spoken, meaning looking through Panopto transcripts could be worthwhile when doing the quiz.
- Lecture attendance is often in the single digits. I did end up attending the majority of them, but do I recommend going, probably not.
- If you do end up in a less than ideal group, none of the assignments in 204 are large enough that they can’t be done individually. You would still need team members to record lines for a video, and stand up for a presentation, but it is mostly solo-able should it come down to it…
- You will be presented with the opportunity to review your teammates on a scale from 1 to 5, potentially resulting in group members receiving a grade higher or lower than the group grade. At best, however, cumulatively, you’ll only be able to gain about an extra 1-2% of your overall grade though.
Assignments
What I will conclude with is that semester two has felt a lot lighter compared to semester one, which has given most of us more time for self-study, extracurriculars, and internship hunting! It hasn’t been a semester without challenges though. Thankfully, I’m constantly reminded that we’re not facing these challenges alone!
다음에 만나요!
– Victor