Teaching

CSCI 133: Programming II, Undergraduate course, Omar Al-Mukhtar University [Winter 2024, Fall 2024]. The course will mainly include explanations and discussions of the following topics: Introduction to OOP; Classes and objects. Advanced object-oriented programming concepts: design, encapsulation and information hiding, separation of behavior and implementation. Classes and subclasses inheritance, interfaces, abstract classes, polymorphism, exception handling, file I/O, string manipulations and GUI design. Various data structures will be introduced including Array Lists and Linked Lists.


CSCI 131: Programming I, Undergraduate course, Omar Al-Mukhtar University [Fall 2022, Winter 2023, Fall 2023]. The course mainly includes explanations and discussions of the following topics: introduction to programming; writing, compiling, and running simple programs; expressions, variables, and assignments; control structures, functions, arrays, structures, and objects and classes.


CSCI 334: Visual Programming, Undergraduate course, Omar Al-Mukhtar University [Winter 2023, Fall 2023, Winter 2024, Fall 2024]. The primary objective of this course is to enable students to learn event-driven programming and build complete Windows applications. The course mainly includes explanations and discussions of the following topics: Introduction of event-drive programming and visual programming, controls (properties events), error handling, files manipulation, connecting to databases, reports, packaging, and distribution.


CSCI 499: Serve in the examiners committee for the IT Capstone Project (final year projects), Omar Al-Mukhtar University. [Winter 2022, Fall 2022]


COMP 3999: Evaluator of the co-operative work term report, Carleton University [Summer 2021, Fall 2021, Winter 2022]


COMP 5900 K / CSI 5137 IW00: Selected Topics in CS - Software Ecosystems, , Carleton University [Winter 2022]. The main objective of this seminar course is to introduce students to the field of software ecosystems, including extensive mining software ecosystems data, software reuse, evolution and quality of software ecosystems, and software dependencies management. At the end of the course, students will acquire the knowledge required to extract and mine data from software ecosystems artifacts and perform quantitative and qualitative analyses. In addition, students are expected to study, discuss, and critique research papers appearing in the current literature. Finally, students are expected to finish a research project.s


COMP-249: Object-Oriented Programming II, Concordia University [Winter 2020]. The course covers the higher-level subjects of object-oriented programming, including the design of classes, inheritance, composition, polymorphism, static and dynamic binding, abstract classes, exception handling, file I/O, recursion, interfaces, inner classes, graphical user interfaces, generics, collections and iterators. Various data structures will be introduced including Array Lists, Linked Lists, as well as Hash Tables, Tress and Sets (if time allows).


Teaching Assistant