COMP1521
Link to University HandbookCheck out what other students think about the course
Overall thoughts
COMP1521 was a great course that felt like it ended too soon. I completed this subject in Trimester 2 2023 alongside COMP2521 and a free elective.
This was the second Computer Science course that I took and the first time I used a language other than C. Assembly/MIPS was an entirely different experience, and I found it really fun trying to express the concepts that I had learnt previously in a lower level language. I found that in general the lectures were very thorough and well paced. However, for me, the topics covered in the last few weeks (files, processes, threads, virtual memory) needed more time dedicated to them and felt rushed through. Otherwise, the other assessments were designed well and effectively tested the course content.
Overall I really enjoyed this course and felt like it was a great introduction to broader computer system fundamentals.
What I took away
Where COMP1511 gave me an understanding of coding, COMP1521 gave me an understanding of computer systems. Although this understanding was mostly introductory, I definitely left with an appreciation of computer architecture, memory and its 'structure', files, and concurrency.
Additionally, learning MIPS opened my eyes to how powerful abstraction is in allowing programmers to code complex operations easily, and made me excited to learn higher level programming languages. This course made me more conscious of how I use and understand memory, and has helped me greatly in COMP3231 which I am currently taking in Trimester 1 of 2024.
Assessments
I thought that the assessments for COMP1521 were fairly interesting and reflective of the course content.
The course had weekly tests and laboratory tasks that tested the content covered in the previous week's lectures. I thought that the weekly tests were a great addition to the weekly tasks that I experienced in COMP1511, as they semi-replicated the kind of questions and time pressure that would occur in the final exam. The labs were also useful, but I found some of the later labs to be less intuitive and not as well directed.
The first assessment involved 'translating' an implementation of Pacman in C to MIPS, the assembly language introduced in the course. Because the task was about translating existing implementation, it meant the assignment was more about understanding MIPS logic and memory
The second assessment involved using linked lists to simulate train carriage layouts. I also really enjoyed this assessment as I wrestled more with the idea of linked lists and found the challenge of implementing them to be more enjoyable than the first assignment.