top of page

CSCI  650  : 

Computer Algorithm Concepts

 

Office Hours :  Any time, please send an e-mail to : ebmattar@uob.edu.bh

Office No: 14-146-A

Office Location:  College of Engineering, Building 14.

Office Telephone:  ++ 973 17876286,  or  ++ 973 17876606

​

Pr-Request: 

Abstract Data Structures and their algorithms for implementation are reviewed.

 

The study and analysis of various topics such as storage and execution time requirements :

​

        Graph algorithms.

        Minimum spanning trees.

        Shortest paths.

        Maximal Matching.

        Internal Sorting.

        Asymptotic Analysis of recursive procedures.

        Divide-and conquer.

        Dynamic Programming.

        Local Search Algorithms.

        External Sorting and large-scale storage organization.

        Memory management and complexity classes.

 

Course Mark  Distribution:  

1- Assignments   (4 total )  10%

2- Practicals         (2 total ) 10%

3- Project  (Presentation)   10%

4- Midterm                         30%

5- Final  Exam                     40%

​

​

Course Text  Book:

Algorithm Design

Foundations, Analysis, and Internet Examples by Michael T. Goodrich and Roberto Tamassia, John Wiley & Sons, Inc.  ISBN: 0-471-38365-1.  Students are not expected to purchase the following books, but may find them useful. Some are textbooks from previous courses, and copies of these books are available in the library. Other texts on this area, using Java and other languages, are available in some library,  C++, Matlab, and Mathematica, and  Maths Toolbox.
 

No labs for this course

Course Assignments (TOPICS) :

​

This course introduces students to :

Out-of-the-box information environments, spanning ever-present or pervasive computing, context-aware and context-sensitive systems, information appliances, mobile computing, wearable computing and ambient computing.

It is expected that upon successful completion of the course, students will:

​

Understand common data structures and algorithms

Be able to apply that understanding to using the Java Collections Framework

Be able to implement new data abstractions.

Understand and be able to apply techniques for analyzing the effects of alternative algorithms and data structure Implementations on software performance.

Be able to program more effectively, by understanding and applying test-first programming, pair programming and object-oriented design .

The goals of this course are to extend and deepen the student's knowledge and understanding of algorithms and data structures and the associated design and analysis techniques. It examines previously studied algorithms and data structures more rigorously and introduces the student to "new" algorithms and data structures. It focuses the student's attention on the design of program structures that are correct, efficient in both time and space utilization, and defined in terms of appropriate abstractions.

​

Course  will be enhancing students within the following topics:

​

1.      Design principles

2.      Analysis tools

3.      Sequence ADT

4.      Priority queue ADT (used, but not covered in class)

5.      Dictionary ADT

6.      Sorting, sets, and selection

7.      Graphs

8.      Strings (not covered in class)

9.      Fundamental techniques

10.   NP-completeness

​

Course  Materials  Press to (Download):

​

Abstract Data Structures and their algorithms for implementation are reviewed.

The study and analysis of various topics such as storage and execution time requirements :

​

        Graph algorithms.

        Minimum spanning trees.

        Shortest paths.

        Maximal Matching.

        Internal Sorting.

        Asymptotic Analysis of recursive procedures.

        Divide-and conquer.

        Dynamic Programming.

        Local Search Algorithms.

        External Sorting and large-scale storage organization.

        Memory management and complexity classes.

 

Object Oriented Programming using Matlab (OOP):

Object Oriented Programming using Matlab (OOP), uses of classes (class), objects (obj) and data structure (struct) .. if you would like to use this approach in programming for this course, this will be great. This is optional, but it is always good to learn latest advanced programming tools. 

Download slides about Matlab (oop), from the Advanced MATLAB for Scientific Computing, Stanford University.  (press here to download >>> )   OOP-Matlab

​

bottom of page