Notices

  • Final Exam

    Posted by Kevin Luxa 🦉 4 days ago.

    Hi everyone,

    The final exam is tomorrow!

    Before the exam:


    During the exam:

    • Use your reading time well
      • Decide what questions you want to tackle first
    • Answer clearly
    • Submit as you complete each question
    • Keep an eye on how long you're spending on each question
    • Believe in yourself! If you've studied hard, you'll do fine :)

    Good luck! 🎉🎉🎉

  • myExperience Update

    Posted by Kevin Luxa 🦉 7 days ago.

    Hi everyone,

    The final myExperience response rate was 57.6%! Thank you to everyone who completed the survey.

    Since we passed 55%, we have revealed some details about two randomly chosen exam questions. You can find these details in a pinned post on the forum.

    I hope your revision is going well!

  • myExperience reminder

    Posted by Kevin Luxa 🦉 8 days ago.

    Hi everyone,

    This is a final reminder to submit your myExperience survey! The survey closes at 11:59pm tonight.

    The current response rate is 52.3% - complete the survey to help your fellow peers get to the 55% threshold (and beyond)!

  • Thursday pre-exam consultation has been moved

    Posted by Kevin Luxa 🦉 9 days ago, last modified 9 days ago.

    Hi everyone,

    Due to scheduling conflicts, I've moved tomorrow's pre-exam consultation to 11am-1pm , and it will be online .

    You can join the session via Blackboard Collaborate, which you can access via Moodle, or you can click this link .

    Sorry for any inconvenience caused! If you are no longer able to make it, please feel free to ask your questions on the forum, and our forum staff will be happy to help.

  • End of Week 10

    Posted by Kevin Luxa 🦉 12 days ago.

    Hi everyone,

    We've reached the end of the term! Well done for all the hard work you put in these past 10 weeks.

    Here are some things that are happening in week 11:

    🥨 Quiz 8

    Quiz 8 is due Monday at 5pm - don't forget to submit!

    🍕 myExperience

    Please fill in the myExperience survey ! The survey closes at 11:59pm on Thursday 1st May.

    I'm very interested to hear what you liked about the course and what you think could be improved. Your tutors would also love to know what you thought of their teaching and how they can improve. We'll use your feedback to improve future iterations of the course. Thanks!

    The response rate is currently sitting at 34.8% - thanks to everyone who has completed the survey so far. Starting from a response rate of 50% (and every 5% after), we'll reveal the topic and mark value of a randomly chosen exam question!

    🥟 Pre-Exam Consultations

    We'll be running a few consultations next week to answer any lingering questions you have about the course content:

    • Tuesday 1-3pm - online
    • Thursday 1-3pm - in person at CSE Help

    You can join the Tuesday session online via Blackboard Collaborate. To join, go to the Moodle page for this course, click on the "Online Tutorials and Help Sessions" link and then join the session.

    🌮 Final Exam

    The final exam is on Tuesday 6th May.

    There is detailed information about the final exam on this page - please read it so you know what is allowed and what to expect.

    Please make sure you have a valid (non-expired) student ID! If your student ID has expired or you have lost it, get a new one from the Nucleus. Click here for more information!

    You should have already received an email with your exam time and location. You can also access this information here (or click on YOUR EXAM TIME/LOCATION in the sidebar).


    Happy studying!

  • 🍩 COMP2521 Revision Session

    Posted by Kevin Luxa 🦉 18 days ago, last modified 18 days ago.

    Hi everyone,

    This Thursday from 2-4pm, CPMSoc and CSESoc are teaming up to bring you a revision session for COMP2521 in Law Theatre G23! Come along to meet other COMP2521 students, get some study in, and enjoy some yummy free food!

    When: Thursday 24th April 2-4pm

    Where: Law Theatre G23 ( map )

  • Welcome to Week 10

    Posted by Kevin Luxa 🦉 19 days ago.

    Hi everyone,

    Welcome to the final week of the term!

    We have now finished covering all the content for COMP2521, so now it's time to reflect on what you've learned and start revising for the exam!

    Here are some important notices for this week:

    🍿 Final Lecture

    Since we have finished covering all the course content, we will only be running one lecture this week on Tuesday to review the course and talk about the final exam.

    🍍 Consultations

    Since there is no lecture on Thursday, I've updated the Thursday consultation to be 2 hours, from 10am-12pm. Please come along if you have any questions about any of the lecture content this term! I'll also schedule a few consultations in week 11 in case any questions arise during your revision.

    🍓 Replacement classes and lab-marking sessions

    Online replacement classes and in-person lab marking sessions will be continuing this week. You can find the schedule HERE (or click on Week 9/10 EXTRA CLASSES in the sidebar) - please feel free to attend whichever of these sessions is most convenient for you, or you can attend any of the regularly scheduled classes .

    🍤 Demo Exam

    This week, and this week only, you'll get a chance to try out the exam environment in the in-person labs, so please attend a lab if you would like to familiarise yourself with the exam environment before the final exam. If you're enrolled in an online class, you are welcome to attend any in-person lab.

    🍕 myExperience

    Please fill in the myExperience survey ! The survey closes on Thursday 1st May.

    I'm very interested to hear what you liked about the course and what you think could be improved. Your tutors would also love to know what you thought of their teaching and how they can improve. We'll use your feedback to improve future iterations of the course. Thanks!

    If you have the time, we especially appreciate specific feedback - for example, if you thought that some topics weren't taught as well as others, letting us know which specific topics and subtopics is much more helpful and actionable.

    To encourage more responses, starting from a response rate of 50% (and every 5% after), we'll reveal the topic and mark value of a randomly chosen exam question!

  • Welcome to Week 9

    Posted by Kevin Luxa 🦉 25 days ago.

    Hi everyone,

    Welcome to week 9!

    This week is the last week of content for the course. We'll be covering two special topics: priority queues , which we have already briefly mentioned when learning about Dijkstra's algorithm and Prim's algorithm, and tries , which is an efficient data structure for storing and searching strings.

    Here is a recap of last week and some important updates for the upcoming weeks:

    🍟 Hash tables

    Last week, we learned about hash tables, how they are implemented, and how we can use them. This is an important topic not just for this course, but for your learning, as they are so commonplace in computer science. To help you get more familiar with them, this week's tutorial and lab exercise will be all about hash tables.

    Note that in the future, you will very likely only be using hash tables, not implementing them, but in this course, it's important to understand how they work, especially the different methods for resolving collisions.

    🍓 Replacement classes and lab-marking sessions

    Unfortunately, due to public holidays, there are no more Friday classes this term!

    To make up for all the lost class time, we will be running online replacement classes and in-person lab-marking sessions this week and next week. You can find the schedule HERE (or click on Week 9/10 EXTRA CLASSES in the sidebar) - please feel free to attend whichever of these sessions is most convenient for you, or you can attend any of the regularly scheduled classes .

    🍀 Exam

    The COMP2521 exam is confirmed to be on Tuesday 6th May, and you can find all the information about the exam on the Exam Information page. Keep an eye on your inbox - you should expect to receive an email asking for your session preference (morning or afternoon) this week or early next week.

  • [IMPORTANT] Replacement classes and lab marking sessions in weeks 9 and 10

    Posted by Kevin Luxa 🦉 about a month ago, last modified about a month ago.

    Hi everyone,

    We have two public holidays coming up in weeks 9 and 10, both on Friday, so unfortunately there will be no classes on these days. That's a large number of classes that won't be running(!), so to make up for all the lost class time, we will be running online replacement classes and in-person lab marking sessions so that you can still attend a tutorial and get your lab exercises marked.

    You can access the timetable for these classes/sessions here .

    If you are enrolled in a Friday class, I encourage you to attend one of these classes, or you can attend any other in-person class if it is convenient for you to do so (see the class timetable ). Please feel free to attend even if you are not enrolled in a Friday class.

  • Assignment 1 Automarking + Assignment 2

    Posted by Kevin Luxa 🦉 about a month ago, last modified about a month ago.

    Hi everyone,

    Assignment 1 automarking has been released! Please check our pinned forum post for more details.

    Assignment 2 was released earlier this week, and I went over the spec in the Thursday lecture. Note that it is due on Thursday of week 10 due to the Friday public holiday. If you have any questions, please feel free to ask on the forum.

    All the best for assignment 2!

  • Issue with provisional exam timetable

    Posted by Kevin Luxa 🦉 about a month ago.

    Hi everyone,

    There is a known issue with the provisional exam timetable for some COMP courses, including COMP2521, where the exam time is stated as being in the morning only. This is incorrect, as there will be both a morning and afternoon session for the COMP2521 exam. This means if you have another exam in the morning, you don't need to worry as you'll still be able to sit the COMP2521 exam in the afternoon. We'll let you know as soon as this issue is fixed.

  • End of Week 5 Updates

    Posted by Kevin Luxa 🦉 2 months ago.

    Hi everyone,

    Well done for making it halfway through the term!

    We've covered a lot of new ground over the past five weeks, so now that flex week is coming up, you have a chance to catch up, revise and reflect on what you've learned. In Week 7, we will continue our exploration of graphs and consider algorithms on directed and weighted graphs.

    Here are some updates:

    🐚 Assignment 1

    I hope you've been working hard on assignment 1. We are running many help sessions throughout flex week, so please feel free to attend if you need help.

    📜 Exam

    We have now released some information about the exam, including what resources you will have access to during the exam. The exam date is not decided by us and has not been set yet, so please don't ask about the exam date until the exam timetable is released, which should be around week 8. For now, you should assume that it could be any day of the exam period.

    We have also released a sample exam and several past exams , which are resources you can use to get additional practice for both theory and programming. Note that the sample exam is most indicative of the format of the final exam. Also please note that these are all the practice exams we will release , so if you would like to practice taking these exams under exam conditions, then it is your responsibility to avoid looking at them before we finish covering all the course material. Note that you can also practice theory through tutorial questions and quizzes, and you can practice programming through practice exercises, extra lab exercises and rewriting lecture code.

  • Welcome to Week 5

    Posted by Kevin Luxa 🦉 2 months ago.

    Hi everyone,

    Welcome to week 5!

    Last week, we introduced graphs and learned how we can represent them in memory. This week, we will continue exploring graphs by learning different graph traversal methods. This will allow us to solve more interesting problems on graphs such as path finding and cycle detection!

    Here is a recap of last week:

    📜 Assignment 1

    Assignment 1 was released, so you should start working on it soon!

    🌲 Balanced BSTs

    We learned about operations and methods that we can use to balance BSTs, and a special kind of BST called an AVL tree which is guaranteed to be height-balanced. With that, we have finally found a data structure that performs better than ordered arrays or linked lists! Later in the course, we will discuss another data structure that provides even more efficient insertion, search and deletion on average.

  • Assignment 1

    Posted by Kevin Luxa 🦉 2 months ago.

    Hi everyone,

    Assignment 1 has been released!

    We will discuss the assignment briefly in the lecture tomorrow. Meanwhile, please read through the spec and have a look at the provided files. You can ask any questions you have during the lecture, and (later) on the forum.

    All the best for the assignment!

  • Welcome to Week 4

    Posted by Kevin Luxa 🦉 2 months ago, last modified 2 months ago.

    Hi everyone,

    Welcome to week 4!

    This week, we'll continue exploring binary search trees, and then we'll start on another major topic of this course: graphs. We'll also be releasing assignment 1!

    Here's a recap of last week:

    💡 ADTs

    We introduced ADTs, and talked about why we use them and how they are implemented in C. We also explored a few examples of ADTs - stacks 🥞, queues 🚶🚶🚶 and sets 🍱.

    In this course, you can recognise ADTs by their filenames and function names - ADTs are defined in files whose names start with an uppercase letter, and the names of all their interface functions are in PascalCase.

    Make sure you understand how to use an ADT! When a user uses an ADT, they must only access it through the functions in its interface. You'll get some practice with using ADTs in this week's lab.

    🌴 Binary Search Trees

    We finally learned our first new data structure - binary search trees! 🥳

    We introduced BSTs as a way to solve the issues of ordered arrays and linked lists, and then implemented some fundamental operations on BSTs, such as insertion and search.

    You'll get plenty of practice with binary search trees this week. But if you want more practice, we have some extra exercises on the Practice Exercises page.

    We aren't done with BSTs yet! Unfortunately, BSTs are only as efficient as how balanced they are, which depends on the order of inserted values. This week we'll examine different methods to improve the balance of a BST, and we'll look at special kind of BST which always remains balanced, called an AVL tree.

    🐱💻 Practice Programming! 🐱💻

    Remember that to get proficient at programming, you should be doing extra coding practice outside of lab exercises and assignments. One way is to do practice exercises, another way is to try and reproduce the code that we write in lectures. For binary search trees, I've made this easy for you by providing the starter code in a separate directory. Enjoy!

  • Welcome to Week 3

    Posted by Kevin Luxa 🦉 2 months ago, last modified 2 months ago.

    Hi everyone,

    Welcome to week 3!

    This week we'll be introducing abstract data types, a very important concept which we'll explore many examples of in the rest of the course. We'll also take a look at our first new data structure - a binary search tree!

    Updates

    🦆 Help Sessions

    The help session schedule has now been updated with help sessions for the rest of the term - if you are looking for help with lab exercises or (in the future) assignments, please attend a help session! You can also ask questions about course content, but remember that there are consultations after each lecture where you can ask about lecture content specifically.

    🔬 Lab Marks

    We have now run the automarking for lab01, so most of you should be able to see your mark for the automarking component on your View Submissions/Marking page . If you have gotten your lab01 work handmarked, then you should also be able to see your mark for the handmarking component. (If you haven't gotten lab01 handmarked yet, remember that this is the last week to do so!)

    The marks and late penalties for labs are shown in the table at the top of the View Submissions/Marking page. For example:

    The fields ending in _auto are the automarking marks, the fields ending in _subj are the handmarking marks, and the fields ending in _latepen are the late penalties for the labs. Note that we calculate the late penalties two weeks after the deadline, after submissions have completely closed.

    If you want to see the automarking details for a particular lab, you can click on the blue "View Marking" buttons in the table at the bottom of the page.

    🧮 Sorting Algorithms

    Last week, we learned about many sorting algorithms and analysed their time complexities and properties.

    In week 3, you will put your knowledge of sorting algorithms to use in an interesting lab exercise ! There is no coding in this lab exercise - rather, you will be measuring the performance behaviour and characteristics of some mystery sorting algorithms and deducing what they are. You will also be allowed to work in pairs for this lab - I highly encourage you to find someone from your lab to work with so that you get to know more of your peers :)

  • H11B tutorial moved to K-E12-105 (BUS 105)

    Posted by Kevin Luxa 🦉 2 months ago, last modified 2 months ago.

    Hi everyone,

    If you are in H11B (Thursday 11am, Tay and Benedict's class), please note that your tutorial has been moved from Library 176A to K-E12-105 (BUS 105).

  • Welcome to Week 2

    Posted by Kevin Luxa 🦉 2 months ago.

    Hey everyone,

    I hope you enjoyed your first week of term! Here's a recap of what we learned in week 1:

    🥞 Recursion

    Don't think of recursion as simply a function calling itself - recursion is really a technique where we solve problems by solving subproblems, i.e., smaller versions of the same problem. This can be a tricky concept to wrap your head around at first, but don't worry, you'll get plenty of opportunity to practice recursion this week. Try to get comfortable with it, because we'll be using it in future topics. If you think you need more help understanding recursion, feel free to come to a help session or consultation :)

    📈 Analysis of Algorithms

    We also covered the basics of analysing the efficiency of algorithms. We will be analysing many algorithms in future lectures, so you don't need to feel like you need to have mastered it now - just make sure you understand the analysis of linear search and binary search in the lecture.

    Also, I just want to mention that in this course, you don't need to know the formal definition of big-O, but it's given in the lectures so you're aware of where it comes from. In this course, it's sufficient to understand how to remove lower-order terms and constant factors, which will give you the time complexity of an algorithm in terms of big-O.

    🔬 Labs

    In the lab exercise, you learned about sanitizers and how to read and interpret the error messages that they produce. Hopefully this will help you debug any errors that you encounter in future lab exercises and assignments! You also learned how to use the make command. It's important that you know how to use make because we will rarely compile by typing out compilation commands - we'll usually just use make .

    Remember that labs and quizzes are due Monday 5pm the following week, so the week 1 lab and quiz 1 are both due 5pm today. After you have submitted your week 1 lab, you need to get it hand-marked by week 3.

    This week, we'll be discussing sorting algorithms, which will give us a good chance to practice our algorithm analysis skills. See you tomorrow!

  • Welcome to COMP2521 25T1!

    Posted by Kevin Luxa 🦉 3 months ago, last modified 3 months ago.

    Hi everyone,

    Welcome to COMP2521 25T1!

    COMP2521 is Data Structures and Algorithms.

    In this course, we're going to be exploring the various ways that computers organise and process data to solve different problems. On top of that, we will be examining how well these different methods scale. Computers are extremely fast, so the code you write with your basic knowledge may work well with a small amount of data, but what if there are millions or billions of data items? How feasible will it be then? That's the question we will keep asking throughout this course.

    Data structures and algorithms form the foundations of computer science and engineering and no doubt understanding these will help you not only in your program but your professional journey as a programmer/software engineer/computer scientist.

    Working with me is our course convenor John Shepherd, our hardworking course admins Ethan Brown and Ryan Berlee, and a team of 43 wonderful tutors who are very supportive and dedicated. They are all looking forward to help you grow your knowledge and skills in this course.

    Key information

    • If you haven't already, please read through the course outline , as it details everything important, including what topics we'll cover, when we'll cover them, and how you'll be assessed.
    • The first lecture is on Tuesday 18th February (tomorrow), 11am-1pm. The lecture will be in Mathews Theatre A , and if all goes well, it will be streamed to YouTube as well. The link to the livestream is on the lectures page .
      • You may have received an email about a WiFi network outage on campus. If this issue still persists tomorrow, then we might not be able to livestream tomorrow, but you can expect the recording to still be uploaded by 5pm.
    • Please join the forum by clicking the Forum link in the sidebar! Note that if you only just enrolled in the course, you may need to wait until the next day to get access.
    • Tutorials and labs start in week 1. Make sure you know your tutorial time and location . If you are in an online tutorial, these are held on Blackboard Collaborate, which you can learn how to access here .

    See you soon

    I look forward to seeing you all tomorrow!


Back to top

COMP2521 25T1 (Data Structures and Algorithms) is powered by WebCMS3
CRICOS Provider No. 00098G