Courses Catalogue

Algorithm Analysis And Design

COURSE CODE: COS 3202
COURSE CREDIT UNIT: 4
ACADEMIC PROGRAMME: Computer Science, B.Sc
COLLEGE/SCHOOL/FACULTY: School of Mathematics and Computing
STATUS: Core
PROGRAMME TYPE: Undergraduate

Course Content and Outline

To ensure academic freedom for the individual faculty member the following is only suggested:

Chapter 1 2hrs

At the conclusion of week 1 the student should be able to discuss the following:

1. What is computer science?

2. The elements of good programming style and good project design.

3. Top-Down project design.

Chapter 2 2hrs

At the conclusion of week 2 the student should be able to describe the following in

detail:

1. The algorithms for manipulating singly, doubly, and circular Linked Lists.

2. The Implementation of Linked Lists using an array and pointer variables.

Lab: Students will begin coding first project.

Chapter 3 2hrs

At the conclusion of week 3 the student should be able to describe the following in

detail:

1. The algorithms for manipulating strings and character manipulation will

be discussed.

2. The implementation of these algorithms with Linked Lists.

Lab: Students will begin designing their second project.

 Chapter 4 2hrs

At the conclusion of week 4 the student should be able to describe the following in

detail:

1. The algorithms for manipulating stacks and queues.

2. The Implementation of the above using an array and Linked Lists.

At the conclusion of week 5 the student should be able to :

1. Apply stacks to parsing and recursion problems.

Lab: Begin to design and code third project

 Chapter 5 2hrs

At the conclusion of week 6 the student should be able to :

1. Discuss recursion by examining several examples.

2. Unfold the recursive program by coding it non recursively.

3. Discuss the computer’s use of stacks to support recursion.

4. Create the stack frames for a recursive program

Lab: Continue coding project #3.

Week 7 - Mid Term Exam

 Chapter 6 2hrs

At the conclusion of week 8 the student should be able to describe the following in detail:

1. tree definitions.

2. Algorithms for tree traversals, insertions, deletions.

3. The Implementation of trees using pointer variables and arrays.

Lab: Continue coding project #3.

 Chapter 7 2hrs

At the conclusion of week 9 the student should be able to describe the following in detail:

1. Algorithms for creating complete Binary trees and almost complete Binary trees.

2. Algorithms for Binary Search trees.

3. The Implementation of the above.

Lab: Begin to design and code fourth project

Chapters 8 2hrs

At the conclusion of week 11 the student should be able to:

1. Discuss sparse matrices and generalized dope vectors.

2. Implement the above with Linked Lists.

3. Understand graph terminology.

Lab: Continue work on project #4.

 Chapter 9 2hrs

At the conclusion of week 12 the student should be able to:

1. Implement graphs as adjacency matrix, adjacency list.

2. Implement Searching technique - Breadth First Search and Depth First Search

3. Describe various Graph algorithms

Lab: Continue work on project #4.

Chapter 10 2hrs

At the conclusion of week 13 the student should be able to:

1. Understand Algorithms for simple sorts and for best sorts.

Lab: Continue work on project #4.

Chapter 11, 12 10hrs

At the conclusion of week 14 the student should be able to:

1. Discuss algorithms for searching-hashing algorithm, binary and linear search.

2. Describe Data Management issues - secondary key searches, types of DBMS.