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

Lecture:

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