Objectives 

        

Schedule     Course Outline    Assignment Policy      Grading Scheme     
    

The primary objective of this course is to provide the student with an advanced treatment of computer programming with an emphasis on design and implementation of abstract data structures. The coding language is C++. At the completion of the course, students will be capable of writing complex applications using structured programming methods.

 

 

Main Text

        Mark Weiss  (2000)  Data Structures and Algorithms using C++ (Second 

        Edition)  Addison Wesley Longman.

 
Recommended Text

        Bruno R. Preiss (2002) Data Structures and Algorithms With Object 

        Oriented-Design Patterns in C++; John Wiley & Sons, Inc.

 

        Deitel & Deitel  (2003)  C++: How to Program  (Fourth Edition); Prentice Hall


        Main & Savitch (2001) Data Structures and Other Objects Using C++ 

        (Second Edition); Addison Wesley Longman.

 
        Cay Horstmann (2003) Computing Concepts With C++ Essentials (Third 

        Edition); John Wiley & Sons, Inc.

 

 

                                    CLASS SCHEDULE

Time

Monday

Tuesday

Wednesday

Thursday

Friday

8 - 9

 

 

Lecture

LT2

 

 

9 - 10

Tutorial

TSR3

 

 

10 - 11

Tutorial

TSR3

 

Lab

ML6

(TK)

 

Lab

ML1

11 - 12

 

 

 

 

12 - 1

 

 

 

 

 

1 - 2

 

 

 

Lab

ML1(TK)

 

Lecture

LT2

2 - 3

 

 

Tutorial

TSR3

 

 

3 - 4

 

 

Tutorial

TSR3 (TK)

 

 

4 - 5

 

 

 

 

 

5 - 6

 

Lab

ML5

 

 

 

6 - 7

 

 

 

 


 

 

Course Outline

 

Review of C++ Programming Concepts

Program Structure 

Functions  

Variable Data Types  

struct, enum, union  

Pointers  

Vectors 

Template  

Classes and Data Abstraction  

Function Overloading 

 

:Abstract Data Types

Lists (Singly and Doubly Linked)

Queues

Stacks

Deques

Priority Queues

Binary Heaps

Dictionaries

BST 

AVL Trees 

Splay Trees 

B-Trees 

Sets

Disjoint Sets 

Forest 

Path Compression 

Weighted Unions 

Trees

Binary Trees, 

Binary Search Trees, 

Tree Traversal Algorithms.

 

Indices

Hash tables

Hash functions

Collision resolution

 

 Sorting

Internal sorting techniques.

Shell sort

Quicksort 

Heap sort

 

Graphs

Search techniques e.g. sequential, binary.

Scatter storage techniques 

Collision resolution 

 

       

Grading, Final Paper And Course Work

    

Area of Testing Percent of Grade
   

Mid-Term Exam:

Contents will be on the FIRST half of the course

20

One Programming Assignments:

15

Laboratory Assignments:

5

   

Final Exam Paper

Contents will be on the SECOND half of the course

60

 

   Lab and  Programming Assignment Marking Scheme

 

Area of Testing Percent of Score
   
Use of Structures 30
Functional Decomposition 30
 Documentation 20
 Effective use of White Spaces 5
 Execution 15

 

 

 Assignment Policy:

All assignments will be due by 4:00 p.m. on the given Friday. All work must be done by the  individual student unless otherwise indicated. At NO time and under NO circumstances will late submissions or DUPLICATED work be accepted.