University Subjects

COMP2521: Data Structures and Algorithms

COMP2521: Data Structures and Algorithms

University
University of New South Wales
Subject Link
View Subject

Subject Reviews

fun_jirachi

3 years ago

Assessment
Quizzes 14%
Assignments 35%
Labs 11%
Final Exam 40%
Assumed Knowledge
Prerequisite: COMP1511 or DPST1091 or COMP1917 or COMP1921 (stolen from above link)
Comments
Perhaps because of the organisation of COMP1531 which I did at the same time, COMP2521 felt particularly poorly run. The course content was appealing because it was basically logic with extra steps, but I couldn't really shake the fact the course didn't have that feel good factor. It didn't really help that extra recordings and tutorials were often better resources to learn from than lectures, though there was markedly less work than last term (gauging by the reports of one friend complaining about the workload). The tutors were great :) - but there's really not much to add apart from the fact that unless you enjoy the content, I would not recommend taking the course as it exists right now.
Contact Hours
2x 2hr lectures
1x 3hr Tute/Lab
Difficulty
3/5
Lecture Recordings?
Yes
Lecturer(s)
Ashesh Mahidadia
Notes / Materials Available

Yes
Overall Rating
2/5
Textbook
Suggested texts are available:
Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching (3rd Edition)
by Robert Sedgewick, published by Addison-Wesley
Algorithms in C, Part 5: Graph Algorithms (3rd Edition)
by Robert Sedgewick, published by Addison Wesley
Year & Trimester Of Completion
2020 T3
Your Mark / Grade
86 HD

Did you find this review helpful?

anomalous

4 years ago

Assessment
- Lab exercises, worth 8%
- 2x programming assignments, worth 22% combined
- Midterm programming exam, worth 10%
- Final exam with theory and practical sections, worth 60%
Assumed Knowledge
COMP1511 is the only formal prerequisite, but I would recommend specifically that you know linked lists well as this course heavily builds upon the concept.
Comments
A very important course for anyone doing computer science or software engineering, since the content is quite relevant for the nature of and types of questions you may see in programming interviews when applying for internships and jobs. This course will also enable you to write better code, since you will now have enough knowledge of algorithms to select the appropriate one and analyse how efficient the programs you do write are.

Lab work is quite straightforward and less in the character of COMP1511 with many short tasks, instead preferring to have one or two more substantial, related tasks on the main programming topics. The assignments can be time consuming in figuring out what you need to do and implementing it, so definitely don’t sleep when it comes to starting on them. The midterm exam is quite reasonable - if you’re confident in your programming, it can take as little as a few minutes to complete. The final exam is a straightforward test of your theory knowledge of all the topics in the course with a programming section that will usually focus on the main programming topics - linked lists, trees and graphs. When it comes to preparing for the practical section, I definitely recommend trying some of the problems on LeetCode et al.

In the event that your exam mark was lower than your assignment marks, your assignment marks were adjusted by taking their harmonic mean. This scaling is always regressive, meaning that your mark would never be adjusted up, only down. There are reasons to use this - a big one is to punish plagiarism - however it only really sought to punish people even if they didn’t cheat. However in 19T3, this was changed to only affect students for which there was a 45% difference or more in their assignment and exam marks. I can almost guarantee that because of this change, course marks were higher on average this term than they have ever been. I bring this up since in future offerings this may be tweaked yet again, so your mileage may vary.
Contact Hours
- 2x 2 hour lectures
- 1x 1 hour tutorial
- 1x 2 hour lab class (follows the tutorial for a combined 3 hour block)
Difficulty
2/5
Lecture Recordings?
Yes, screen and voice.
Lecturer(s)
Dr. Ashesh Mahidadia
Notes / Materials Available
Lecture slides with some extra programming exercises - this obviously depends on the offering since earlier terms reported no such exercises, but Ashesh should release these in subsequent offerings from now on.
Overall Rating
4.5/5
Textbook
None prescribed, however the recommended book is “Algorithms in C” by Robert Sedgewick, published by Addison-Wesley.
Year & Trimester Of Completion
19T3
Your Mark / Grade
99 HD

