Teaching

Over the last decade, I have dedicated much of my time to quality teaching and research as well as to developing courses and educational materials. As a result, I have acquired extensive teaching experience by teaching 17 unique Courses14 different Course-Labs, and conducting 4 workshops on different topics.

Recent Courses Taught (17)

  • 2019-24Fall

    Computer Vision (GEIT2421) - Taught 6 times

    How can computers understand the visual world of humans? How should we develop and apply the existing algorithms so that computers can ‘understand’ or ‘recognize’ objects in a given image. This course deals with these kinds of issues where perception is formed from a given image. Introduction to the basic concepts in computer vision. Students should be able to perform basic image analysis using algorithmic techniques. Students learn how to use MATLAB or OpenCV to implement algorithms related to computer vision.

  • Spring2019-24

    Artificial Intelligence (COSC 4362) - Taught 7 times

    The course presents an overview of artificial intelligence and its methods for solving problems. Basic algorithms for finding solutions to problems or adaptively improving responses to situations are discussed. Expert systems, genetic algorithms, and intelligent agents are among the areas that are explored.

  • 2020-24Spring

    Machine Learning (ITAP/COEN 4393) - Taught 3 times

    This course is about how to make computers automatically learn from data. It is also about finding patterns in data so that computers can solve difficult problems with the help of observed patterns.

  • Spring2019-21

    Computer Graphics (GEIT 2421) - Taught 4 times

    This course aims to introduce output primitives and their attributes and apply 2D and 3D geometric transformations. This course also introduces 2D and 3D viewing, representing 3D objects and rendering their surfaces. Illumination models will also be introduced.

  • Summer2016-21

    Computer Organization (GEIT 1311) - Taught 9 Times

    This course examines the functional components of computer systems. Topics discussed include processors, memory types and hierarchies, buses, I/O, interrupts, etc. with emphasis on how they affect program execution, parameter passing and inter-program communications between programs written in diverse languages.

  • Spring2018-21

    System Programming (COSC 3411) - Taught 7 Times

    Systems programming is the study of the basic programming principles and skills for building systems software, including the introduction to UNIX, shell programming, and Perl programming.

  • Spring2017

    Web Server Management (ITAP 3471)

    The primary objective of this course is to give students a comprehensive overview of the tools and techniques needed to successfully administer Web servers. The course is designed so as to cover topics that are relevant to the role of a Web server administrator. Topics include installation, configuration, and administration of Web servers on common hardware/software platforms.

  • 2019-23Fall

    Business Intelligence (ITAP 3382) -Taught 2 times

    The objective of this course is to give students an understanding of key issues involved in business intelligence applications in organizations. The course is designed so as to cover topics that are relevant from a business intelligence perspective. It is oriented toward the provision of online access to aggregate data analysis results to a variety of physically distributed organizational users. It includes a mix of lectures (some of which are conducted in the laboratory) and discussions on contemporary articles from industry publications.

  • 2020Spring

    Introduction to Cryptography (COSC 3354)

    This course has both theoretical and practical aspects. Students develop principles behind modern cryptography. They gain an understanding of and appreciation for cryptographic applications in network security. This course makes an extensive use of the PMU infrastructure to provide communication between faculty and students. While the course does not include a structured laboratory component, practical assignments/projects are assigned to ensure students gain relevant practical exposure.

  • 2024Summer

    Requirements Engineering (SOEN 3311) - Taught 3 times

    This course exposes students to the problem of determining and specifying what a proposed software system should do, why and for whom the system is needed—not how the system should do it, which is the topic of downstream software engineering activities such as design and implementation. The course will discuss concepts for systematically establishing, defining, and managing the requirements for a large, complex, changing and software-intensive systems, from technical, organizational. and management perspectives. The course will consider the past, present, and future paradigms and methodologies in requirements engineering. The course will involve building models of both requirements engineering process and requirements engineering product, concerning both functional and non-functional goals/requirements/specifications, using a systematic decision-making process.

  • 2024Summer

    Assessment III (Senior Design Project) - Taught 4 times

    Course Overview This is the capstone course required of all students pursuing an undergraduate degree program within the College of Information Technology. The objective of this course is to bring together in an applied manner the knowledge and skills obtained by the students throughout their undergraduate program. The course is designed so as to cover topics that are relevant from an integrated IT systems design and implementation perspective. The term “integrated IT systems design and implementation” refers to complex collaborative efforts that bring together knowledge skills in the related areas of computer science, computer engineering, and information technology (as covered by the three undergraduate programs offered by the College of Information Technology). The course is very applied. One of its main components is a team project focusing on integrated IT systems design and implementation. The course also includes a mix of speakers’ presentations, project work, and discussions on contemporary articles from industry publications.

  • 2024Summer

    Software Architecture and Design (SOEN 4311)- Taught 2 times

    The main goal of this course is to provide an introduction to the area of designing a software system. The challenges that are faced and the techniques used in professional design of complex industry-grade software will be covered. This course will also expose students to several research topics in the area of software engineering. This course presents software design principles in the context of software engineering that enables software engineers to produce and deliver software on-time, on-budget, and on specification.

  • 2020Summer

    Building Electronic Commerce (MISY 4331)

    This course focuses on the concepts and issues of electronic commerce. Nothing in modern history has influenced the way that we do business more than the Internet. New business models using e-commerce are discussed in specific business situations. Students design and build a Web site using HTML5, anc web programming techniques. New business models using e-commerce are discussed in specific business situations. Students analyze business situations, design ecommerce operations, build ecommerce using turnkey solutions, monitor the system using ecommerce analytics and commercialize their application using digital marketing techniques.

  • Fall2015

    Introduction to Computing (GEEN 2312)

    This course is an introduction to computer systems, problem solving methods and algorithm development. Structured programming is taught using the programming language C, or C++, and JAVA. It includes designing coding, debugging and documenting programs using techniques of software development cycle. MATLAB, a tool that enables students to solve mathematical problems, is also taught.

  • 2022Spring

    Computer Science I (GEIT 1411)

    The course is an introduction to programming and to the use of algorithms in designing programs. A software engineering approach to developing computer programs is stressed and object-oriented concepts are introduced. The course examines standard control structures, approaches to modularization, and the use of primitive and structured data types.

  • Fall2016-17

    Introduction to Information Technology (ITAP 1311) - Taught 2 Times

    This course is designed to provide the students with an introduction to information systems. It includes a discussion of the fundamental principles, generalizations, and theories of Information Technology. Students are exposed to many of the areas of information Technology including databases, telecommunications, Networking, software and hardware concepts, and information security.

  • Fall2016

    Introduction to Computer Concepts and Applications (ITLB 1311) - Taught 7 Times

    ITAP 1311 is designed to provide the students with an introduction to information systems. It includes a discussion of the fundamental principles, generalizations, and theories of information technology. Students are exposed to many of the areas of information technology including databases, telecommunications, networking, software and hardware concepts, and information security.

  • Fall2015

    Marketing Research (MBA 6122) - MBA Students Technical Sessions

    This course introduces students to the concept and importance of market research as a powerful tool in strategic decision-making. It emphasizes market research tools, data gathering, analysis, and results interpretation. It cover introduction in market research, designing market research including sampling techniques, process of gathering information, information analysis and data presentation, preparing the final report and communicating results.

