Course Details

Course Code COMP3121
Course Title Algorithms and Programming Techniques
Convenor Raveen de Silva
Admin Song Fang
Classes Tuesday 16:00 - 18:00 and Thursday 16:00 - 18:00
Consultations Monday 14:00 - 15:00 and Friday 14:00 - 15:00
Units of Credit 6
Course Website Moodle
Handbook Entry http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP3121.html

Course Information

COMP3121 Algorithms and Programming Techniques (aka COMP9101 Design and Analysis of Algorithms, for postgraduate students) runs in all three terms each year. The extended version (COMP3821/9801) 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. For instance, theory content is pre-recorded and the live lectures are used to solve problems interactively.
  • In terms of course structure, the extended course has one more individual assignment, as well as a 4-part group assignment and a peer marking component. This means a deadline almost every week. The final exam is only 30%.
  • Students can transfer from Extended Algorithms to Algorithms until at least week 2, and later than that with approval. Assessments completed in Extended Algorithms will be transferred also.

To ensure that students are not penalised for taking the extended course:

  • Extended Algorithms marks are scaled generously to reflect the more difficult content and workload.
  • Algorithms marks may also be scaled up if necessary. 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.

Learning Outcomes

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

Objectives

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.

Staff Contact details

Role Name Email Office
Lecturer Raveen de Silva r.desilva@unsw.edu.au K17 202
Course Admin Song Fang cs3121@cse.unsw.edu.au N/A

Lectures

Lectures will be delivered in hybrid mode, so you can attend in-person or online.

Time Lecturer Room Link
Tuesday 16:00 - 18:00 Raveen Keith Burrows Theatre (K-J14-G5) TBA
Thursday 16:00 - 18:00 Raveen Keith Burrows Theatre (K-J14-G5) TBA

Consultations

Students are always welcome to ask questions before and after lectures. In addition, online consultation will be held at the following times. I am not usually at campus on days when I am not delivering lectures.

Time Staff Link
Monday 14:00 - 15:00 Raveen TBA
Friday 14:00 - 15:00 Raveen TBA

Consultations will be recorded. Please inform me at the time if you would like anything to be omitted from the recording.

Tutorials

Tutorials will consolidate lecture material by discussing practice problems and demonstrating the core competencies expected of students in the course.

Code Time Tutor Room/Link
W11A Wednesday 11:00 - 12:00 Isaiah Blockhouse G15 (K-G6-G15)
W11B Wednesday 11:00 - 12:00 Liam Online ( MS Teams )
W12A Wednesday 12:00 - 13:00 Steve Red Centre Central Wing 1040 (K-H13-1040)
W12B Wednesday 12:00 - 13:00 Hugh Science & Engineering B26 (K-E8-B26)
W14A Wednesday 14:00 - 15:00 Frank Blockhouse G15 (K-G6-G15)
W14B Wednesday 14:00 - 15:00 Zhizhou Online ( MS Teams )
W15A Wednesday 15:00 - 16:00 Frank Old Main Building 151 (K-K15-151)
W15B Wednesday 15:00 - 16:00 Zhizhou Online ( MS Teams )
W16A Wednesday 16:00 - 17:00 Laeeque John Goodsell LG21 (K-F20-LG21)
W16B Wednesday 16:00 - 17:00 Ryan S Online ( MS Teams )
W17A Wednesday 17:00 - 18:00 Laeeque Webster 302 (K-G14-302)
W17B Wednesday 17:00 - 18:00 Rudy Online ( MS Teams )
H14A Thursday 14:00 - 15:00 Gerald Blockhouse G15 (K-G6-G15)
H14B Thursday 14:00 - 15:00 Trina Blockhouse G16 (K-G6-G16)
H15A Thursday 15:00 - 16:00 Gerald Ainsworth 201 (K-J17-201)
H15B Thursday 15:00 - 16:00 Ryan O Blockhouse G13 (K-G6-G13)
F11A Friday 11:00 - 12:00 Anders Civil Engineering G6 (K-H20-G6)

