a

Teaching

I teach several courses in programming, systems design, computer communications and networking at both graduate and undergraduate levels.

Currrent Teaching

  • Present2018

    CpE 454 Performance Evaluation and Simulation of Computer Networks

    This course is about theory and application of analytic methods for evaluating the performance and for capacity planning of computer networks. Review of the basic probability theory. Advanced methods in probabilistic analysis. Random processes. Markovian queuing models. Network protocols. Traffic modelling. Event driven simulation.

  • Present2018

    CpE 481 Software Quality Assurance

    This course introduces software testing and quality assurance engineering concepts, processes, models, criteria, and methods. The course covers topics including software unit testing, integration, function validation, system performance and reliability evaluation; software security testing methods and tools; software quality management, control systems, standards, and evaluation metrics. Students are asked to demonstrate proficiency in managing a software project to customer requirements and proficiency in quality assurance and testing through class exercises and a project

  • Present2018

    CpE 567 Modeling And Analysis Of Communication Networks

    This course is to review some important probability distributions and their properties; Markovian processes; Markovian queues; renewal theory; semi Markovian processes and the M/G/1 queue; priority queues; case studies: random access systems; polling systems; multiplexers and switching systems.

  • Present2018

    CpE 569 High-Performance Computer Networks

    This course is for alternative network architectures; study of the network functions and protocols in high performance networks; routing and switching; transport protocols in high-performance networks; integrated and differentiated service models and protocols; congestion and flow control protocols; broadbank ISDN and ATM; high-speed local and metropolitan area networks; advanced topics in high-performance networking.

  • Present2018

    CpE 495 Capstone Design

    This course contributes a capstone design experience in Computer Engineering. Typically, it would require the student to build on the aggregated knowledge gained in previous years. Students will have design experience involving hardware and/or software systems to meet the desired needs within realistic constraints such as economic, environment, social, political, ethical, health and safety, manufacturability, and sustainability. Students will acquire skills in design tools and practices, functional teaming, oral and written technical communication.

  • Present2017

    CpE 494/395 Computer Systems Engineering

    This course provides an overview of the development of systems in computer engineering; primarily through hands-on design experiences and development of professional skills. The course provides information about the principles, methods and skills that are essential to engineering design. It investigates the concept of a life cycle, nature of life-cycle models, and phases of typical life cycles. The topics covered include quality issues, process, issue of teams, team selection, roles in teams, elements of teamwork, selection of support tools, standards, technologies, techniques and approaches associated with the different phases, special problems of design and the issues associated with tradeoffs, special problems of hardware/software tradeoffs, testing, and project management.

  • Present2017

    CpE 443 Multimedia Systems and Applications

    In this course, students will be introduced to principles and current technologies of computer-based multimedia systems. They will study current media types (images, video, and audio) and how they are used to create multimedia content. Issues in effectively representing, processing, and retrieving multimedia data will be addressed. Multimedia network communication and applications will be considered. The students shall learn to implement basic techniques of multimedia data processing in MATLAB.

  • Present2018

    ENG 307 Numerical Methods and Programming in Engineering

    This course lays the foundation for solving applied engineering problems using numerical methods and computer programming. The primary programming language is MATLAB, which will be learned as a tool for solving problems. The course will also introduce some of the fundamental of numerical methods, which include: error analysis, roots of nonlinear algebraic equations, solution of linear and transcendental simultaneous equations, matrix and vector manipulation, curve fitting and interpolation, numerical integration and differentiation, solution of ordinary differential equations.

  • Present2018

    CpE 356 Computer Networks

    This is an introductory course in computer networks. It gives an overview of current computer networks and its history. It introduces the OSI and TCP/IP network architecture models and protocols. It then studies the implementation principles and design issues at each layer of these models. Lecture topics include: the structure and components of computer networks, application layer protocols, packet switching, layered architectures, TCP/IP, physical layer, error control, local area networks (wire and wired), network layer, congestion control, and multiple access. Laboratory work focuses on experimenting with packet tracing tools and the implementation of protocols covered in lectures, e.g., stop-and-wait protocol, socket programming, Dijkstra routing algorithm and others.

  • Present2018

    CpE 458 Network Programming

    This is an introductory course for the design, architecture and implementation of client and server programs in the client-server model of computing. Overview of the TCP/IP suite of protocols and some application specific protocols. Sockets programming, client/server, peer-to-peer, Internet addressing, TCP sockets, UDP sockets. Multithreading and exception handling. Interprocess communication and network programming interfaces. Server architectures. Use of scripting languages in providing client-side and server-side processing in web based applications. Security issues.

  • Present2018

    CpE 456 Advanced Computer Networks

    This course explores essential key concepts, systems, and algorithms for ensuring reliable data communication. The lecture topics are organized into three distinct modules: bits, signals and packets. The first module covers information, entropy, data compression algorithms, and error correction with block and convolutional codes. The second module covers modeling of physical channels and noise, signal design, filtering and detection, modulation, and multiplexing. The third module includes switching and queuing principles, multimedia networking, network management and advanced state of the art network architectures.

  • Present2018

    CpE 357 Computer Networks Laboratory

    This laboratory course provides students with hands-on training and experience regarding the design, implementation, and packet inspection of computer networks. Students experiment with network simulation and packet tracing tools. Topics covered in experiments include: network addressing, address resolution protocol (ARP), Dynamic Host Configuration Protocol (DHCP), troubleshooting tools (e.g., ipconfig, traceroute, ping), basic networks simulation, server configuration at application layer, basic switch set-up and configuration, trunking in virtual local area networks (LAN), router setup and configuration in LAN and wide area networks (WAN), static and dynamic routing.