Course Labs Conducted (14)

  • Fall2018

    Digital Logic Design / Digital Systems (COEN-3323)

    TOPICS COVERED: Measurement of Digital Logic Gates, Implementation of Basic XOR Gates, AND-OR-INVERTER (A-O-I) GATE, Half and Full Adder Circuits, Half and Full Subtractor Circuits, Comparator Circuit, Encoder and Decoder Circuits, Multiplexer and Demultiplexer Circuits, Flip-Flops R-S And D Flip-Flop, Flip-Flop J-K Flip-Flops.

  • Spring2016

    Embedded Systems (COEN 4413) - Taught 10 Times

    TOPICS COVERED: Arduino LED Blink, Arduino LED Fading (Analog Output), Arduino Push Button (Digital I/O), Arduino Tones and Claibrating Sensors, Arduino Servo Motor Control, Arduino LCD and Serial Input, Arduino Analog Input, Arduino Keyboard and Mouse Control, Raspberry Pi: Raspbian OS Installation, Raspberry Pi: Python Programming, Raspberry Pi: GPIO

  • Spring2016

    Cloud Computing (ITAP 4315) - Class Sessions

    TOPICS COVERED: Basic concepts of Cloud Computing in terms of Application Development, Deployment and Management, Cloud setup architecture designing based on the application requirements, Amazon Web Services basics (Background/Pricing/Regions/OS) and overview of other cloud service providers, Setup of the AWS EC2 Compute Instance, AMI- OS Image Management, Setup of S3 Storage, CloudFront, Elastic Transcoder, RDS and SES Cloud Services, Setup of VPC, Route53, Security Management (IAM, Security Groups, Polices, SNS), Application Deployment and Integration over Cloud Infrastructure

  • Spring2017-18

    Web Server Management (ITAP 3471) - Taught 2 Times

    TOPICS COVERED: Window Server 2012: Introduction to Window Server 2012, Window Server Edition, Desktop changes, Active Directory changes, Networking changes and Management tools, Preparing for server installation and configuration: Identify server categories and evaluate server components, Planning for system disasters and recovery, Understand the installation process, Install Windows Server 2012 R2, set up IP addressing and configure TCP/IP, Install and configure domain name server (DNS), Install and configure IIS, C. Managing a Web server: User authentication, manage users, groups, and file system permissions, Share resources in a network, Enforce network policies, Securing a Web server: Identify threats and vulnerabilities, Secure data transmission, OS, and server applications, Authenticate Web users, Performance tuning: Monitor Web servers and Web applications, Analysis tools for Web servers.

  • Fall2015-17

    Programming Languages (COSC 4461) - Taught 4 Times

    TOPICS COVERED: Lisp: Syntactic Structure, Context-Free Grammars, Grammars for Expressions, Structured Programming, Syntax, Control Flow, Data Representation, Types, Arrays, Procedure Activation, Parameter-Passing Methods, Object Oriented, Grouping of Data and Operations, Objects, Inheritance Semester Break, Functional Programming, Types, Expression Evaluation, Functional Programming: Lists, Logic Programming, Prolog: Data Structures, Programming Techniques

  • Fall2015-19

    System Programming (ITAP 3411) - Taught 7 Times

    TOPICS COVERED: Linux Introduction and Ubuntu Installation, Linux commands for Files and directories manipulation, Linux commands for System Users Management , UNIX Shell Programming practice, Introduction to C Programming, Pointers, memory allocation, and functions in C, Introduction to Systems programming in C (file manipulation, etc), Process Control in C, Introduction to Python Programming, File manipulation and task Automation using Python, Modules in Python.

  • Spring2019

    Web Programming (ITAP 1312)

    TOPICS COVERED: HTML Basics, Introduction to XHTML, Cascading Style Sheets™ (CSS), JavaScript: Introduction to Scripting, Introduction to Scripting Laboratory exercises, Control Statements I, Control Statements II, Functions, Arrays, Objects, Document Object Model (DOM): Objects and Collections

  • Fall2015-17

    Computer Science 1 (GEIT 1411) - Taught 4 Times

    TOPICS COVERED: Introduction to Java Application, Introduction to classes, Objects, Methods and String, Control Statements: part 1, Control Statement: part 2, Methods: A deeper look, Arrays and Array Lists.

  • Fall2015-18

    Computer Science 2 (GEIT 1412) - Taught 5 Times

    TOPICS COVERED: List, define and contrast basic object oriented concepts, including classes and public/private membership, File i/o with advanced data types, Linked lists and recursion and utilize as efficient solutions to specific problems, Advanced object oriented constructs including Inheritance, Polymorphism and Interfaces.

  • Spring2009-10

    Software Engineering (TA)

    Dr. Arshad Ali Shahid, Dr. Shafiq-ur-Rehman

  • Fall2008

    Numerical Analysis (TA)

    Dr. Muhammad Ali

  • Spring2010

    Digital Image Processing (TA)

    Dr. Arfan Jaffar

  • Fall2009

    Linear Algebra (TA)

    Dr. Hina Khan

