You are on page 1of 3

Pusat Pengajian Sains Komputer

SCHOOL OF COMPUTER SCIENCES


SEMESTER II, ACADEMIC SESSION 2020/2021

Course Code/Kod Kursus CPT212


Course Title/Nama Kursus Design & Analysis of Algorithms / Reka Bentuk & Analisis Algoritma
Lecturer/ Pensyarah Assoc. Prof. Dr. Nurul Hashimah Ahamed Hassain Malim
Dr. Tan Tien Ping
E-mail/Tel./Bilik/Room No. nurulhashimah@usm.my / 04-6534645 / Room No: Level 7
tienping@usm.my / 04-6534386 / Room No: 522
Unit/Units 4
Student Learning Time/ 160
Masa Pembelajaran
Pelajar
Breakdown of Examinations / Peperiksaan 50% (2 hours/jam)
Assessments/Pecahan
Coursework / Kerja kursus 50%
Penilaian
Breakdown of Assignments / Tugasan 30% (2 assignments)
Coursework/Pecahan
Tests / Ujian 20% (2 tests)
Kerja Kursus
Type of Course/Jenis Core (Common) / Teras (Sepunya)
Kursus
Prerequisites (if any)/ Has taken CPT113 / Telah mengambil CPT113
Prasyarat (Jika ada)

Objective / Objektif The course aims to introduce students to:


• advanced data structures.
• various fundamental and practical algorithms
• analysis of algorithms.
• various algorithm designs.

Learning Outcomes / Hasil At the end of this course students will be able to
Pembelajaran (i) Describe the various algorithm designs based on their categories and
purpose.
(ii) Apply fundamental techniques of algorithms and algorithm design,
and their associated data structures in problem solving and
programming.
(iii) Distinguish between various algorithm designs based on elementary
analysis.

Course Synopsis/ Sinopsis The essence of this course is on advanced data structures and the design and
Kursus analysis of algorithms. The course covers a broad range of algorithms and their
analysis in OOP environment that include sorting, searching, and graph
algorithms. The course also introduces algorithms for string processing, memory
management, and advanced topics on algorithms.

1
Main References/ Rujukan 1. Goodrich, Tamassia, Data Structures & Algorithms in JAVA, 6th Edition, John
Utama Wiley, 2014.

Additional References/ 1. Goodrich, Tamassia, Algorithms Design and Applications, John Wiley, 2014.
Rujukan Tamabahan 2. Drozdek, Data Structures and Algorithms in Java, 4th Edition, Cengage
Learning, 2013.
3. Cormen, Leiserson, Rivest, Stein, Introduction to Algorithms, 3rd Edition,
The MIT Press, 2009.
4. Sedgewick, R., Wayne, K. Algorithms, (4th Ed.). Pearson Education, 2011.

Course Outcomes At the end of this course the students will be PO LT SS Assessment
(CO), Program able to: Methods
Outcomes (PO), Apply various data structures and algorithms in PO1 C3 Test (13), Final
Taxonomy Level (LT) problem solving. Exam (PA)
and Soft Skills Manipulate data structures or algorithms in PO2 P4 CTPS3 Assignment (03)
problem solving and programming.
Perform complexity analysis of algorithms. PO11 C4 Test (13), Final
Exam (PA)

(TOTAL STUDENT LEARNING TIME (SLT) BASED ON TEACHING-LEARNING ACTIVITIES)

No Kegiatan Pengajaran dan Pembelajaran/Teaching and Learning Activities JPP/SLT


1 Lectures 42
2 Revision for lectures (/including preparation) 42
3 Tutorials 14
4 Revision for tutorials 14
5 Practicals/Labs -
6 Revision for practical labs -
7 Other Student-Centred Learning (Face to Face) -

8 Revisions for other student-Centred Learning (Face to Face) -


9 Other Student-Centred Learning (Non Face-to-Face): 2 assignments x 20 hours 32
10 Continous assessment (Formal) 2
11 Preparation for continuous assessment: 2 tests x 2 hour 4
12 Final assessment(examination) 2
13 Preparation for final assessment (examination) 8
JUMLAH JPP/TOTAL SLT 160
UNIT/UNITS 4

2
No. TOPIC WEEK REFERENCE LECTURE TUTORIAL COURSEWORK

1. Basic Algorithmic Analysis 1-2 6 2 Assignment 1


1.1 Importance of algorithms. B1.C4, AR1.C1 (Week 2)
1.2 Asymptotic Analysis & Big-O Date: 13-4-2022*
Notation
1.3 Computational Complexity:
(i) Turing machine AR4.C2
(ii) Classes: P, NP, NP Complete
(iii) Example of problems in P and NP.
(iv) Solutions: brute-forced, dynamic.
1.4 Algorithm techniques: greedy, divide AR1.C10 –
and conquer, dynamic programming and AR1.C12
backtracking.
1.5 Analysis performance of simple data
structures
(i) Stacks B1.C6, B1.C7,
(ii) Queue B1.C9
(iii) Array lists
AR1.C2
(iv) Sequences with linked list

2. Sorting Algorithms 3-4 6 2


2.1 Elementary Sorting Algorithm - B1.C12
Insertion, Selection, Bubble
2.2 Efficient Sorting Algorithms – AR1.C8-AR1.C9
Mergesort, Quicksort, Radix

3. Searching and Sorting Algorithms on 5-7 9 3 Test 1 (Week 7)


Binary Trees B1.C8, B1.C9, Date: 18-5-2022*
3.1 Binary Search Tree B1.C11 Assignment 1 due
3.2 AVL Trees on Week 7
3.3 B, 2-4 Tree AR1.C4, AR1.C5
Date: 22-5-2022*
3.4 Priority queues
3.5 Heaps

Week 8: Break

4. Graph Algorithms 9-10 B1C14 6 2 Assignment 2


4.1 Data Structures B1C14.2 (Week 9)
4.2 Traversals B1C14.3 Date: 3-6-2022*
4.3 Directed Graphs B1C14.5
4.4 Shortest Paths B1C14.6
4.5 Spanning Trees B1C14.7

5. Hashing & Ordered Maps 11 B1C10 3 1


5.1 Maps tables B1C10.1
5.2 Hash Functions B1C10.2
5.3 Ordered Maps B1C10.3

6. Text Processing 12-14 B1C13 9 3 Test 2 (Week 12)


6.1 String Operations B1C13.1 Date: 22-6-2022*
6.2 Pattern Matching (Brute Force, B1C13.2 Assignment 2 due
Boyer-Moore) on Week 13
6.3 Text Compression (Huffman Codes, B1C13.4 Date: 1-7-2022*
Standard Tries)

7. Event-driven Simulation 15 AR4C6 3 1

JUMLAH 42 14

*Denotes tentative dates


*AR = Additional Reference

You might also like