I received my B.Sc. and M.Sc. degrees in Computer Science from Alexandria University. I received the PhD degree on 2008 from the Graduate School of computer science and engineering, The University of Aizu, Japan. Starting in Jan 2009, I worked an assistant professor of computer science in the department of Mathematics and Computer science, faculty of science, Alexandria University. Since Sept 2012, I have been working in the department of Mathematics and Computer science, faculty of science, Beirut Arab University. I worked as an executive manager of Alexandria University Digital Library, Apr 2011 until Aug 2012. I also worked as an executive manager of the Computer Unit, Mar 2010 until Nov 2010, Faculty of Science, Alexandria University. My research interests include parallel algorithm design and implementation, performance evaluation on multi- and many-core processors, resource provisioning and scheduling of cloud computing data centers, parallelizing digital image processing applications.
Introduction to programming, object oriented programming, data structures, computer architectures and organization, parallel computing, operating systems, databases systems, information systems, analysis and design of algorithms, multimedia systems, computer systems, microprocessors, analysis and design of information systems.
Advanced computer architectures, research topics in parallel computing, advanced information system analysis and design, Information retrieval, advanced analysis and design of algorithms, Image processing
Object Oriented Programming - CMPS 242
Class Meeting: Wednesday 10:00 - 12:00
Object oriented concepts and techniques for analysis, design, and implementation. Topics include methods and parameters passing, recursive methods, objects and classes, UML representation of classes, abstraction, encapsulation and information hiding, message passing, methods overloading and overriding, classes relationships (aggregation, composition), inheritance, polymorphism, abstract classes, interfaces, Exception handling, Files.
An Introduction to Object-Oriented Programming With JAVA: Fifth Edition McGraw-Hill. C. Thomas WU.
Students who successfully pass this course will be able to
1. Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism;
2. Design, implement, test, and debug programs in an object-oriented programming language, Java;
3. Describe how the class mechanism supports encapsulation and information hiding;
4. Design, implement, and test the implementation of "is-a" relationships among objects using a class hierarchy and inheritance;
5. Compare and contrast the notions of overloading and overriding methods in an objectoriented language;
6. Explain the relationship between the static structure of the class and the dynamic structure of the instances of the class;
7. Design and implement programs using input/output files; exception handling
1. Students will be able to understand and implement methods in classes.
2. Student will be able to analyze a problem, and identify and define the computing requirements appropriate to its solution.
3. Student will be able to learn the basic concepts of designing and implementing programs using javaprogramming language.
4. Student will be able to understand the different relationship between classes: aggregation, association, composition.
5. Student will be able to learn some basic concepts of object oriented programming such as late binding, inheritance, polymorphism, abstract classes and interfaces and using these concepts to design and implement object oriented applications.
6. Student will be able to implement object oriented programs using different tools and techniques such as Predefined methods, IDE (eclipse or NetBeans)
Download course syllabus as PDF
Computer Architecture - CMPS 304
Class Meeting: Thursday 13:00 - 15:00
This course intends to teach students what is the fundamentals of computer architecture and organization, to develop the ability to perform programming in an assembly language, to know how RISC Instruction sets are designed, how single cycle CPU and cache memories, designed, and evaluated using simple performance equations.
After the completion of this course, the students will be able to:
1. Recall instruction sets design principles, instruction formats, addressing modes and converting high-level language statements into assembly instructions.
2. Recall how computers do arithmetic operations
3. Recall how performance of programs is measured by different architecture designs in cache, CPU pipeline, and compiler.
4. Recall the understanding and ability to determine the processor (datapath and control) functions, i.e., how instructions are executed on the datapath using the control circuits.
5. Recall the pipeline design of CPUs and it enhances the execution of software
6. Recall the basics of computer memory hierarchy (RAM, cache, registers …); how cache memories are designed and work
7. Design and implement small programs using the MIPS assembly language using a MIPS simulator software such as SPIM.
Computer Organization and Design 3rd edition, David Patterson and John Hennessy, Elsevier Inc. 2005.
1. Computer Organization and Architecture, 8th or 9th edition, W. Stallings, Prentice Hall 2006.
Download course syllabus as PDF
Data and Algorithm Analysis - CMPS 414
Class Meeting: Tuesday 11:00 - 13:00
A systematic study of algorithms and their complexity. Topics include techniques for designing efficient computer algorithms, proving their correctness, analyzing their run-time complexity. Divide and Conquer algorithms, Greedy algorithms, Dynamic Programming algorithms, Sorting and Searching algorithms (Binary search, Radix sort, Bucket sort, Count Sort, Insertion sort, Merge sort, Quick sort and Heap sort), Order statistics, Graph algorithms (Graph traversal, Minimum spanning trees and Shortest path problems).
Introduction to Algorithms, Second Edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L.
Rivest and Clifford Stein. The MIT Press © 2001
The course aims to make the students be able to understand the fundamentals of algorithm analysis and design. Upon the completion of this course, they will be able to analyze the asymptotic performance of algorithms, demonstrate a familiarity with major algorithms and data structures, apply important algorithmic design approaches and methods of analysis implement different algorithms and data structures and compare their runtimes.
1. Student will be able to understand and analyze the asymptotic run time of algorithms
2. Student will be able to understand and use the Master theorem and the substitution methods to derive closed form expressions for some runtime recurrence relations.
3. Student will be able to understand and apply the divide-and-Conquer design approach, Greedy algorithms and dynamic programming technique, and when to use each of them in solving problems
4. Student will be able to understand, analyze and prove the correctness of different comparisonbased sorting algorithms (such as insertion sort, heap sort, quick sort and merge sort)
5. Student will be able to understand, analyze and prove the correctness of different linear sorting algorithms (such as radix sort and count sort)
6. Student will be able to understand and analyze order statistics algorithms such as finding kth element and the mean of a list.
7. Student will be able to understand graph representations, basic graph algorithms and their analyses.
8. Students will be able to implement the studied algorithms with different tradeoffs in the design approach.
Download course syllabus as PDF
List of publications:
1. Ahmed S. Zekri. Optimizing Image Spatial Filtering on Single CPU core. Multimedia Tools and
Applications (2016). doi:10.1007/s11042-016-4266-5 (2016). Springer:In press
2. Ramzi A Haraty, Sanaa Kaddoura, Ahmed Zekri. Transaction Dependency Based Approach for
Database Damage Assessment Using a Matrix. International Journal on Semantic Web and
Information Systems (IJSWIS), 13(2):74-86, Apr 2017. DOI: 10.4018/IJSWIS.2017040105. In press
3. Salah Al-Shami, Ali El-Zaart, Ahmed Zekri, Rached Zantout, Khaled Almustafa. Number
Recognition in the Saudi License Plates using Classification and Clustering Methods. Applied
mathematics & Information sciences, an international journal, 11(1): 1-13 (2017).
4. Auday Aldulaimy, Ahmed Zekri, Wassim Itani, Rached Zantout. Towards Solving the Problem of
Virtual Machine Placement in Cloud Computing: A Job Classification Approach. Journal of
Computer Science Vol. 12. Issue 3. Pages 113-127. DOI : 10.3844/jcssp.2016.113.127
5. Auday Al-Dulaimy, Wassim Itani, Ahmed Zekri, Rached Zantout. Power management in
virtualized data centers: state of the art. Journal of Cloud Computing: Advances, Systems and
Applications. (2016) 5:6. DOI 10.1186/s13677-016-0055-y (SpringerOpen)
6. Ahmed S. Zekri. Multi-threaded computation of the Sobel image gradient on Intel multi-core
processors using OpenMP library. International Journal of Computer Science & Information
Technology (IJCSIT), Vol. 8, No. 2, pp.89 - 102, April 2016. DOI:10.5121/ijcsit.2016.8207
7. Sanaa Kaddoura, Ramzi A Haraty, Ahmed Zekri, Mehedi Masud. Tracking and Repairing
Damaged Healthcare Databases Using the Matrix. International Journal of Distributed Sensor
Networks (online), Volume 2015, Article ID 914305, 8 pages, August 2015
8. Ahmed S. Zekri. Enhancing the matrix transpose operation using Intel AVX instruction set
extension. International Journal of Computer Science & Information Technology (IJCSIT), Vol. 6,
No. 3, pp.67-78, June 2014
9. Ahmed S. Zekri, Stanislav G. Sedukhin. Level-3 BLAS and LU Factorization on a Matrix Processor.
IPSJ Digital Courier Vol.4, pp. 151-166, 2008 and IPSJ Transactions on Advanced Computing
Systems, Vol.49 No.SIG2, pp.37-52, March 2008
Refereed International Conferences and book chapters
10. Salah Al-Shami, Ahmed Zekri, Ali El-Zaart, Rached Zantout. On the Parallelization of Closed-set
Patterns Classification for an Automatic License Plate Recognition System. Accepted at the
international conference on Sensors, Networks, Smart and Emerging Technologies. September
2017 in Beirut, Lebanon
11. Rawas, S., Itani, W., Zekri, A., & El Zaart, A. ENAGS: Energy and Network-aware Genetics
Scheduling Algorithm on Cloud Data Centers. Accepted for publication in Proceedings of
The second International Conference on Internet of Things, Data and Cloud Computing (ICC
2017). March 2017.
12. Salah Al-Shami, Ali El-Zaart, Rached Zantout, Ahmed Zekri, Khaled Almustafa. 'Intelligent
Recognition of Closed-Set Characters'. Proceedings of the 22 International Scientific Conference
of LAAS “The Social Avenues of Research” Holy Spirit University of Kaslik (USEK), Kaslik,
Lebanon, 14 - 15 April, 2016 (Poster)
13. Auday Aldulaimy, Wassim Itani, Rached Zantout, Ahmed Zekri. The Effect of Bandwidth Allocation
on Power Efficiency in Cloud Data Centers. Proceedings of the IEEE 11th International Computer
Engineering Conference (ICENCO), Cairo, Egypt, Dec 2015.
14. Auday Aldulaimy, Rached Zantout, Ahmed Zekri, Wassim Itani. Job Classification in Cloud
Computing: The Classification Effects on Energy Efficiency. Proceedings of the IEEE/ACM 8th
International Conference on Utility and Cloud Computing, At Limassol, Cyprus, December 2015.
15. Ramzi A. Haraty, Sanaa Kaddoura, Ahmed Zekri. Information Warfare: Fighting Back Through
the Matrix. Proceedings of the IEEE Symposium Series on Computational Intelligence (SSCI
2015), CAPE TOWN, SOUTH AFRICA, December 2015
16. Ahmed Zekri. Restructuring and implementations of 2D matrix transpose algorithm using SSE4 vector
instructions. Proceedings of the International Conference on Applied Research in Computer
Science and Engineering (ICAR2015), Beirut, Lebanon, October 2015
17. Salah Al-Shami, Ali El-Zaart, Rached Zantout, Ahmed Zekri, Khaled Almustafa. The recognition of
the closed-set patterns in the Saudi license plates. Proceedings of the International Conference on
Applied Research in Computer Science and Engineering (ICAR2015), Beirut, Lebanon, October
18. S. Rawas, W. Itani, A. Zaart, A. Zekri. Towards Greener Services in Cloud Computing: Research and Future Directives. Proceedings of the International Conference on Applied Research in Computer Science and Engineering (ICAR2015), Beirut, Lebanon, October 2015
19. S. Al-Shami, A. El-Zaart, R. Zantout, A. Zekri, K. Almustafa. A New Feature Extraction Method
for License Plate Recognition. Proceedings of the Fifth International Conference on Digital Information and Communication Technology and its applications DICTAP2015, pp. 64-69, April,
2015 Beirut, Lebanon, April, 2015 (DOI: 10.1109/DICTAP.2015.7113172)
20. Hanadi Atwe, Ahmed Zekri, Lama Hamandi. Parallelizing Sobel Edge Detection Algorithm on a
Multi-core processor. 21 st LAAS International Science Conference, Saint Joseph University
(USJ), pp. 533-534, Beirut, Lebanon, April 2015 (Extended Abstract)
21. Ahmed S. Zekri. An implementation of matrix transposition using SSE instructions. Proceedings
of the 19th LAAS International Science Conference - New Frontiers in Sciences. Lebanese
American University, Beirut, Lebanon, April 5–6, 2013 (Poster)
22. Ahmed S. Zekri. Three Dimensional SPMD Matrix-Matrix Multiplication Algorithm and A Stacked
Many-core Processor Architecture. Book chapter, Innovations and Advances in Computer,
Information, Systems Sciences, and Engineering, Lecture Notes in Electrical Engineering, Vol. 152,
1139-1150 , 2013
23. Ahmed S. Zekri. Three Dimensional SPMD Matrix-Matrix Multiplication Algorithm and A Stacked
Many-core Processor Architecture. International Joint Conferences on Computer, Information,
and Systems Sciences, and Engineering (CISSE 11), University of Bridgeport, USA , Dec 3-6, 2011
24. Stanislav Sedukhin, Ahmed Zekri and Toshiaki Miyazaki. Orbital Algorithms and Unified Array
Processor for Computing 2D Separable Transforms. The 5th International Symposium on
Embedded Multicore Systems-on-Chip, in conjunction with the 39th Int. Conference on parallel
Processing (ICPP 2010), San Diego, California, USA, September 13-16, 2010
25. Ahmed S. Zekri, Stanislav G. Sedukhin. 2-D Separable Transforms on a Matrix Processor.
Proceedings of the ISCA 21st International Conference on Computer Applications in Industry
and Engineering, pp. 106-111, CAINE 2008, November 12-14, 2008, Honolulu, Hawaii, USA
26. Ahmed S. Zekri, Stanislav G. Sedukhin. Design and evaluation of data-parallel algorithms on a
matrix processor. Proceedings of the 1st Egypt-Japan International Symposium on Science and
Technology EJISST2008, June 8-10, Tokyo, Japan 2008
27. Ahmed S. Zekri, Stanislav G. Sedukhin: Evaluating the Performance of Basic Linear Algebra
Subroutines on a Torus Array Processor. Proceedings of the 7th IEEE International Conference
on Computer and Information Technology CIT 2007, pp. 300- 305, Seoul, Korea 2007
28. Ahmed S. Zekri, Stanislav G. Sedukhin. Fine-grained Matrix Multiply-Add on a Torus Array
Processor. Proceedings of the ISCA International Conference on Computers and Their
Applications CATA07, pp.44-51, USA 2007
29. Ahmed S. Zekri, Stanislav G. Sedukhin. Performance Evaluation of Basic Linear Algebra
Subroutines on a Matrix Co-processor. Parallel Processing and Applied Mathematics, 7th
International Conference PPAM 2007, LNCS 4967, pp. 1190-1199, September 9-12,Gdansk,
30. Ahmed S. Zekri, Stanislav G. Sedukhin. Matrix Transpose on 2D Torus Array Processor.
Proceedings of the 6th IEEE International Conference on Computer and Information Technology
CIT 2006, pp. 45, AizuWakamatsu City, Japan 2006
31. Ahmed S. Zekri, Stanislav G. Sedukhin. The General Matrix Multiply-Add Operation on 2D Torus.
Proc. of the 20th IEEE International Parallel and Distributed Processing Symposium IPDPS 2006,
April 25-29, Rhodes Island, Greece 2006
32. Ahmed S. Zekri, Stanislav G. Sedukhin. Computationally Efficient Parallel Matrix-Matrix
Multiplication on the Torus. 6th international symposium, ISHPC 2005, LNCS 4759, pp. 219-226,
September 7-9, Nara City, Japan 2005
33. Ahmed S. Zekri, Stanislav Sedukhin, Blocked Matrix Multiply-Add on 2D Torus, Technical Report
2006-1-002, 16 pages, Oct 2006, The University of Aizu, AizuWakamatsu city, Japan
34. Ahmed S. Zekri, Stanislav Sedukhin, Matrix Transpose on 2D Torus, Technical Report 2005-1-
001, 10 pages, Dec 2005, The University of Aizu, AizuWakamatsu city, Japan
Multi-core processors programming: studying the restructuring of existing sequential algorithms in linear algebra applications and image processing to suit the micro-architecture of the general-purpose multi-core processors. Implementing these new algorithms using the OpenMP multi-threading library and the streaming SIMD extensions, such as SSE/AVX, that exist in the processor architecture. Evaluating the performance of the new algorithms and compare with other conventional ones to draw conclusions and delineate future directions.
Cloud computing: Investigating different scheduling algorithms to effectively manage the computing resources in data centers while reducing the energy consumption. The scheduling problem is represented as optimization problems, which are solved using several methods such as multi-choice knapsack, Bin-packing algorithm and genetic algorithms. Different scheduling heuristics are proposed and used to solve the optimization problems.