|
CS3334 Data Structures
Part I
Course Duration: One Semester
Credit Units: 3
Level: B3
Medium of Instruction: English
Pre-requisites: CS2331 Problem Solving & Programming /or CS2332 Object-Oriented Programming
Pre-cursors: CS2332 Object-Oriented Programming
Equivalent Courses: Nil
Exclusive Courses: Nil
Part II
Course Aims:
This course aims to provide students an appreciation to the fundamentals of computer science. Models and applications of data structures including heaps, search trees, hash tables and disjoint sets are introduced and evaluated. Mathematical tools for analysis of algorithms and data structures are discussed and applied. Students are given the opportunity to develop and implement applications of the data structures and their derivatives.
Course Intended Learning Outcomes (CILOs): Upon successful completion of this course, students should be able to: No. | CILOs | Weighting (if applicable) | 1. | implement operations of basic data structures; | | 2. | analyse efficiency of basic data structures; | | 3. | enumerate applications of basic data structures; | | 4. | apply mathematical analysis to similar data structures and algorithms; | | 5. | apply mathematical techniques to prove correctness of algorithms; | | 6. | evaluate and choose appropriate data structures to solve problems. | |
Teaching and learning Activities (TLAs): (Indicative of likely activities and tasks designed to facilitate students' achievement of the CILOs. Final details will be provided to students in their first week of attendance in this course)
Teaching pattern: Suggested lecture/tutorial/laboratory mix: 2 hrs. lecture; 1 hr. tutorial.
The course will focus on enabling students to understand and apply basic data structures in computer science. Basic characteristics of each data structure will be given in lectures and students are required to identify the steps in implementing the data structures. Mathematical tools to evaluate complexities of algorithms will then be introduced to students. Based on students' thorough understanding of the behaviour of data structures learnt, teacher will demonstrate how to use the tools to evaluate the efficiency of data structures. Students are then required to apply their knowledge on solving a problem.
Based on the course ILOs, the teaching/learning activities of this course may include: CILO No | TLAs | Hours/week (if applicable) | CILO 1, 2, 5 | Exercises – To enable students to get familiarised with characteristics of data structures and mathematical techniques for evaluating algorithm complexity and correctness, a series of small exercises are designed by teacher. Through working on example cases, students follow the algorithms through to recognise the operations of basic data structures and practise on mathematical analysis. (support ILO #1,2,5) | | CILO 3 | Survey Report – Students are asked to search printed and web literature and products as example applications of the data structures learnt in the course. They are required to compile a report to share their findings. (support ILO #3) | | CILO 2, 4, 6 | Programming Project – The project is to provide an opportunity for students to apply data structures to solving a problem. It should include algorithm design, proper use of data structures, learning new data structures and programming. Students should apply mathematical analysis to their own solution. (support ILO #2,4,6) | |
Assessment Tasks/Activities: (Indicative of likely activities and tasks designed to assess how well the students achieve the CILOs. Final details will be provided to students in their first week of attendance in this course)
The Course ILOs are assessed using the following approach: CILO No | Type of assessment tasks/activities | Weighting (if applicable) | Remarks | CILO 1 | Implement operations of basic data structures. Coursework – Students are required to bring answers of exercises to tutorials for discussions. For algorithm implementation, students show their programs in the Project. Class test/Exam – Questions will include example cases to test students' understanding of the behaviour of data structures. | | | CILO 2 | Analyse efficiency of basic data structures. Coursework – Students are required to demonstrate their understanding in the Project report. Class test – Questions will include example cases to test students' understanding of the mathematical analysis. | | | CILO 3 | Enumerate applications of basic data structures. Coursework – The quality of the survey report should reflect how much students are aware of the usefulness and importance of data structures. | | | CILO 4 | Apply mathematical analysis to analyse similar data structures and algorithms. Coursework – Students should demonstrate their ability to apply the technique in the Project. Exam – Questions will be set to test how well students can evaluate complexity. | | | CILO 5 | Apply mathematical techniques to prove correctness of algorithms. Exam – Questions will be included to test if students are able to prove correctness of an algorithm. | | | CILO 6 | Evaluate and choose appropriate data structures to solve problems. Coursework – In the programming project, the performance of the students can be shown from their choice of data structures and their justification. Exam – Questions may be set to test how well students can apply the knowledge and analytical thinking to solve a given problem. | | |
Grading of Student Achievement:
Examination duration: 2 hours Percentage of coursework, examination, etc.: 30% CW; 70% Exam Grading pattern: Standard (A+AA-…F) For a student to pass the course, at least 30% of the maximum mark for the examination must be obtained.
Part III
Keyword Syllabus:
Program correctness. Complexities of programs: notation, average and worst case analysis, complexities of common programming constructs. Sorting algorithms: merge sort, heap sort, quicksort, bucket sort. Algorithms for order statistics. Abstract data types: stacks, queues, heaps. Balanced search trees: AVL trees, red-black trees, 2-3 trees, B-trees. Hash tables. Merge-find sets.
Related Links
Department of Computer Science
|