PROFESSOR EBRAHIM A. MATTAR
Professor of Robotics/Artificial intelligence with a focus on Cybernetics
College of Engineering, University of Bahrain
Research Interests:
Robotics, Cybernetics, AI
Now working on Electroencephalography (EEG) Brainwaves Decoding for Building Robotics Cognition
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
​