COMP2521 - Data Structures and Algorithms
Difficulty: 7/10 · Time Commitment: 5/10 · Enjoyability: 7/10 · Mark: 90
I did COMP2521 (Data Structures and Algorithms) in Term 3 2021. The subject is a continuation of COMP1511 and, as the name of the course suggests, it covers some basic data structures and algorithms that underpin computer science. It is an essential course in the computer science degree progression as it is a prerequisite for almost every 2nd year COMP course.
- Very interesting content
- Well structured course with a detailed progression of topics
- Picks up very well from COMP1511 (has topics to cover the code gap between COMP1511 and this course)
- The lectures didn’t cover enough content to properly complete assignments
- There was not enough support for assignments and weekly quizzes
COMP2521 had lots of time consuming content when I did it, including 2 assignments, weekly labs, weekly quizzes and an exam. The main topics covered were trees (binary, AVL, 2-3-4), graphs (including directed and weighted graphs), breadth first search and depth first search, hash tables and sorting algorithms. This course builds upon everything taught in COMP1511 and is very good at explaining concepts that weren’t really covered in the prior courses.
COMP2521 is a hit or miss depending on the lecturer taking the course. Some lectures spend much more time breaking down content so that it is easy to understand and supplemented well by the assigments. There is a freely available set of lectures for this course from a good lecturer in this playlist. I would recommend just watching these as opposed to other lecturers’ live lectures and would only watch live lectures when they cover topics like assignments and the finals.
Labs and Quizzes
Labs for this course can get very time consuming and tedious, and unlike many of the previous courses I have done, it was almost impossible to work out how to do some of the labs without watching the lectures and learning the content properly. The labs have a lot of subjective marking as well as automarking, and subjective marking covers both the efficiency of your code and style marks. Because of this, it is a good idea to try to think of different ways to approach each question with techniques learnt during that week.
Weekly quizzes are probably the worst part of this course because the questions are often badly worded or unintuitive and don’t really do much except highlight potentially weak points in your understanding of specific topics (however, there are only 4-8 questions per week so it isn’t enough to actually quiz you). I recommend leaving quizzes to the end of the week so that you have the entire week to learn the content before attempting the quiz.
Tutes in this course are essential to attend because in the 2-hour lab block, marks and feedback are given out for the previous lab. I found tutorials for this course to actually be really helpful and there was a lot of important information from the lectures that was emphasised in the tute.
- Make sure to start assignments early. As with most comp courses, the assignments in this course are not extremely hard, however, depending on the lecturer, they can be very time consuming. When I did this course, the assignments were both technically difficult and time consuming so I focused on them non-stop for 2-3 days and tried to finish everything off within a week. I found this to make the entire subject so much less stressful.
- Attempt all the unassessed practice exercises. There are so many additional practice questions provied in this course that it is almost impossible to have no material left to revise. When studying for your finals, do all the practice questions available to you and, if the exam is open-book, there is a high chance that some of the code you’ve written can be reused for the exam.
- Try to learn ahead. Literally every topic in COMP2521 has a huge amount of resources to learn online as the content is the basic underpinnings of every computer science course around the world. It’s super easy to find intuitive and fun videos online that teach the content much better than your lecturers so by learning ahead, it is easier to know what to expect and consolidate your course knowledge.