TEACHING EXPERIENCE IN UNIVERSITY OF ST ANDREWS
- CS1002 – Object Oriented Programming (Martinmas Semester 2015-2016, Martinmas Semester 2016-2017)
- CS1003 – Programming with Data (Candlemas Semester 2014-2015, Candlemas Semester 2015-2016)
- CS2002 – Computer Systems (Candlemas Semester 2015-2016)
- CS2003 – The Internet and the Web (Martinmas Semester 2014-2015)
- CS2006 – Advanced Programming Projects (Candlemas Semester 2015-2016)
- CS3102 – Data Communications and Networks (Candlemas Semester 2014-2015)
- CS1005 – Computer Science in Everyday Life (Martinmas Semester 2016-2017)
- CS1006 – Programming Projects (Candlemas Semester 2014-2015)
MARKING COMPUTER SCIENCE AND IT MODULES
- CS1006 Programming Projects (Candlemas Semester 2014-2015)
- CS3102 Data Communications and Networks (Candlemas Semester 2014-2015, Candlemas Semester 2015-2016)
- CS3104-Operating Systems (Martinmas Semester 2014-2015)
- IS5102-Database Management Systems (Martinmas Semester 2014-2015)
LECTURING UNDERGRADUATE COURSES – LEBANESE INTERNATIONAL UNIVERSITY
- CSCI 200 – Introduction to Computers – Spring 2011-2012, Summer 2011-2012, Fall 2012-2013, Spring 2012-2013, Fall 2013-2014, Spring 2013-2014
- CSCI 475 – Artificial Intelligence – Spring 2012 – 2013, Summer 2012-2013, Spring 2013-2014: The course taught artificial intelligence concepts with an emphasis on search techniques. The course was divided into 2 parts: the first part introduced AI, agents and search algorithms and the second part introduced methods for knowledge representation and inference techniques (Propositional and First Order Logic). Practical works and assignments were conducted using the PROLOG Language. My responsibilities involved course lecturing, and giving hands on practice on programming in PROLOG.
- CSCI 440 – Algorithms – Summer 2012-2013, Fall 2013-2014: The course covered algorithms design and analysis (time complexity), recursion, divide and conquer, dynamic programming, and diverse algorithms including sorting algorithms such as Selection Sort, Insertion Sort, Bubble Sort, Shellsort, Quicksort, Mergesort, Heapsort etc.) and searching algorithms (key index search etc…) My responsibilities involved course lecturing.
- CSCI 380 – Software Engineering – Spring 2012-2013, Spring 2013-2014: This course was aimed at helping students build up an understanding of how to develop a software system from scratch by guiding students through the different phases of software life cycle. The course emphasised on problem formulating and solving. Students learned how to analyse a problem domain and how to develop the appropriate analysis and design methods to formalize the requirements using object oriented methods and appropriate theory. The course introduced students to the different software process models, project management, software requirements engineering process and systems analysis and design as a problem-solving activity. My responsibilities involved course lecturing.
- CSIT 390 – DBMS Development and Administration – Spring 2012-2013, Spring 2013-2014: The course taught students how to install, configure and maintain SQL Server 2008 R2 DBMS. Students learned how to create, administer, maintain, backup, tune-up, secure and query a database using the TSQL language. In addition they learned to design indexes, partition, import and export data. Advanced topics such as Authenticating, authorizing and assigning roles, clustering, mirroring, replication and SQL Server reporting services were also taught. My responsibilities involved course lecturing, and giving hands on practice on SQL Server 2008 R2.
- CSCI 335 – Database Systems – Fall 2012-2013, Fall 2013-2014: The course introduced students to the fundamentals of database systems. It included data modelling using ER, data normalization and data manipulation (Relational Algebra, Relational Calculus and SQL Queries). Students learned how to design, implement and query a relational database by using a DBMS such MS SQL Server. My responsibilities involved course lecturing, and giving hands on practice on MS SQL Server 2008.
- CSCI 300L – Intermediate Programming with Objects Lab – Fall 2012-2013: The course emphasised the principle concepts related to object oriented programming using the Java programming language. During the course, students learned how to build, debug, and run Java applications, as well as how to build java packages, import java built-in packages and developer defined packages. My responsibilities involved giving hands on practice on NetBeans IDE and on how to solve complex problems in Java.
- CSCI 265 – Computer Science Overview – Spring 2013-2014: This course presented a breadth coverage of computer science courses so that students would understand computing and appreciate technology’s impact on society. Topics included binary values and numerical systems; data representation; gates and circuits; computing components; problem solving and algorithm design; low-level and high-level programming languages; abstract data types and algorithms; operating systems; file systems and directories; information systems; computer networks; and the world wide web. My responsibilities involved course lecturing.
- CSCI 490 – Information System Development – Spring 2012-2013, Spring 2013-2014: It is the equivalent of senior projects course or module in other universities but was made as a taught and as a research course in the same time. The main objective of the course was to supervise a senior project topic that the student chooses during 4 months. The course contained several lectures on software engineering topics from Reusable Technology, Modeling with Classes , Using Design Patterns , Testing and Inspecting to Ensure High Quality and many other topics.
Supervising CS senior projects
- Supervised many final year undergraduate students
OTHER ACADEMIC DUTIES
- Participating in Peer review
- Participating in Curricula design of many courses such as Software engineering, Introduction to Computer, Database Systems, DBMS administration and Artificial Intelligence.
- Designing and teaching workshops on different topics