Contents
Part Two as a Software Engineer
I remember vividly, sitting in a lecture as semester one drew to a close, feeling overwhelmed – eagerly anticipating the upcoming break, hoping it would bring some much-needed relief. However, come break time, there was still a lingering sense of unease that I couldn’t shake off. I guess stress will always be an inseparable companion in the world of engineering 😔.
Useless monologue aside, let’s discuss the transition from part one to part two 😀! Personally, I have found the jump to be quite immense, presenting its fair share of challenges. In general, the workload is greater, and the amount of resources offered to you is lower. However, upon speaking with others, many are actually finding it much easier. So, it really varies from person to person.
Difficulty wise, I’m hesitant to say that the material itself in part two is inherently any more challenging compared to part one. Instead, you simply cover more information in a shorter time frame, meaning you have less time to digest the content. As such, I’ve found the difficulty stems from the pace, rather than the intrinsic difficulty of the material. Therefore, being able to effectively manage your time becomes even more crucial in order to succeed in part two ⏰!
With that being said, I’d like to take a moment to outline a few things I’ve observed about Part II: | ||
Pros:
|
Neutral:
|
Cons:
|
Semester One Recap
With semester one concluded, I thought it’d be appropriate to discuss courses 👀. Based on what I’ve noticed, semester one courses tend to lean more on the theoretical side, setting the groundwork for semester two. This means that during the first semester, you’ll be building a foundation that has been designed to prepare you for both the theoretical and practical content that is to come.
2023 is pretty much the first year these courses have run in person since the revamp in 2021, so everything did feel a little shakier, especially towards the end. Concerning sem one, we had three core courses and one elective. The majority of students opted for SOFTENG 282 as their elective. If you’re interested, the faculty has kindly provided a planner for all specialisations; the Software planner is linked here.
Disclaimer, the following reviews don’t necessarily reflect the views of my peers or the faculty and are simply my personal opinions! With that said, let’s get straight into it 🚀!
Outline
General Information
- This course can be done in Summer School over 2-3 days, or during Semester Two over a few weeks.
Summary
Seeing as prior bloggers haven’t touched on this course, I thought I’d bring it up. SOFTENG 299, or ENGGEN 299, is a compulsory course undertaken by every budding engineer. This course boils down to a workshop that gives you experience with 3D printing, laser cutting, soldering and much more! Through the aforementioned, you’ll construct a motor. Although the content is not too relevant for Software Engineering, it was a lot of fun!
Outline
Structure
- Two lectures per week (2 hours each)
Assessments:
- Hello Github: 2%
- Copilot Activity: 2%
- Assignment 1: 20%
- Assignment 2: 20%
- Assignment 3: 20%
- Github Usage: 6%
- Code Runner Test (Closed Book): 30%
Software:
- VSCode (Compatible on all platforms)
Teaching Team:
- Course Coordinator: Nasser Giacaman
- Lecturers: Nasser Giacaman, Valerio Terragni, and Partha Roop
Summary
SOFTENG 281 serves as a follow-up from ENGGEN 131. As such, when you think about Software Engineering – this is the course that comes to mind. The course uses Java as its primary language, and is split into three sections:
- Object Orientated Programming,
- Design Patterns, and
- Data Structures
First, you’ll touch on what Git is and how to utilise GitHub. Following, you’ll enter the world of object-oriented programming, where you’ll learn how to write 𝔅𝔢𝔞𝔲𝔱𝔦𝔣𝔲𝔩 ℭ𝔬𝔡𝔢. Design Patterns come up next, which are effectively, tried-and-true solutions to common challenges. Lastly, you’ll touch on some basic algorithms and data structures, allowing you to write more efficient code.
Advice
- Do get familiar with Java syntax – the test being on CodeRunner meant that if your code didn’t compile, you’d get 0 marks. 2023 was the first year that introduced a CodeRunner test, so adjustments will likely be made in the coming years.
- The test is effectively the exam as it is typically on the last day of the semester. It may require you to memorise some design patterns, so you may want to start prepping a little beforehand, as the last couple of weeks are quite hectic.
- The third portion of the course draws on Graph Theory, which SOFTWARE students would have learnt in SOFTENG 282. This leaves COMPSYS and ELECTENG at a slight disadvantage, so it may be worth your time to understand graph properties (Reflexivity, Symmetry, Anti-Symmetry, and Transitivity) beforehand.
Projects
Outline
Structure
- Three lectures per week (1 hour each)
- One tutorial per week (1 hour)
Assessments:
- Assignment 1: 10%
- Assignment 2: 10%
- Assignment 3: 10%
- Test (Closed Book): 25%
- Final Exam (1 A4 Sheet): 45%
Teaching Team:
- Course Coordinator: Meng-Fen Chiang
- Lecturers: Daniel Wilson, and Meng-Fen Chiang
Summary
Get ready to dive into the captivating realm of discrete mathematics! SOFTENG 282, or its CS counterpart, COMPSCI 225, introduces the underlying mathematics behind Computer Science. At its core, the course strongly emphasises mathematical proofs, which gives it a different flavour from high school or engineering maths. Experience in competition and/or olympiad maths will make the course a lot easier. With that said, overall, it’s a challenging but also rewarding course! Discussing problems with friends will pave the way for your success!
Advice
- The assignment questions can be very time-consuming. They’re often a step above what you can expect in a text or exam, so make sure you start early!
- The course ends with combinatorics (permutations & combinations). In the last few weeks, assignments do pile up, so having a decent grasp on these concepts beforehand will make your life a little easier.
Outline
Structure:
- Three lectures per week (1 hour each)
Assessments:
- Basic Skills Quiz: 4%
- Quizzes: 10%
- ODE Assignment: 8%
- Data Analysis Assignment: 8%
- Test 1 (1 A4 Sheet, No Calculator): 10%
- Test 2 (1 A4 Sheet, No Calculator): 10%
- Exam (1 A4 Sheet): 50%
Software:
- MatLab (Compatible on all platforms)
- R and RStudio (Compatible on all platforms)
Teaching Team:
- Course Coordinator: Colin Simpson
- Lecturers: Colin Simpson, Kevin Jia, and Andy Philpott
Summary
ENGSCI 211, as its name suggests, is the direct successor to ENGSCI 111. It’ll be one of the last courses you’ll take with the entire engineering cohort, so be sure to savour the moment! Similar to 111, the concepts covered here will serve as a foundation for many courses to come. 211 is broken into three distinct sections:
- Ordinary Differential Equations,
- Data Analysis, and
- Linear Algebra
In the first section of the course, ENGSCI 211 introduces you to new techniques for solving and transforming ODE’s. With Data Analysis, you’ll delve into methodologies for extracting meaningful insights from data, allowing you to make informed decisions based on that information. Personally, I found this section to be a refreshing change of pace amidst the sometimes lengthy calculations. Lastly, Linear Algebra carries on with matrices from MM1 and introduces the concept of the Fourier Series. Overall, ENGSCI 211 is a straightforward course that builds upon previous knowledge. While most of it did feel quite regurgitative, I will always appreciate a well-taught course.
Advice
- 211 is surprisingly dense; there’s a lot to cover. Fortunately, the coursebook is well-written and an incredible resource for understanding the topics covered.
- A practice problems book is provided; you should complete said problems alongside the content.
Outline
Structure
- Three lectures per week (1 hour each)
- One tutorial per week (1 hour)
- Four labs spread out across the semester (2 hours each)
Assessments:
- Lab + Assignments: 30%
- Test (MCQ, 1 A4 Sheet): 10%
- Exam (MCQ, 1 A4 Sheet): 60%
Software:
- Quartus (Windows Only)
- Microchip Studio (Windows Only)
- Proteus (Windows Only)
(The software does run via Bootcamp or Parallels on Mac)
Teaching Team:
- Course Coordinator: Kevin Wang
- Lecturers: Kevin Wang, and Maryam Hemmati
Summary
COMPSYS 201 is a hardware paper. As a software engineer, delving into the world of hardware and understanding why everything works is often underappreciated. You’ll notice some of the content was addressed in ELECTENG 101 (Boolean Algebra and Number Systems). However, most of it is brand new!
The course is divided into two sections:
- Computer Engineering, and
- Embedded Systems.
Whereas the former introduces you to many new components at the hardware level, the latter covers low-level C programming, where a strong focus is placed on understanding the ATMega328P microcontroller.
Advice
- I found the first half of the course to be a fair bit more challenging than the second. Consulting the recommended textbook did help me understand many of the concepts in greater detail.
- The tutorial questions in the first half of the course are quite poorly written and lack specificity; they’re good to do, but aren’t as relevant for the test and exam.
- The labs don’t necessarily have to be done during your allocated time slot. You can complete them beforehand and simply just get yourself checked off. The solutions for each lab are pretty much provided to you – as such, you may have to spend some time understanding the concepts in them as there is an accompanying quiz afterwards.
Lab Software
All things considered, semester one was great! I had the opportunity to meet so many amazing new people and engage in various exciting extracurricular activities. However, I must admit, I’m also quite thankful that it has come to an end.
I hope I’ve managed to give you a friendly glimpse into the ups and downs of Software. Critiques and suggestions, comment below!
到下次见!
– Victor