My Taught Courses
AUTOMATA AND THEORY OF COMPUTATION
This module introduces the theory of computation through a set of abstract machines that serve as models for computation. The topics that will be covered in this course include that of finite automata (DFA, NFA), regular expressions, minimization of DFA, equivalences of DFA and NFA, regular expressions, context free grammar, Push down automata, Chomsky normal form and Turing machine. The course also looks at the halting problem of TM, Turing-recognizable and Turing-acceptable languages.
This course presents the fundamental concepts and techniques of Artificial Intelligence (AI). Now a day, AI has become a popular and established area of computer science, where it aims to create intelligent system (software and hardware) to perform tasks, which would be considered as if human, did them. Complex real world problems such as web search, speech recognition, face recognition, machine translation, autonomous driving, and automatic scheduling can be solved using AI. Many of the research discoveries have now reached the point of industrial application and products. However the goal of emulating human intelligence has not been reached and many stimulating and challenging problems remain.
This course studies the principles of algorithms with an emphasis on programming language implementation and program design. This includes various techniques for describing and defining an algorithm, as well as techniques for implementing algorithms. The objective of this course is to equip students to design and analyze algorithms in familiar and unfamiliar situations. The students will also develop algorithms and analyze them. After the end of this course, a student is expected to have a thorough understanding of the implications of an array of algorithms in the running time and memory. Algorithm emphasizes the following topics: data structures, abstract data types, recursive algorithms, algorithm analysis, sorting and searching, and problem-solving strategies.
DATABASE MANAGEMENT SYSTEMS
This course should give the students a solid foundation about Databases and Database Management Systems. Although different kinds of databases will be discussed, the main focus of this course is on relational databases. Students should gain an understanding of relational algebra, which will then be used to understanding the underpinnings of SQL. The course will also cover topics related to database design, optimization, and techniques to handle concurrency. Students will be required to deliver a software project of appreciable complexity to demonstrate their understanding of the topics and their application.
OBJECT ORIENTED PROGRAMMING
This course will familiar the students with the concepts of Object Oriented Programming C++ and they learn how to use this concept in application level. At the end of the class, we expect students be able to write and read basic C++ code.
INTRODUCTION TO COMPUTER STUDIES
This course is designed for students coming from diverse disciplines. Thus, the course aims to familiarize students with the basic and fundamental aspects of computing. Topics covered include basic idea of computer system, number system and flowchart, hardware and peripheral devices, networks communication and Database Management Systems and introduction to programming languages.