|COMP3506/7505 Algorithms and Data Structures|
Offered by Yufei Tao, Semester 2, 2016.
Tutors: Junhao Gan (firstname.lastname@example.org), Tony Gong (email@example.com), Dan He (Doris, firstname.lastname@example.org), Benjamin Martin (email@example.com).
In this course, we will study the fundamental data structures and algorithms. Such knowledge is at the core of computer science, and allows us to write faster programs, especially ones whose running time has attractive worst-case bounds. Techniques for analyzing the performance of algorithms will also be discussed in detail. Tentative topics to be covered include searching in ordered lists, hashing, sorting, priority queues, binary search trees, fundamental graph algorithms, and introduction to greedy algorithms and dynamic programming.
News 1 (23 Jul): Hello, all.
News 2 (27 Jul): Please be reminded that tutorials will start in Week 2 (as stated in the course profile).
News 3 (28 Jul): Special exercise list 1 has been released! Scroll down the page to see them.
News 4 (6 Aug): Special exercise list 2 is released.
News 5 (7 Aug): The instructor has released two sets of "regular exercises" -- regular in the sense that their solutions will be released in full. Scroll down the page to have fun with these exercises, and thereby, test the knowledge of yourself on the course contents.
News 6 (8 Aug): This Wed (10 Aug) is a public holiday, on which there will be no lectures and tutorials. Students in (tutorial) Sessions 1-5 can either (i) go to any other sessions, or (ii) make appointments with the tutors or the instructor himself for special tutoring. The email addresses of the tutors and the instructor can be found at the top of the page.
News 7 (9 Aug): The instructor will attend tutorial Session 6 on Aug 11.
News 8 (9 Aug): A forum has been set up in blackboard for discussing the course materials. However, the instructor prefers all questions be sent to him by email (he is old school).
News 9 (15 Aug): Special exercise list 3 is released.
News 10 (15 Aug): Regular exercise list 3 is released.
News 11 (15 Aug): The first class for the "training camp" will be held from 6:15pm to 7:15pm, in Room 631 (DKE Multimedia Lab) of Building 78.
News 12 (16 Aug): The instructor will attend tutorial Session 3 this week.
News 13 (17 Aug): A new section is added for the training camp. Scroll to the bottom to find it. News 14 (22 Aug): Quiz 1 solutions released. News 15 (22 Aug): Special exercise list 4 released. News 16 (22 Aug): Your Quiz 1 papers are ready for collection. Please make appointments with Tutor Junhao Gan (firstname.lastname@example.org) for this purpose. News 17 (22 Aug): Regular exercise list 4 released. Also, the instructor will go to tutorial Sessions 3 and 7. News 18 (23 Aug): This week the "training camp" will still be held from 6:15pm to 7:15pm, in Room 631 (DKE Multimedia Lab) of Building 78. These will be the default time and venue unless otherwise announced.
News 19 (23 Aug): Statistics of Quiz 1 released. Scroll to the Quiz section to see it. News 20 (24 Aug): Quiz 1 scores can now be found in Blackboard. News 21 (26 Aug): Special/regular exercise list 5 released. The instructor will go to tutorial Session 5.
News 22 (31 Aug): Starting from this week, the training camp lecture will start at 6:05pm, namely, this will be the new default time from now on.
News 23 (31 Aug): The scope of the mid-semester exam covers everything in Lecture Notes 1-10. News 24 (31 Aug): Special/regular exercise list 6 released.
News 25 (6 Sep): We still have one quiz paper that does not have a name. If you think it could be yours, please make an appointment with the instructor for identification. News 26 (7 Sep): The instructor will go to tutorial Session 5.
News 27 (8 Sep): Special/regular exercise list 7 released.
News 28 (18 Sep): Special/regular exercise list 8 released.
News 29 (18 Sep): Mid-Semester exam solutions released.
News 30 (20 Sep): Your mid-semester exam papers are ready for collection. Please make appointments with Tutor Junhao Gan (email@example.com) for this purpose. News 31 (20 Sep): No training camp this week. Sorry about this -- the instructor must get himself ready for a conference trip with a departing flight at 7am on Thu morning. Please accept his apology. News 32 (30 Sep): Special/regular exercise list 9 released.
News 33 (4 Oct): The scope of Quiz 2 overs everything in Lecture Notes 11-15. News 35 (5 Oct): The training camp resumes tonight! The instructor will give a double-lengthed talk. News 36 (8 Oct): All the lecture notes have now been uploaded! Notes 24 and 25 will not be examined. News 37 (8 Oct): Special/regular exercise list 10 released. News 38 (16 Oct): Special/regular exercise list 10 released. News 39 (16 Oct): Quiz 2 solutions released. News 40 (16 Oct): Your Quiz 2 papers are ready for collection. Please make appointments with Tutor Junhao Gan (firstname.lastname@example.org) for this purpose. News 41 (25 Oct): Special/regular exercise list 12 released. News 42 (4 Nov): Structure of the final exam: Part I: 10 multiple-choice questions (3 marks each); Part II: (i) 7 questions from special exercises (5 marks each), and (ii) 3 new questions: 10, 13, 12 marks, respectively. News 43 (16 Nov): Statistics of the final exam have been released.
|Time and Venues|
In-Class Quiz 1: 12.5% (4pm-4:25pm, Aug 16, covering Weeks 1-3)
Mid-Semester Exam: 25% (5pm-5:50pm, Sep 14, covering Weeks 1-7)
In-Class Quiz 2: 12.5% (4pm-4:25pm, Oct 11, covering Weeks 8-10)
Final Exam: 50% (Exam period, covering the whole semester)
Style of the Exams:
During this course, the instructor will gradually generate a list of special exercises without the solutions given. In the mid-semester and final exams, 35% of the marks will come from problems taken directly from that list. The rest 65%, however, will be from new problems.
|Lecture Notes and Textbook|
The instructor recommends the following textbook:
Introduction to Algorithms, 3rd Edition. By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
Ownership of the book is not compulsory. The instructor will make lecture notes available before each lecture. His notes will be self-contained, namely, containing all the details required in this course.
Lecture attendance is vital to grasp the materials taught.
The instructor has prepared the following exercises which he believes are useful for students to consolidate their understanding of the course materials. Unlike the "special" exercises (as will be explained in the next section of this page), solutions to these "regular" exercises are provided in full.
Exercises carrying a "*" may be difficult.
List 1 (uploaded at 2:30am, 7 Aug). Solutions (uploaded at 6pm, 8 Aug).
List 2 (updated at 9:30pm, 8 Aug). Solutions (updated at 9:30pm, 13 Aug).
List 3 (uploaded at 5:30pm, 15 Aug). Solutions (uploaded at 10:30pm, 17 Aug).
List 4 (uploaded at 11pm, 22 Aug). Solutions (uploaded at 11pm, 22 Aug).
List 5 (uploaded at 1:20am, 26 Aug). Solutions (uploaded at 1:30pm, 27 Aug).
List 6 (uploaded at 11:50pm, 31 Aug). Solutions (uploaded at 3am, 1 Sep).
List 7 (updated at 1:30am, 9 Sep). Solutions (uploaded at 1:30am, 9 Sep).
List 8 (uploaded at 11pm, 18 Sep). Solutions (uploaded at 11pm, 18 Sep).
List 9 (uploaded at 8pm, 30 Sep). Solutions (uploaded at 11am, 1 Oct).
List 10 (uploaded at 6:30pm, 8 Oct). Solutions (uploaded at 6:30pm, 8 Oct).
List 11 (uploaded at 1:40am, 16 Oct). Solutions (uploaded at 1:40am, 16 Oct).
List 12 (uploaded at 3:40am, 24 Oct). Solutions (uploaded at 3:40am, 24 Oct).
There will be no more regular exercises.
Additional Exercises If a Textbook Is Owned
[Growth of Functions] Exercises 2.2-1, 3.1-2, 3.1-3, 3.1-4, 3.2-4, 3.2-8.
[Sorting] Exercises 8.1-3*, 8.1-4*, 8.2-4, 8-5*.
[Linked List] Exercises 10.2-6.
[Hashing] Exercises 11.2-5, 11.3-5*, Problem 11-2. [Priority Queue] Exercises 6.1-4, 6.5-9, Problem 6-3.
[AVL-Tree] Exercises 12.1-3, 12.1-5, 12.2-5, 12.2-6, Problems 12-2, 13-1.
[Graph Basics] Exercises 22.1-5, 22.1-6*.
[BFS] Exercises 22.2-5, 22.2-7, 22.2-8.
[DFS] Exercises 22.3-4, 22.3-7, 22.3-8, 22.3-10.
[Topological Sort] Exercises 22.4-2, 22.4-3, 22.4-5.
[SCC] Exercises 22.5-1, 22.5-3, 22.5-5, 22.5-6.
[Fundamental Graph Challenges] Problems 22-2(e-h), 22-3, 22-4.
[SSSP] Exercises 24.3-6*, 24.3-7.
[MST] Exercises 23.1-3, 23.1-5, 23.1-8, 23.1-9, 23.1-10, 23.1-11. Problems 23-1, 23-4*.
As mentioned earlier, some problems in the mid-semester exam and the final exam will be taken directly from the special exercise lists below. No solutions to these exercises will be given. You are free to look for the solutions in any way (e.g., you may discuss them with your friends, the tutors, or even the instructor himself). Remember: during the exams, you will be allowed to consult only one piece of single-sided A4-sized paper. In other words, it is unrealisic to hope that you can write down all the solutions on that paper. You will need to comprehend the solutions to make sure you can answer them correctly in the exams.
List 1 (uploaded at 2:30pm, 28 Jul)
List 2 (uploaded at 5:30pm, 6 Aug)
List 3 (updated at 4pm, 15 Aug)
List 4 (uploaded at 8:45pm, 22 Aug)
List 5 (updated at 3:15pm, 30 Aug)
List 6 (uploaded at 11:50pm, 31 Aug)
List 7 (uploaded at 1am, 8 Sep)
List 8 (uploaded at 6pm, 16 Sep)
List 9 (uploaded at 11am, 1 Oct)
List 10 (uploaded at 7pm, 8 Oct)
List 11 (uploaded at 2am, 16 Oct)
List 12 (uploaded at 1am, 25 Oct)
There will be no more special exercises.
|Notes for the Training Camp|
Starting from Week 4, the instructor will organize a one-hour "bonus" lecture every week to a group of students that wants to explore more advanced computer science than what is taught in the class. The group will be referred to as the "training camp". The materials covered in the camp will not be tested in quizzes and exams. Nonetheless, they are released below for any one, inside and outside the camp, to access.
|Quizzes and Exams|
Quiz 1 (Solutions).
COMP3506 Stats: Average = 67.87, Max = 100
COMP7505 Stats: Average = 72.09, Max = 100
Mid-Semester Exam (Solutions).
COMP3506 Stats: Average = 57.3, Max = 100, the top 25 scores
COMP7505 Stats: Average = 61.5, Max = 85, the top 5 scores
Quiz 2 (Solutions).
COMP3506 Stats: Average = 78.69, Max = 100
COMP7505 Stats: Average = 83.92, Max = 100
Final Exam COMP3506 Stats: Average = 57.48, Max = 100, the top 25 scores
COMP7505 Stats: Average = 55.97, Max = 100, the top 5 scores