Home     Contact us    Feedback       
 
 
 
 

 

The Foundation Module Courses

Data Structure & Algorithms

Course Objectives
Students learn, in a comprehensive approach, the concepts of design and implementation of data types and how to create new data structures. They acquire the knowledge of the abstract data type (ADT) and the primitive data types in the most common programming languages. They acquire too, a good idea about the life cycle of computerized systems and software quality.

The second part that will be discussed in this course is the Algorithms. Students acquire a good knowledge about the simple and famous algorithms used in computerized systems, like Sorting and Searching. I addition, they will be able to compute the complexity of any algorithm.

PREREQUISITES
Introduction to Programming

Course Description

Lec. (1) Software Processes

1. What is software?
2. Software process models
3. Process iteration
4. Software specification
5. Software design and implementation
6. Software validation
7. Quality Software

Lec. (2) Algorithms and Programs

1. Expressing Algorithms
2. Narrative Description
3. Flowchart
4. An algorithmic notation
5. Programming language
High-level
Low-level
Object-language
6. A Solution Methodology
7. Program quality metric

Lec. (3) Data, Data Types
1. Primitive data types
2. Structured Data types
3. Arrays
4. Records
5. Pointers
Character string types
User-defined ordinal types
Enumerated types
Sub-range types
Constants, Variables and Expressions

Lec. (4) Statement-level Control Structure

1. Compound Statement
2. Selection from alternative actions
Looping

Lec. (5) Sub-programs

1. Fundamental of subprograms
2. Design Issues for subprograms
3. Parameter-Passing Methods
4. Functions & Procedures
Local & Global Variables
Variables life time

Lec. (6) Files

1. Definitions and concepts
2. Record Organisation
3. Sequential Files
4. Direct access Files

Lec. (7) Arrays and Structures

1. What is contiguous structure?
2. Advantages and disadvantages
3. Basic operations
4. One-dimensional array

5. Two-dimensional array
6. Mapping formula
Polynomial ADT
Sparse Matrix ADT
Mapping formula

Lec. (8) Linked Lists

1. What is linked contiguous structure?
Advantages and disadvantages
2. Basic operations
3. List variants
? Circularly Linked Lists
? Doubly linked list

Lec. (9) Stacks
1. Definition and Examples
2. Representing Stacks
Array representation
Linked list representation
3. Infix, Postfix, and Prefix

Lec. (10) Queues
1. Definition and Examples
Representing Queues
Array representation
Linked list representation
Lec. (11) Recursion

1. Recursive Definition and Processes
2. Writing Recursive Programs
3. Simulating recursions

Lec. (12) Sorting Algorithms

1. Selection sort
2. Merge sort
3. Quick sort


Lec. (13) Searching Algorithms

1. Sequential
2. Search tree
3. Binary search


References
Sommerville, Lan. Software Engineering, Addison-Wesley Publishers, 6th edition, 2001.
Tremblay, J , DeDourek, J., and Bunt, R. Introduction to Computer Science- an Algorithmic Approach. McGraw-Hill Computer Series. 1989
Sebesta R. W. Concepts of Programming Languages. Addison-Wesley Publishers, 1996.
Tenenbaum, A. M., Langsam, Y., and Augenstein, M. Data Structures Using C. Prentice-Hall International Editions, 1990.

Total Hours
Theoretical 39 hrs.
Practical 48 hrs.



Copyrights © 2003 Information Technology Incorporation. All rights reserved