In addition to the problems discussed in tutorials, you will be provided practice problems with detailed solutions. We encourage you to attempt these on your own and discuss these with other students and course staff.

Course Forum

Join the Ed forum using this sign-up link . You can post questions regarding all the material covered in lectures, tutorials and the practice problems. You can also ask for clarifications on the assignment problems,

Course Assessment

Item Weight
Take-home quiz 5%
Assignments 45%
Final Exam 50%

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 online and remotely 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 Syllabus

Some of the topics to be covered in COMP3121/9101 include:

Introduction:

Algorithm Analysis:

  • Proving correctness of algorithms
  • Stable Matching Problem

Divide-And-Conquer Method:

  • Asymptotic behavior, recurrences, summations, estimations
  • Weighing coins
  • The Master Theorem
  • Applications of the Master Theorem: median of medians
The Greedy Method:
  • When greed pays off - foundations of the Greedy Method
  • Activity Selection problem
  • Discrete (0–1) Knapsack Problem
  • File compression: Huffman Codes
  • Directed acyclic graphs and topological sorting
  • Dijkstra's algorithm
  • Minimum spanning trees

Network Flow Algorithms:

  • Flow networks
  • Ford – Fulkerson algorithm and more
  • Applications including Maximum Bipartite Matching

Dynamic Programming Method:

  • Longest Increasing Subsequence
  • Making change
  • Assembly line scheduling
  • Multiplying chains of matrices
  • Longest Common Subsequence
  • Edit distance
  • Bellman – Ford algorithm
  • Floyd – Warshall algorithm
String Matching Algorithms:
  • “Naïve” string matching algorithm
  • Rabin – Karp hashing algorithm
  • String matching using finite automata

Linear Programming:

  • Formulating linear programs
  • Linear programming and integer linear programming

Intractable Problems and Approximation Algorithms:

  • Feasibility of algorithms
  • Polynomial Time problems, NP problems, intractable problems
  • NP complete problems and NP hard problems
  • Feasible reductions
  • Approximate solutions using Greedy Method and DP

Practicing problem-solving while having fun:

  • Assorted puzzles

Course Schedule

Week Tue Lecture
Thu Lecture
Tutorial Notes
1 Introduction Preliminaries
Revision of Data Structures and Algorithms
Take-home quiz: released Tuesday
Assignment 1: released Tuesday
2 Divide and Conquer I
Divide and Conquer II
Divide and Conquer
Take-home quiz: first attempt by week 2 tutorial
3 The Greedy Method I
The Greedy Method II
The Greedy Method
Assignment 1: due Friday
4 The Greedy Method III
The Greedy Method IV
The Greedy Method (continued)
Assignment 2: released Tuesday
5 Flow Networks I
Flow Networks II
Flow Networks

6 TBC
TBC No tutorials (flex week)
7 Dynamic Programming I
Dynamic Programming II
Dynamic Programming
Assignment 2: due Monday
Assignment 3: released Tuesday
8 Dynamic Programming III
String Matching
Dynamic Programming (continued)
9 Linear Programming
Intractability I
String Matching & Linear Programming
Assignment 3: due Friday
10 Intractability II
Exam Revision
Intractability & Exam Revision

Course Evaluation and Development

This course is evaluated each session using the myExperience system.

In the previous offering of this course, students requested that weekly tutorials be scheduled in the timetable. They also reported that the assignment workload was too high, and that expectations were unclear at the start of term.

Based on their comments, we are introducing weekly scheduled tutorials. We have reduced the assignments from four sets of four problems each down to three sets of three problems each. We will also publish a Getting Started guide to Moodle and run a take-home quiz in week 1 so that students are aware of our expectations from the start of term and receive some feedback before the census date.

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.

Resource created Thursday 02 February 2023, 07:30:20 PM, last modified Thursday 09 March 2023, 12:30:30 PM.


Back to top

COMP3121/COMP9101 23T1 (Algorithms and Programming Techniques) is powered by WebCMS3
CRICOS Provider No. 00098G