Contents

Course Details

Course Code COMP3121/9101
Course Title Algorithms and Programming Techniques
Convenor Aleksandar Ignjatovic
Admin Song Fang
Classes Tuesday 9:00-11:00; Friday 11:00-13:00 both in Keith Burrows Theatre (K-J14-G5)
Consultations Friday 15:00-17:00 on MS Teams
Units of Credit 6
Course Website Moodle
Handbook Entry http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP3121.html

Course Summary

Students will learn a variety of algorithm design techniques (greedy, dynamic programming, divide and conquer, etc). This will include famous algorithms using these ideas in graph problems, string matching, etc, but more importantly how to apply these ideas to develop correct and efficient algorithms to solve new problems. Students will develop their abilities in problem solving and analysis of algorithms, as well as in written communication as they express and argue for their ideas.

There is also an extended Algorithms course COMP3821/9801 which runs only in T1 each year. We recommend that top students take the extended course instead of this one.

Extended Algorithms moves at a faster pace and covers more topics and some topics in more depth. It assumes higher autonomy from students and offers a few different perspectives on problem solving. However, marks will be capped at 95 before bonus marks for forum participation are added. Therefore, it is not guaranteed that full marks in all assessments will translate to a 100 course mark.

Assumed Knowledge

Understanding of fundamental data structures covered in COMP2521/9024, including

  • arrays
  • linked lists
  • priority queues
  • heaps
  • graphs
  • trees
  • balanced binary search trees
  • hash tables

Understanding of fundamental algorithms covered in COMP2521/9024, including

  • sorting (insertion sort, merge sort, quick sort, heap sort, bubble sort, counting sort, radix sort
  • binary search
  • depth first search and breadth first search
  • hashing

Asymptotic notation and basic properties of logarithms, as explained in the review manual .

Written communication skills; there is no programming involved.

Student Learning Outcomes

After completing this course, students will:

  1. Be able to design new algorithms for solving new problems, using various design techniques (greedy, dynamic programming, divide and conquer, etc)
  2. Be able to estimate efficiency of algorithms and justify their correctness
  3. Be able to demonstrate improved problem solving skills

Teaching Strategies

Student Conduct

The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them, and conduct themselves accordingly.

In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person as well as behaviour on social media, for example Facebook groups set up for the purpose of discussing UNSW courses or course work. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another's privacy or causing any person to fear for their personal safety is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.

If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.

UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism is defined as using the words or ideas of others and presenting them as your own. Plagiarism undermines academic integrity and is not tolerated at UNSW. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.

In this course, you may discuss the quiz and assignment questions with other students.

  • You may make reference to published course material (e.g. lecture slides, tutorial solutions) without providing a formal citation. The same applies to material from COMP2521/9024.
  • You may make reference to either of the recommended textbooks with a citation in any format.
  • You may reproduce general material from external sources in your own words, along with a citation in any format.
    • 'General' here excludes material directly concerning the assessment question. For example, you can use material which gives more detail on certain properties of a data structure, but you cannot use material which directly answers the particular question asked in the assessment.
  • You may discuss the assessment problems privately with other students. If you do so, you must acknowledge the other students by name and zID in a citation.
  • You must write your submissions entirely by yourself . Do not share your written work with anyone except COMP3121/9101 staff, and do not store it in a publicly accessible repository.
    • The only exception here is UNSW Smarthinking , which is the university's official writing support service.

The final exam is an entirely individual assessment.

  • You may make reference to published course material (e.g. lecture slides, tutorial solutions) without providing a formal citation. The same applies to material from COMP2521/9024.
  • You may make reference to either of the recommended textbooks with a citation in any format.
  • You may reproduce general material from external sources in your own words, along with a citation in any format.
    • 'General' here excludes material directly concerning the exam question. For example, you can use material which gives more detail on certain properties of a data structure, but you cannot use material which directly answers the particular question asked in the exam.
  • You may not discuss the exam problems with anyone .
  • You must write your submissions entirely by yourself . Do not share your written work with anyone except COMP3121/9101 staff, and do not store it in a publicly accessible repository.

Assessment

Item Topics Due Marks Contributes to
Quiz Review material, introduction Week 4 (first attempt) 5% CLO 2
Assignment 1 Introduction, divide and conquer Week 3 15% CLO 1, 2, 3
Assignment 2 Greedy strategy, flow networks Week 7 15% CLO 1, 2, 3
Assignment 3 Dynamic programming Week 9 15% CLO 1, 2, 3
Final Exam All topics Exam period 50% CLO 1, 2, 3

You will have a take-home quiz in week 1 worth 5% of your grade. You are expected to make a first attempt before your week 2 tutorial. This task is intended to confirm your understanding of the prerequisite material and to clarify our expectations for your later assignment responses. If your responses are deemed unsatisfactory, you will be able to amend your responses to address your tutor's feedback as many times as necessary. Completing this task to your tutor's satisfaction will earn the full 5%.

You will have three written assignments each worth 15% of your grade. Assignments will be released in weeks 1, 4 and 7 and due in weeks 3, 7 and 9 respectively.

You will also have an final exam worth 50%. The final exam will be held IN PERSON online using INSPERA. It will be a three hour exam consisting of eight multiple choice questions and four algorithm design problems. There is a hurdle requirement: you must achieve at least half the available marks in at least one of the four algorithm design problems in order to pass the course.

Bonus points will be added for forum participation (no more than 5%). Please refer to the welcome announcement for more details.

Course Schedule

Week Lectures Tutorials Assignments Quiz
1 Course introduction Review material Asst1 released Released
2 Divide and Conquer Divide and conquer - First attempt
(recommended)
3 Large Integer Multiplication Divide and conquer Asst1 due
Asst2 released
-
4 Greedy Strategy Greedy strategy - First attempt due
5 Flow Networks Greedy strategy
Flow networks
Asst1 returned -
6 Flexibility week - revision lecture No tutorials - -
7 Dynamic Programming Dynamic Programming Asst2 due
Asst3 released
Completion due
8 Dynamic Programming Dynamic Programming
- -
9 String matching
Linear Programming
String matching
Linear programming
Asst2 returned
Asst3 due
-
10 Intractability Intractability - -
11

Asst3 returned -
12


-
13


-

Resources for Students

We recommend that you supplement course material by reading either of the following textbooks.

  • Kleinberg and Tardos: Algorithm Design 2nd edition, paperback edition available at UNSW Bookshop
  • Cormen, Leiserson, Rivest and Stein: Introduction to Algorithms 4th edition now available at UNSW Bookshop,

Course Evaluation and Development

This course is evaluated each session using the myExperience system.

In the previous offering of this courses, students noted ...

Based on their comments, we have ...

Resource created Wednesday 24 May 2023, 01:35:04 PM, last modified Sunday 23 July 2023, 11:57:39 AM.


Back to top

COMP3121/COMP9101 23T2 (Algorithms) is powered by WebCMS3
CRICOS Provider No. 00098G