|
EE2331 Data Structures and Algorithms
Part I
Course Duration: One Semester (13 weeks) Credit Units: 3 Level: B2 Medium of instruction: English Prerequisites: CS2363 Computer Programming or CS2311 Computer Programming or equivalent Precursors: Nil Equivalent Course: Nil Exclusive Courses: Nil
Part II
Course Aims: This aim of this course is to provide students with an understand of fundamental concepts of data structures and algorithm design, and to cultivate systematic programming discipline.
Course Intended Learning Outcomes (CILOs) Upon successful completion of this course, students should be able to: No. | CILOs | 1. | apply structural programming approach to solve more complex computation problems | 2. | demonstrate applications of standard data structures such as linked list, stack, queue and tree | 3. | solve computation problems using recursion where appropriate | 4. | understand different sorting and searching algorithms |
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) CILO1- 4 | Teaching activities are primarily based on lectures followed by basic examples to show students the basic skills. | Tutorials are conducted in laboratory such that students can acquire hands on experiences in program design. Tutorial exercises are typically short problems that are related to the topics discussed in the last lecture. | Assignments are usually problems of larger scale. Students will implement their programs from scratch. | The lecturer will provide guidance and feedback to students on their program design. This is essential in helping students to improve and establish a systemic programming discipline. | Students are expected to have 4 hours of self studies on the course materials per week, in addition to the time spent on doing the assignments. |
Timetabling Information Pattern | Hours | | 39 | Tutorials/Laboratory | 13 |
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) | Type of assessment tasks | Weighting (if applicable) | Continuous Assessment | Assignments, Test | 40% | Examination | Written exam | 60% 2 hours | Remarks: To pass the course, students are required to achieve at least 35% in course work and 35% in the examination. Grading of Student Achievement: Refer to Grading of Courses in the Academic Regulations Letter Grade | Grade Point | Grade Definitions | A+ A A- | 4.3 4.0 3.7 | Excellent: | B+ B B- | 3.3 3.0 2.7 | Good: | C+ C C- | 2.3 2.0 1.7 | Adequate: | D | 1.0 | Marginal: | F | 0.0 | Failure: |
Constructive Alignment with Programme Outcomes PILO | How the course contribute to the specific PILO(s) | 1 | An ability to apply knowledge of mathematics, science and engineering. | 3 | An ability to design a system, component, or process that conforms to a given specification within realistic constraints. | 5 | An ability to identify, formulate and solve engineering problems. | 10 | An ability to use necessary engineering tools. |
Part III
Keyword Syllabus:
Introduction Overview of data types and data structures; Pointers in C; Linear and multi-dimensional arrays and address mapping function; Parameter passing; Review of structured programming; Introduce concepts of data encapsulation and program invariants.;
Recursion Introduce the concept of recursion; Examples of recursive algorithms: factorials, Ackerman function, recursive binary search, towers of Hanoi, etc; Recursion and backtracking.
Analysis of Algorithms Overview of complexity analysis; The big-O notation; Ω and Θ Notation; Asymptotic Complexity; Best, average and worst cases.
Linked Lists Dynamic memory allocation and deallocation in C; Singly and doubly linked lists; Circular lists.
Stacks and Queues Stacks and their applications; Queues and their applications.
Trees Binary tree; Tree traversals; Example algorithms for tree operations; Applications: Huffman tree; Binary search tree; Heap. General tree and representations;
Sorting Algorithms Study different sorting techniques, for example bubble sort, insertion sort, heapsort, merge sort, quicksort, and radix sort; Comparison of the performance and complexity of the sorting algorithms.
Hash Tables Design of hash functions; Collision resolution and overflow handling; Algorithms for search, insert and delete operations; Performance analysis. Last Updated on: 17 Apr 2012
Related Links
Department of Electronic Engineering
|