software: a semester one review + tips >:) !!

Hello hello everyone, welcome back to another post \( ΛΆΛ†α—œΛ†Λ΅ )/

Seeing that my memory of semester one is slowly fading, what better time to write about it and let you guys know my take on the first half of the year! Hopefully, I can provide an impression of my experience of each course and any tips or advice going into next year if you choose software as your spec 🀝.

Looking back at semester one, I think of how much of a whirlwind it was πŸ’€. As for first impressions, it was definitely a much more significant step up from the first-year courses in terms of difficulty of content and time commitment, especially if your first experience with programming was ENGGEN131. That being said, overall, it was a good experience and made me feel like I was well on my way to becoming a real engineer πŸ˜ŠπŸ§‘β€πŸ’»!

Anyway, enough with the introductions, let’s break down each of the courses 😎:

SOFTENG 282:

Unless you are built different πŸ€“, the most challenging course by far was SOFTENG282, our software theory/discrete mathematics course. The content of this course is quite abstract, mainly focusing on things like proofs, relations, functions, graphs, and counting problems. This course’s content is unique in that it relies on thinking outside the box rather than rote-learning equations. Even though I struggled so much learning this course, it is probably one of the more important courses because it challenges how we think and approach problems.

Note: I did NOT take ENGGEN 291, the other software elective, because I didn’t want to do electrical again after the horrors of ELECTENG 101 πŸ’€. I also took SOFTENG282 instead since it was the preliminary (not pre-exquisite but highly recommended) course to take to do SOFTENG284(data structures and algorithms) in semester 2, which is lowkey one of the more important courses in terms of employability πŸ’°.

General tips:

  • Start the assignments early. Usually, the assignments can’t be done at the last minute because they require so much extra time to understand and think through them (but of course, sometimes ChatGPT can help, but that brings me to my next point…)
  • Don’t rely on ChatGPT too much. It can be an amazing tool to guide you if you are really stuck, but remember that the test and final exam are in person, invigilated, and closed book (apart from a shared class appendix). So it’s actually important to apply your brain and try to understand the concepts and how to solve each problem.
  • Have some good friends to discuss course content or assignment questions (of course, while maintaining academic integrity πŸ˜‰).

SOFTENG 281:

On the other hand, my favourite course was SOFTENG 281, where we learned about Java and object-oriented programming β˜•. As a newbie programmer with only experience from ENGGEN 131, I found it a little tricky to get used to all the new syntax and concepts at first. Although I really enjoyed the hands-on learning experience from our assignments and lecture activities, which made things pretty easy to pick up πŸ€—.

This course is definitely one of the most important ones in your journey through the software degree since it lays the foundation of important coding concepts that will be utilised throughout the rest of your degree and beyond 🀯. Valerio and Nasser are also incredibly lovely and well-prepared, making the lectures both enjoyable and valuable for reinforcing core concepts!

General tips:

  • This course is delivered as a flipped classroom, so you will be responsible for viewing the course content on your own time. That being said, the lectures basically cover most of what you need to know anyway through activities and examples, but I think it’s worth reviewing things in your own time to ensure you fully understand the course material 🧠.
  • Again, if you want the most out of this course, refrain from using ChatGPT. ChatGPT can probably do most of the assignments you are given, BUT relying on it means that you will miss out on the experience of learning how to code without relying on it – which you will need to do for the in-person-invigilated tests.
  • Practice, practice, practice πŸ‘πŸ‘πŸ‘ Make sure to do the lecture activities again in your own time to get more exposure to coding. This will help you get used to the syntax without relying on online tools and better prepare you for the tests πŸ’ͺπŸ’―πŸ’―

ENGSCI 211:

Mathematical Modeling 2 (MM2) was pretty chill overall and well-organized and structured, being the extension of MM1. The course covers topics like ODEs, multivariable calculus, data analysis, and linear algebra. Compared to the other courses, it had lots of resources and practice problems (which become increasingly hard to find as you go through university), making it reasonably easy to understand and study. But, because of the sheer amount of content needed to be covered throughout the course, sometimes lectures would feel rushed, so I would need to do many lecture reviews/practice problems to ensure I knew what was going on πŸ€“.

General tips:

  • Just do as many practice problems as you can!
    • Utilise the practice problems booklet. More often than not, the questions will be similar to those that you will find in your assignments, test, and exam.
    • The lecturers for the course changed this year, which caused some of the style of questions to change to the previous years, so re-doing the problems shown in lectures will also be valuable☝️.
  • This is a course shared by your whole engineering cohort, so Ed-Discussion is often pretty helpful with loads of questions asked by your classmates βœ…

COMPSYS 201:

I remember my first thoughts of this course were one: “Why am I doing electrical again 😭 ” and two: “What is the point of this course πŸ’€ (as a software student).” The first half of the course was similar to ELECTENG 101, and if you didn’t really enjoy that course like me, you might have a hard time looking at circuit diagrams again. Although it paved the foundation for the second part of the course on microcontrollers (the ATmega328p – I still have it engrained in my memory). I found this part of the course much more enjoyable than the first half, perhaps because it was more calculation-based. I must say, though, that the teaching staff (Maryam and Kevin) care about this course and your success, which made the course a much more enjoyable experience.

General tips:

  • The lab quizzes are lowkey brutal – unlike ENGSCI 211, which gives you 3 chances, you only have one chance and a shorter amount of time to complete it (so make sure you understand the core concepts of the lab and lecture material). This also relates to my next point:
  • Make sure you understand the concepts well – this goes for other courses as well, but for this course in particular, it is important to “apply-brain” (especially with the circuit design stuff in the first half). This will pay off in assessments where most questions are straightforward if you understand the course content well enough.
  • If you are confused, ask for help, whether through friends, Ed Discussion, or office hours. I remember I was super stuck on one of the assignment questions and walked into Maryam’s office, where she was super helpful and clarified any misunderstandings we had.

The assessments are multichoice, which is a blessing and a curse because it means there are no partial marks, but you have a 1 in 4 chance of choosing a correct answer if you don’t know 🀯.

My top 3 non-study related tips

Aside from the nitty-gritty of each course, my general tip for your first semester in software engineering student is to:

  1. Get to know your cohort and make lots of new friends and connections. You will be with the same group of people for the next three years, so it’s worth getting to know them as soon as possible (who knows… maybe they can help you land a job in the future πŸ˜‰).
  2. Go to lectures in person! This relates to the point above, but attending lectures helps you grow and form a social network. Personally, it also provides me an incentive to get my work done on time and stay on top of things (and time is valuable as an engineering studentβŒ›)
  3. Have fun and breathe 😌 – the semester and workload can get overwhelming. Always allocate time to allow yourself to do something you enjoy – whether it be a game of Valorant with your friends or making yourself a casual cup of coffee.

In general, semester one was pretty smooth sailing, but be prepared to get thrown into the deep end. There will be many things you won’t know, but embrace what you don’t know and do your best πŸ’ͺ !

As a side note, what a hectic week it has been 😿. I have been swamped with projects and assignments, which I will probably cover later in a post about semester two. I also want to cover more topics outside of university, so stay tuned for the next couple of posts. ✨✨

If you have made it this far, thanks for reading, and I hope this was useful to you πŸ™‚

See you next time!

Kimberley ദࡍദി(Λ΅ β€’Μ€ α΄— – Λ΅ ) ✧

Leave a Reply

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