Did you find this review helpful?

kierisuizahn

4 years ago

Assessment
Assumed Knowledge
Prerequisites:
Comments
An interesting course, with a few difficult parts, and very useful overall. One of my gripes with the course is the harmonic scaling applied to assignments and final exam results. If you get a lower mark in the final exam than your assignments, your assignment marks are scaled down using the harmonic mean. It's used to stop plagiarism, but serves to punish students regardless, since you're almost certainly going to go better in the assignments than the final exam. Didn't attend lectures so I can't comment on the lecturer, but the written materials were more than sufficient, and the tutorials went along with them well. In week 4 there was a "Sort Detective" lab where you were given two programs (compiled and with no read permissions so you couldn't decompile them) and had to run tests on them to figure out which sort they were, and write up a report about it (like a couple pages or something, not a proper report), which I found interesting.
Contact Hours
2hr + 1hr Lecture, 1x 1hr Tutorial + 2hr Lab (Combined)
Difficulty
2/5
Lecture Recordings?
Yes - screen and voice recorded.
Lecturer(s)
Dr. Ashesh Mahidadia
Notes / Materials Available
Lecture slides and course material uploaded to WebCMS.
Overall Rating
3/5
Textbook
Note: I don't use textbooks and can't comment on their usefulness
Year & Semester Of Completion
2017 S2
Your Mark / Grade
96 HD

Did you find this review helpful?

RuiAce

5 years ago

Assessment
A bit complicated. Involves labs, assignments, prac exams and final exam.
Calculation
Assumed Knowledge
COMP1511 is the sole prerequisite and is sufficient for this course.
Comments
This course is one of the immediate continuations of COMP1511. It replaced COMP1927. UNSW CSE recommends taking it in second year, however there really is no problem taking it in the second semester of first year. It is a prerequisite to almost all future computer science courses.

The disappointing amount of marks I threw away in the final exam killed a bit for me. It's really my own fault and the course ain't to blame for it, but it does skew my rating quite far away from what it should've been.

Algorithms are perhaps the most fundamental tool computer science students use. The study of algorithms involves trying to solve problems as efficiently as possible and also create the program to do so. On one hand, you need to understand how the algorithm works, but then on the other hand you need to know (or figure out) how to implement it. They're quite fun to explore when you sit down and attempt to understand it.

This course serves as the introduction to algorithms, with two areas of focus: sorting and graphs. Sorting is quite self explanatory, but I think this video helps introduce the fun behind it all. The graph structure forms the basis for shit tons of stuff we do (it becomes clear that even Facebook is essentially just a huge graph). It leaves you with pretty much all the basic needs for you to get a job as a computer scientist, and you really should never forget what you learn in this course. It's just that important.

At times, I found some of the lab exercises and assignments quite draining. The only thing that bugged me was that occasionally, our tasks weren't clear enough with what we had to do.

I feel like the rumours that maths helps computer science starts here. My mathematical background certainly simplified a lot of bizarre algorithms for me a lot. But I don't think they're necessary though. At the end of the day, the algorithms are backed by logic, and that's a skill any computer scientist must have.
Contact Hours
3 hours of lecture, 1 hour tutorial followed by 2 hours laboratory
Difficulty
2/5
Lecture Recordings?
Yes
Lecturer(s)
Dr. Ashesh Mahidadia
Notes / Materials Available
Lecture notes, lab exercises, tutorial exercises all uploaded to webcms3.
Overall Rating
3.5/5
Textbook
- Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching (3rd Edition) by Robert Sedgewick, Addison-Wesley
- Algorithms in C, Part 5: Graph Algorithms (3rd Edition) by Robert Sedgewick, Addison Wesley
Both are VERY good, but not needed for this course.
Year & Semester / Trimester Of Completion
18 s1
Your Mark / Grade
85 HD

Did you find this review helpful?

Australia Treasury

Help shape the future for all Australians

Want to make an impact to your local community and across Australia? Join Treasury, the Government’s lead economic advisor and be involved in developing policies and providing well informed, innovative and sound advice on key issues that impact Australians.

Find out more