Notices

  • Final Exam

    Posted by Kevin Luxa ðŸĶ‰ Wednesday 01 May 2024, 12:55:52 PM, last modified Wednesday 01 May 2024, 05:50:26 PM.

    Hey everyone,

    The final exam is tomorrow!

    Before the exam:

    • Get a good night's sleep ðŸ˜ī
    • Make sure you know your assigned time and location
    • Remember to bring your photo ID (student ID preferred)
      • Otherwise, a physical driver's licence or passport is acceptable
    • Aim to arrive early

    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 :)

    You got this, good luck! 🎉🎉🎉

  • myExperience Update

    Posted by Kevin Luxa ðŸĶ‰ Friday 26 April 2024, 12:53:24 PM.

    Hi everyone,

    401 students completed the myExperience survey, which is a response rate of 56.8%. Thank you to everyone who completed it 😊

    Since we passed 55%, this means we'll reveal some details about two randomly chosen exam questions. These details will be posted on the forum later today.

    I hope your revision is going well! Make sure to take breaks every once in a while ðŸ˜ī

  • Welcome to Week 11

    Posted by Kevin Luxa ðŸĶ‰ Monday 22 April 2024, 11:56:13 AM, last modified Monday 22 April 2024, 11:56:40 AM.

    Hi everyone,

    Just wanted to remind you of a couple of things:

    • Quiz 8 is due today at 5pm, don't forget to submit!
    • There will be an online consultation running today from 1-3pm. If you have any questions about the course content that have come up during your revision, please don't hesitate to join! You can join via this link .
    • Please complete your myExperience survey ! The current response rate is 38.2%.

  • End of Week 10

    Posted by Kevin Luxa ðŸĶ‰ Friday 19 April 2024, 07:38:39 PM, last modified Thursday 25 April 2024, 01:37:09 PM.

    Hey everyone,

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

    Now you have just one thing in your way - the final exam! But before that...

    🍕 myExperience

    Please fill in the myExperience survey ! The survey closes on Thursday 25th April.

    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 29.6% - 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!

    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.

    ðŸŒŪ Final Exam

    The final exam is on Thursday 2nd May.

    There is detailed information about the final exam on this page , and I also talked about the exam in the final lecture - please check these out!

    You can expect to receive an email with your exam time and room early next week.

    🍭 Sample Exam Answers

    The sample exam answers have been released! You can find them at the bottom of the sample exam page.

    ðŸĨŸ Pre-Exam Consultations

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

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

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

    Happy studying!

  • Sample Exam

    Posted by Kevin Luxa ðŸĶ‰ Monday 15 April 2024, 09:53:53 AM.

    Hi everyone,

    I hope you had a good weekend!

    The sample exam has been released, and there is a link for it in the sidebar. The purpose of the sample is to show you how the real exam will be formatted, and also show you the style of questions that you could expect. We'll release the solutions at the end of the week, but please attempt the questions yourself before looking at the solutions!

  • End of Week 9

    Posted by Kevin Luxa ðŸĶ‰ Thursday 11 April 2024, 06:20:37 PM.

    Hey everyone,

    This week, we covered the last of the content for COMP2521. Now you can take a moment to reflect on what you've learned and what skills you've gained!

    Here are the important updates for now:

    ðŸŋ Last Lecture

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

    🍍 Consults

    Since there is no lecture on Thursday next week, I've rescheduled the consultation to Friday 1-2pm instead. 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.

    ðŸĨ Exam Info

    I've released some provisional information about the exam here . We'll talk more about the final exam on Tuesday, so please wait until then to ask your questions.

    ðŸĪ Demo Exam

    Next week, we'll be running a short demo exam in each of the in-person labs to let you try out the exam environment. If you're enrolled in an online class, you are welcome to attend any in-person lab. The demo exam will run during the first ~45 minutes of the lab, so if you want to see what the exam environment is like, please make sure to show up on time! Week 10 is the only time you'll get to try out the exam environment.

    📅 Exam Session Preference

    Sometime in week 10, you should expect to receive an email from the CSE exams unit with a form where you can indicate which exam session you would prefer to sit. If you have a strong preference for either session, please keep an eye on your email! If you have another exam on the same day, don't worry - you'll be automatically allocated to the session that doesn't clash.

    See you on Tuesday!

  • End of Week 8

    Posted by Kevin Luxa ðŸĶ‰ Sunday 07 April 2024, 04:17:55 PM.

    Hi everyone,

    Here is an update for week 8!

    We've made good progress throughout the term, so there's only one more week of content ðŸĨģ week 10 will be dedicated to discussion about the final exam and revision.

    🚀 Hash Tables

    This 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 growth as a computer scientist, as they are so commonplace. To help you get more familiar with them, next week's tutorial and lab exercise will be all about hash tables.

    Note that in the real world, you will only be using hash tables, not implementing them, but in this course, it's important to understand how they work, in particular different methods for resolving collisions, so please pay attention to that!

    🚅 Upcoming Topics

    We have just two more topics to go! One of them is priority queues , which have been mentioned earlier in the course when talking about Dijkstra's algorithm and Prim's algorithm. We'll finally see what they are and we'll learn about a cool data structure for implementing them called a binary heap. The other topic is tries which are efficient data structures for storing and searching strings. We'll cover both of these next week. See you then!

  • End of Week 7

    Posted by Kevin Luxa ðŸĶ‰ Sunday 31 March 2024, 04:50:20 PM, last modified Sunday 31 March 2024, 04:50:30 PM.

    Hey everyone,

    We have now reached the end of week 7. Only a few more weeks to go!

    Here are some updates:

    📐 Assignment 1

    Automarking for assignment 1 has been completed, and will be released later today. More details will be posted on the forum shortly.

    🧗 Assignment 2

    Assignment 2 was released earlier this week. Make sure to start working on it soon! Also please check the changelog regularly for updates.

    🌏 Goodbye to Graphs

    This week, we finished our exploration of graphs by looking at some algorithms on directed and weighted graphs. The most important of these is Dijkstra's algorithm, as you'll need to use it in the assignment. However, you'll still get a chance to explore minimum spanning tree algorithms (and related problems) in the lab next week!

    🚀 Upcoming Topics

    We only have a few topics left!

    The most important topic remaining is hash tables , which we'll be covering next. So far, the most efficient data structure we've covered which supports general insertion, search and deletion of items is an AVL tree, which provides O(log n) performance in the worst case. Meanwhile, hash tables provide O(1) performance on average! Hash tables are used pretty much everywhere because of how efficient they are. So next week we'll see what they are, how they work, and how we can solve problems with them. See you then!

  • Assignment 2 🧗

    Posted by Kevin Luxa ðŸĶ‰ Tuesday 26 March 2024, 12:12:14 PM.

    Hi everyone,

    Assignment 2 has been released!

    We will discuss the assignment briefly in the Thursday lecture. 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.

  • Welcome to Week 7

    Posted by Kevin Luxa ðŸĶ‰ Monday 25 March 2024, 08:54:54 PM, last modified Monday 25 March 2024, 08:56:00 PM.

    Hi everyone,

    Welcome back to week 7!

    I hope you had a good flex week and are ready to get back into some more COMP2521 😁

    Most of you have been working hard on assignment 1 - well done for all the effort you put in 😊 Remember that it's OK if you didn't complete every part - as long as you learned a lot about binary search trees and gained a lot of practice with them, you did a good job.

    This week, we'll finish up graphs by looking at some algorithms on directed and weighted graphs. We'll also release assignment 2, which will be about graphs!

    Good Friday Make-Up Classes

    There are no officially scheduled classes this Friday due to the public holiday (Good Friday), so if you are enrolled in a Friday class, you are welcome to attend any other class this week to participate in a tutorial and get your lab work marked. However, since there are many Friday classes, we have also scheduled two extra online tutlabs on Friday at these times:

    • 10am-1pm
    • 1pm-4pm

    Anyone is welcome to attend to get help with this week's lab or get their labs marked. These tutlabs will be held on Blackboard Collaborate, which you can access via Moodle. Alternatively, you can join via these links:

  • Hopper Upgraded

    Posted by Kevin Luxa ðŸĶ‰ Wednesday 20 March 2024, 03:35:33 PM.

    Hi everyone,

    From today onwards, we will be using the new version of Hopper for help sessions.

    Joining a queue works the same way - if you need help, log in to the website, select the right queue, and submit a request.

    Enjoy!

  • End of Week 5

    Posted by Kevin Luxa ðŸĶ‰ Sunday 17 March 2024, 12:50:16 PM.

    Hey everyone,

    We are now halfway through the term! Well done :D

    ðŸ˜ī Flex week

    There are no lectures or tutes next week, so you have more time to rest ðŸ˜ī, recharge and revise.

    🐚 Assignment 1

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

    ðŸ”ą Graph Traversal

    This week, we learned about two important graph traversal methods: BFS and DFS. BFS lets us find the shortest path between two vertices (in an unweighted graph), while DFS can be implemented recursively, which allows for backtracking, and we saw the usefulness of backtracking when we solved various graph problems on Thursday.

    In Week 7, we will continue our exploration of graphs and check out algorithms on directed and weighted graphs. See you then!

  • End of Week 4

    Posted by Kevin Luxa ðŸĶ‰ Sunday 10 March 2024, 03:19:25 PM.

    Hey everyone,

    We've reached the end of week 4! Here are some updates and a recap of the week:

    📜 Assignment 1

    Assignment 1 was released, so you should start working on it soon! Please make sure to check the changelog regularly for important updates.

    ðŸŒē 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, but for now, O(log n) will do :)

    ðŸ•ļ Graphs

    We started learning about graphs, which are general data structures which let us represent many scenarios in the real world where we have items and relationships between pairs of items.

    Over the next few weeks, we will be looking at various algorithms to solve different problems on graphs. It'll be fun!

    🔎 Lab Marks

    At this point, lab01 and lab02 have been automarked, and lab01 and (for most of you) lab03 should have been handmarked. All of these marks can be found on your View Submissions/Marking page . The table at the top of the page lists the automarks, handmarks and late penalties for each lab. For example:

    The fields ending with _auto are the automarks, the fields ending with _subj are the handmarks, and the fields ending with _latepen are the late penalties. Obviously, the lower the late penalty, the better. If a lab was automarked, you can see the details of the automarking by clicking the View Marking buttons in the table at the bottom of the page.

    Please check this regularly (at least weekly) to make sure your marks are in the system. If something is wrong, let us know as soon as possible. The marks on this page are updated overnight, so if you got your lab handmarked on Tuesday, then you should be able to see the marks on the page by Wednesday.

    Also, please remember that each lab that has a handmarking component must be handmarked within two weeks of the lab. If you're planning to show up in week 10 to get all your lab work handmarked, your tutor won't be able to enter your handmark for the labs in week 7 or earlier. If you still haven't gotten lab03 handmarked, make sure to do it by next week. lab04 can be handmarked in week 5 or 7.

  • Assignment 1 ðŸŒģ

    Posted by Kevin Luxa ðŸĶ‰ Tuesday 05 March 2024, 11:56:04 AM, last modified Tuesday 05 March 2024, 11:56:26 AM.

    Hi everyone,

    Assignment 1 has been released!

    We will discuss the assignment briefly in the Thursday lecture. 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.

    My advice - start early!

  • End of Week 3

    Posted by Kevin Luxa ðŸĶ‰ Sunday 03 March 2024, 02:14:57 PM, last modified Sunday 03 March 2024, 02:15:09 PM.

    Hi everyone,

    We are now a third of the way through the course! Keep up the hard work :D

    Here's a recap of the week:

    ðŸ’Ą ADTs

    We introduced ADTs, and talked about why we use them and how they are realised 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. Many students make the mistake of trying to access the struct directly and get a compilation error 😭 You'll get some practice with using ADTs in next 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 next 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. Next 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.

    Next week, we'll also start on a major topic of this course: graphs. We'll also release assignment 1 on Tuesday.

    See you soon!

  • T17B tutorial relocated to Webster 250

    Posted by Kevin Luxa ðŸĶ‰ Sunday 25 February 2024, 03:10:58 PM.

    Hi everyone,

    The T17B tutorial (5-6pm) has been relocated to Webster 250 from next week onwards.

  • End of Week 2

    Posted by Kevin Luxa ðŸĶ‰ Sunday 25 February 2024, 02:17:12 PM.

    Hey everyone,

    Here are some updates and a recap of what we covered in week 2:

    ðŸĶĒ Help Sessions

    The help sessions page has been updated with times and locations for the rest of the term.

    📚 Recursion

    You got a lot of practice with recursion in this week's lab exercise, so hopefully you now have a better idea of how to use recursion, especially with linked lists. That being said, if you're still not comfortable with recursion, please ask your tutor or come along with a help session or consult. It's best to get help with something sooner rather than later!

    We will see more examples of recursion in next week's lectures.

    ðŸ§Ū Sorting Algorithms

    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 :)

    Next week, we'll be discussing abstract data types and we'll start on our first new data structure - binary search trees! See you then!

  • End of Week 1

    Posted by Kevin Luxa ðŸĶ‰ Sunday 18 February 2024, 11:20:14 AM.

    Hey everyone,

    I hope you enjoyed your first week of term! This week, we covered some important topics that will be relevant in the rest of the term, so here's a recap:

    ðŸĨž Recursion

    We learned about recursion, which is a technique where we solve problems via solving smaller versions of the same problem, and saw how we can apply it to linked lists. 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 next week in the tutorial and lab exercise . 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 consult :)

    📈 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.

    🔎 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 .

    In terms of coursework, remember that lab01 and quiz 1 are both due tomorrow 5pm .

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

  • Welcome to COMP2521 24T1!

    Posted by Kevin Luxa ðŸĶ‰ Saturday 10 February 2024, 05:50:01 PM.

    Hi everyone,

    Welcome to COMP2521 24T1! ðŸĨģ

    Firstly, I'd like to congratulate all of you for getting through your first few computer science courses . I imagine that for many of you, it was your first time programming, and it wasn't easy. But your hard work paid off, and here you are now!

    COMP2521 is called Data Structures and Algorithms. What is it about?

    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 COMP1511/COMP1911 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.

    What have you heard about COMP2521? Have you heard that it's easy? Maybe. Have you heard that it's hard? More likely. But no matter who you've talked to, I'm sure that you've heard that this is one of the most important courses you'll do in your growth as not only a programmer, but as a computer scientist. I tend to agree. I also believe that you'll get out of this course what you put in - if you put a lot of effort into this course, you're bound to leave a much more knowledgeable and resourceful programmer.

    Working with me is our overlord course convenor John Shepherd, our course admin Ethan Brown, and a team of 32 wonderful tutors. I've worked with most of our tutors in the past, so I know how awesome they are and I'm excited for them to teach you this term.

    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 13th February, 9-11am. The lecture will be in Ainsworth G03 , and if all goes well, it will be streamed to YouTube as well. The link to the livestream is on the lectures page .
    • We have invited most of you to our Ed forum (using your @student.unsw.edu.au email). If you have not been added to the forum (this will be the case if you enrolled later), please follow these instructions to join. Hop on the forum and say hi!
    • 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 .
      • Two new lab rooms have opened this term! They are called Alto and Bass, and they are located next to each other on Level 1 of the Old Main Building. If your lab is in one of these rooms, make sure you know where they are! Here is a map showing both of them.

    See you soon

    I look forward to seeing you all on Tuesday!


Back to top

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