ES 1036a, Programming Fundamentals for Engineers

Teach the concept of designing, implementing and testing computer programs using a modern object-oriented language such as C++ to fulfill given specifications for small problems using sound engineering principles and processes. More focus of the engineering aspects of the process of constructing a computer program is given. The course load is 3 lecture hours and 2 laboratory hours.


SE 3313a, Operating Systems for Software Engineering

Teach the theory and construction of operating systems, including real-time and embedded systems aspect from an engineering point of view, stressing performance measurement and metrics. Quality of Service issues leading to certification that an operating system will satisfy hard real-time constraints. The course load is 3 lecture hours, 2 laboratory hours.


SE 3351a, Software Project and Process Management

Focus on Project Management and Software Process life cycles. This course includes detailed analysis of components of each process. Metrics, tools and related standards associated with those components are also described with their integration into a complete software plan. The course load is 3 lecture hours, one tutorial hour.


SE 3352a, Software Requirements and Analysis

Provides students with the concepts and tools that allowing them to capture correctly and completely the requirements and needs of a software system under development and the expectations of the potential user needs. The computer labs guide students capturing and managing requirements for software projects through building and adding data to a class project within the context of a controlled requirements management process.


SE 2203b, Software Design

Introduces students to designing software systems with emphasis on design concepts, strategies and their applications to domain specific software systems, using an object modeling language, such as Unified Modeling Language (UML) to illustrate the relevant concepts. The importance of design in the Software Life Cycle will be discussed. The course begins with coverage of the basic skills necessary in a software engineering context. Then Software design methods and technologies will be introduced to enable students specifying, designing, and implementing complex software systems.


SE 2205b, Algorithms and Data Structures for Object-Oriented Design

Describe the important of the computer algorithms and related data structures used in object-oriented software engineering. Teach the students how to design, analyze performance and implementation of such algorithms, stressing their practical use and performance certification of large software applications. The course load is 3 lecture hours, 1 laboratory hour.


SE 3310b, Theoretical Foundations of Software Engineering

Facilitate student to investigate into the theoretical foundations of Software Engineering including automata theory, computability, and analysis of algorithms and the application of formal specification methods to software specification. The course load is 3 lecture hours, 2 tutorial hours.


SE 3314b, Design and Implementation of Computer Networks

Teach student how to design, configure, and maintain LANs/VLANs Routers and Switches. Guide students to understand the real-world internetworking. At the completion of this, the student is well-prepared to write the Cisco CCNA Certification Examination.


SE 3314b, Computer Networks Applications 

This course examines and introduces advanced concepts in computer network and data communications. Topics include mobile and wireless data communications, multimedia networking, network management, distributed computing and clusters, and peer to peer network applications.


SE 3352b, Software Engineering Design Tools 

Provide students a generic overview of software design tools and their role in software process and methods. In this course various tools and environments to support high-quality software development are surveyed and discussed. Because software technology is changing so rapidly, the course will attempt to discuss software tools within the context of their category and their availability as commercial products.


ECE 9610/SE4471- Advanced Topics in Information and Communication Security 

This course concentrates on the challenges involved in the construction of cryptographic protocols to protect modern computer networks, such as p2p Networks, Service Oriented Network (SON), or Wireless Sensor Network (WSN). Specifically, anonymous p2p protocols and ways for shutting down p2p Botnets will be surveyed and discussed with regard to peer-to-peer networks. For Service Oriented Network, topics in building secure web service-based operations will be addressed. The security goals for wireless communication will be considered in terms of WSN authentication and routing protocols.


My Teaching Philosophy
I am the kind of person who believes that education is like the air we breathe. This belief comes from two important reasons. First, I have a strong faith that education should be available equally to everyone, everywhere, exactly like air that is accessible to everyone without charge. Secondly, as the air is essential to everyone to be alive, I have a conviction that no one can live in this era without some level of education. This is because education is the root of all sources of wealth in the world. Education is commonly referred to as the process of learning and obtaining knowledge. I feel that my main goal as a computer science teacher is simply to convey computer knowledge to the students, helping them move up in the world, and ultimately succeed fully in life.  more ...