CISCO Certified Instructor:

  • 1
    IT Essentials: PC Hardware and Software
  • 2
    CCNA R&S: Introduction to Networks
  • 3
    CCNA R&S 6.0 Bridging
  • 4
    CCNA Discovery 1: Networking for Home and Small Business
  • 5
    CCNA Exploration 1: Network Fundamentals
  • 6
    Networking Essentials
  • 7
    Introduction to the Internet of Everything
  • 8
    Introduction to IoT
  • 9
    Entrepreneurship
  • 10
    Introduction to Cybersecurity
  • 11
    Cybersecurity Essentials

Allowed to teach 22 CISCO Courses

  • 12
    CISCO - Get Connected
  • 13
    Community: Smart Grid Essentials
  • 14
    CISCO - Be Your Own Boss
  • 15
    Packet Tracer Know How 1: Packet Tracer 101
  • 16
    Packet Tracer Know How 2: Packet Tracer Mobile
  • 18
    CISCO Partner: NDG Linux Essentials
  • 17
    Mobility Fundamentals
  • 19
    CISCO Partner: NDG Linux I
  • 20
    CISCO Partner: NDG Linux II
  • 21
    CPA - Programming Essentials in C++
  • 22
    CLA - Programming Essentials in C

Workshops Conducted

  • Sep.2023

    Future Applications of Artificial Intelligence (PMU, KSA)

    Prince Mohammad Bin Fahd University - 2 Hours

  • Dec.2023

    The Unstoppable Rise of Generative AI, Featuring ChatGPT Workshop (PMU, KSA)

    Prince Mohammad Bin Fahd University - 2 Hours

  • Sept.2022

    Patent Success Story: Ideas, Filing and Benefits

    Prince Mohammad Bin Fahd University - 2 Hours

  • Nov.2021

    Machine Learning for Researchers

    Virginia Military Institute, Lexington, VI, USA - 2 Hours

  • Sept.2020

    Research Webinar: Glioma Tumor Classification using Deep Learning

    Prince Mohammad Bin Fahd University - 2 Hours

  • July2019

    Linux Administration (Ministry of Communication and Information Technology, Saudi Arabia)

    Linux Server Administration: Hands-on Practical Experience 1 Week Practical Workshop - 5 Hours Daily

  • Nov.2018

    System On Chip: Raspberry Pi (Prince Mohammad bin Fahd University, Saudi Arabia)

    Workshop on building Internet of Things projects based on Raspberry Pi

  • March2018

    Java Programming for Advance Learners (Prince Mohammad bin Fahd University, KSA)

    Two days workshop on Advance topics in Java as part of Java Programming Competition

  • Sept.2017

    Python Programming for IoT (Prince Mohammad bin Fahd University, KSA)

    Practical training Workshop on Python programming for Internet of Things (IoT)