COMP2521
Link to University HandbookCheck out what other students think about the course
Overall thoughts
COMP2521 was my first introduction to data structures and algorithms. This course made me realise how creativity and problem solving were integral to being a computer scientist. I completed this subject in Trimester 2 2023 alongside COMP1521 and a free elective.
I think the best part for me about the course was the content. Every week was engaging and I felt that what I was learning was changing the way I thought about and approached coding. The lab exercises and assessments were very rewarding, as they allowed us to wrestle with all of the new data structures and algorithms that we had learnt. I had a really great tutor as well who pushed us to think critically about problems and solidify our own understandings of concepts. For anyone starting this subject, I would really recommend attending tutorials and trying to understand not only how things work but why they do.
Overall, this course was really valuable in transitioning me from someone that understood code to someone who thought like a computer scientist.
What I took away
This course was very important in my Computer Science journey. It taught me the fundamental data structures and algorithms such as AVL trees, Graphs and their Traversal, hashing and sorting. It also instilled into me the importance of complexity in coding, which has improved the quality and intention of my coding significantly.
The most important thing I took away from this course was that it developed my critical thinking in relation to programming. There was so much opportunity to test and challenge myself and I finished this course with a newfound appreciation of what coding could accomplish.
Assessments
Compared to COMP1511 and COMP1521, the assessments were more self-directed. There were weekly laboratory tasks, quizzes and two assignments as well as a final exam.
The weekly lab tasks were relatively challenging and involved completing tasks using the concepts we had learnt in lectures. As a lot of the lecture content was theoretical, I really enjoyed being able to code and apply what we had learnt to solve problems. As this was also my second trimester of coding, I found that the labs helped me consolidate a lot of the C programming that I had learnt in COMP1511.
The weekly tests were useful in testing understanding of concepts but in general I found them less practical than the COMP1521 tests.
The first assignment involved implementing a multiset ADT using AVL trees. I really enjoyed this assignment and felt like it not only tested our understanding of trees but also our implementation design. This was also the first assignment which had complexity requirements, which added another layer of analysis to our approach.
The second assessment involved graph implementation and traversal for a cops and robbers game. I found this assessment really challenging in a good way. There was a lot more problem solving involved than I had experienced before, which really tested how well we could use our graph understanding. Also, there was a lot more self-direction which gave a lot of freedom but was also very nerve-racking.