Curriculum

GEIT Courses

Course Title: GEIT 1311: Computer Organization Semester Credit Hours: 3 (3,0)

Course Overview 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.


Course Title: GEIT 1411: Computer Science I Semester Credit Hours: 4 (3,1) 

Course Overview Computer Science I 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.


Course Title: GEIT 1412: Computer Science II Semester Credit Hours: 4 (3,1)

Course Overview This course is a continuation and extension to GEIT 1411 Computer Science I. It introduces the student to a systematic study of basic data structures such as queues, stacks and binary trees including searching and sorting algorithms and their associated computational costs. A software engineering approach to developing computer programs is stressed and object-oriented concepts are emphasized. Reusability of code, effective software development methodologies and good programming practices are significant components of the course.


Course Title: GEIT 2291: Professional Ethics Semester Credit Hours: 2 (2,0)

Course Overview This course is designed to educate students on the impact ethical issues have on the use of information technology in the modern business world. It examines the ethical codes of the professional societies and the philosophical bases of ethical decision-making. Students acquire the foundation that helps them make appropriate decisions when faced with ethical dilemmas.


Course Title: GEIT 3341: Database Design Semester Credit Hours: 3 (3,0)

Course Overview The objective of this course is to give students an understanding of key issues related to database design and implementation to support the automation of key business processes in organizations. The course is designed so as to cover topics that are relevant from a database design and implementation perspective; particularly one that involves the provision of online access to data resources 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.


Course Title: GEIT 3351: Software Engineering I Semester Credit Hours: 3 (3,0)

Course Overview The course is designed to provide an introduction to the theory and practice of software development and maintenance. The focus is on the full software development life cycle, including coverage of tools, techniques, principles, and guidelines for software requirements, specification, design and implementation. Particular emphasis is placed on the principles and methods used to develop and validate software requirements. Students are guided toward a better understanding of the various tasks and specialties that contribute to the development of a software product.


Course Title: GEIT 2421: Data Structures Semester Credit Hours: 4 (3,1)

Course Overview This course is concerned with the systematic study of some advanced data structures, including list, stack, queues, dictionary, and graphs. Sorting and hashing algorithms and their associated computational costs are discussed. The course presents the students with the concepts of asymptotic notations, performance measurement, sorting and searching including algorithms and lower bounds, abstract data types and classes, data structures such as heaps, search trees, tries, and hashing, and graphs: representation, depth-first-search, and breadth-first search. One important lasting effect of this course is to enhance and develop the ability to specify, design, implement, test, and analyze solutions to programming problems utilizing the data structures and proven algorithms presented in this course.


Course Title: GEIT 2331: Mathematical Reasoning & Algorithmic Thinking Semester Credit Hours: 3 (3,0)

Course Overview This course provides students with logical reasoning and other basic mathematical skills that will help them in subsequent courses in their programs and their future careers. The main purpose of this course is to develop the quantitative skills necessary for continued success. These skills enhance the ability of students to both analyze and describe mathematically many of the algorithms and data structure performance characteristics common to computer field as a discipline and to effectively communicate their solutions to fellow professionals.


Course Title: GEIT 4361: Practical Training Semester Credit Hours: 3 (3,0) 

Course Overview This course provides opportunities for students to apply the academic concepts, skills and techniques learned in their coursework to a professional work-oriented setting. The course offers the potential for a one-semester internship with a regional employer or a directed study course providing practical learning experiences that benefit the community.


Course Title: ASSE 4311: Learning Assessment III Semester Credit Hours: 3 (3,0)

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.



AINT Courses

Course Title: AINT 2311          Introduction to AI: Semester Credit Hours: 3 (3,0)

This course will introduce the basic principles, techniques and applications of artificial intelligence. The course will focus on the three central pillars of AI: search, representation and reasoning and learning. This course also covers the main areas of artificial intelligence. Coverage includes knowledge representation, logic, inference, problem solving, search algorithms, uncertain reasoning, learning and planning. Potential areas of further exploration include expert systems, natural language processing, and computer vision.


Course Title: -  AINT 2412       Scripting Languages for AI: Semester Credit Hours: 4 (3,1)

This course will introduce the Python programming, appropriate for the most current coverage of topics and applications for Artificial Intelligence and Machine Learning. the course is paired with extensive traditional python supplements, Keras, TensorFlow, idle as well as Jupyter Notebooks supplements. Real-world datasets and artificial-intelligence technologies allow students to work on projects making a difference in business, industry, government and academia. In this course, students will have hands-on experience of Python programming from basics to advance level. Number of examples, exercises, projects (EEPs), and implementation case studies give students an engaging, challenging and entertaining introduction to Python programming and hands-on data science.


Course Title: AINT 3351: Algorithms Semester Credit Hours: 3 (3,0)

This course is the study of the design and performance analysis of algorithms. Time and space complexity analysis of algorithms, design paradigms, and graph algorithms are discussed. The objective of this course is to develop quantitative and programming skills necessary for continued success in computer science. These skills enhance the ability of students to devise, analyze, and comprehend mathematically the performance characteristics of algorithms and various design paradigms common to computer science as a discipline and to effectively communicate their solutions to fellow professionals. This course makes extensive use of the PMU technology infrastructure to provide communication between faculty and students. The course includes individual as well as group projects, establishes both mathematical reasoning skills and technical communication skills, and provides opportunities for the presentation and defense of designed solutions.


Course Title: -  AINT 3411       Introduction to Machine Learning: Semester Credit Hours: 4 (3,1)

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. This course explains the terminology and concept related to machine learning, basic data pre-processing for machine learning (data understanding, data pre-processing, data split, validation, testing), and develop an understanding of supervised learning and related approaches (Regression, SVM, Decision Trees etc.). It develops an understanding unsupervised learning and related approaches (Clustering, Dimensionality Reduction etc.) and applies selected machine learning techniques as solutions to problems that require learning from data as well.


Course Title: AINT 3332          Discrete Structures and Combinatorial Analysis Semester Credit Hours: 3 (3,0)

Discrete Structures and Combinatorial Analysis is the study of objects that have discrete as opposed to continuous values including counting techniques, relations, graphs, trees and combinatorics. The main purpose of this course is to develop the quantitative skills necessary for continued success in computer science. These skills enhance the ability of students to both analyze and describe mathematically many of the algorithms and data structure performance characteristics common to computer science as a discipline and to effectively communicate their solutions to fellow professionals


Course Title: AINT 4373          Computer Vision: Semester Credit Hours: 3 (3,0)

This course deals with these kinds of issues where a perception is formed from a given image. First, an introduction to low-level image analysis methods, including image formation, edge detection, feature detection, and image segmentation. Image transformations (e.g., warping, morphing, and mosaics) for image synthesis. Methods for reconstructing three-dimensional scene information using techniques such as depth from stereo, structure from motion, and shape from shading. Motion and video analysis. Three-dimensional object recognition. This course gives an 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


Course Title:    AINT 3421       Deep Learning: Semester Credit Hours: 4 (3,1)

This course will introduce the importance of deep learning and how it works. The course will focus on gain in-depth knowledge of the basic types of neural networks and learn to use deep learning libraries such as Keras and TensorFlow. In this course, students will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. This course will focus on Convolutional networks, RNNs, ResNets, Adam, Dropout, BatchNorm, Data Augmentation and more. Students will work on case studies from image processing, healthcare, autonomous driving, sign language reading, and unsupervised deep learning.


Course Title: -  AINT 3354       Introduction to Cryptography: Semester Credit Hours: 3 (3,0)

This course is an in-depth introduction to cryptology, covering material from classic to modern encryption methods. It explores how secret messages were hidden historically along with their weaknesses.  It also introduces the basic code breaking techniques. Modern symmetric and asymmetric ciphers such as 3DES, AES, RSA, and DH will be discussed. This course also covers relevant mathematical concepts like modular arithmetic and number theory. 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.


Course Title: -  AINT 3357       Logic and formal verification: Semester Credit Hours: 3 (3,0)

This course introduces basic understanding of logic and the related formal verification techniques to assess any system. It provides basic understanding of first-order logic, modal logic, and the applications of logic in variety of domains. In particular, model checking is explored for temporal logic based modeling and analysis of various reactive systems.


Course Title: -  AINT 3361       Computer Networks: Semester Credit Hours: 3 (3,0)

Computer Networks is concerned with the structure of data communications; from the electric interface, flow control, medium access control protocols, through data transmission and network protocols, packet switching and frame relay protocols, and includes an examination of network standards and open systems. The purpose of this course is to help students become conversant with computer network related issues, familiarize the student with the basic taxonomy and terminology of the computer networking area, Have student acquire the communication, leadership and teamwork skills necessary for   effectively work as professionals in teams, or in charge of teams, responsible for operating complex network environments, and Help students broaden their knowledge about the role of networks as a set of resources that support the core and mission-critical business processes of an organization.


Course Title: -  AINT 3371       Database II: Semester Credit Hours: 3 (3,0)

The course begins by covering advanced SQL features including interaction with Java programs, simple and searched case, rank, running totals, percent to total, and sequences. Following this is a discussion of query processing and optimization where the steps involved in query processing, and how heuristics are used in query optimization, are covered. Topics related to transaction processing are then covered including transaction and system concepts, desirable properties of transactions, schedule types, and characterizing schedules based on serializability. Lock-based concurrency control techniques are discussed next including binary, shared/exclusive, and two-phase. Following this is a discussion of recovery techniques in single and multi-user settings. Next, are topics related to database security and authorization including types of security, discretionary access control based on granting and revoking of privileges, and types of security issues. Object-relational concepts are covered next including user-defined types and functions, nested tables and Varrays. Finally, the course concludes with a discussion of distributed databases including data fragmentation, replication and allocation, and types of distributed database systems. This course is a continuation of GEIT 3341 (Database I) and covers more advanced topics in database systems including advanced SQL, query processing & optimization, transaction processing, concurrency control, database recovery, database security & authorization, object-relational databases, and distributed databases.


Course Title: -  AINT 3381       Big Data Analytics: Semester Credit Hours: 3 (3,0)

This course will introduce to various intricacies involved in analyzing Big Data analytics. This is an introductory hands-on course that will show all steps from data collection, integration, storage, processing, analysis, and visualization. By the end of this course, students will then have relevant required knowledge on Big Data Analytics to handle various real-world cases. This course enables students to understand the big data applications and challenges, understand the process involved in big data collection, indexing, processing and storage, know the existing big data processing and visualization platforms/tools, get the skills to use at least one of the main big data analysis and visualization tools, and learn about the main big data processing algorithms.


Course Title: -  AINT 4361       Operating Systems: Semester Credit Hours: 3 (3,0)

This course is the study of the principles, purposes, and organization of operating systems. The goal is to prepare students an understanding of the theory as well as practices of the design and implementation of operating systems software. Students in this course develop conceptual and fundamental knowledge of operating systems necessary for continued success in computer science. The skills enhance their abilities to appreciate the theory and practices of operating systems common to computer science as a discipline and to effectively communicate their solutions to fellow professionals. This course makes extensive use of the PMU technology infrastructure to provide communication between faculty and students. The course includes individual as well as group projects, establishes both conceptual reasoning skills and technical communication skills, and provides opportunities for the presentation and defense of designed solutions.


Course Title: -  AINT 4362       Multi-Agent Systems: Semester Credit Hours: 3 (3,0)

This course provides an introduction to systems with multiple agents/units/robots that mutually depend on each other’s behaviors in order to evaluate own or collective system performance. This course explains the terminology and concept related to multi-agent systems, basic agent models, multi-agent communication mechanism, and multi-agent decision making (group decisions, coalition formation, negotiation etc.). It applies selected multi-agent techniques as solutions to problems that require multiple autonomous agents to work together as well.


Course Title: -  AINT 4371       Computer Graphics: Semester Credit Hours: 3 (3,0)

Computer graphics generally deals with the creation, storage and manipulation of models and images by studying the use of computers to synthesize and manipulate visual information. Computer Graphics is concerned with the basic algorithms and skills necessary for modeling and visualizing information.


Course Title: AINT 4374          Text Mining: Semester Credit Hours: 3 (3,0)

Given the dominance of text information over the Internet, mining high-quality information from text becomes increasingly critical. The actionable knowledge extracted from text data facilitates our life in a broad spectrum of areas, including business intelligence, information acquisition, social behavior analysis and decision making. In this course, students will learn important topics in text mining including: basic natural language processing techniques, document representation, text categorization and clustering, document summarization, sentiment analysis, social network and social media analysis, probabilistic topic models, and text visualization.


Course Title: AINT 4376          Bioinformatics: Semester Credit Hours: 3 (3,0)

Bioinformatics starts by giving an introduction to Biology: organisms, cells, and inheritance. It continues by the study of pairwise sequence allignment, where Genbank provides access to a huge variety of examples. Heuristic algorithms are presented and implemented to deal with the large amount of data: FASTA, BLAST, PAM, and BLOSUM similarity matrices. The course also presents algorithmic strategies for multiple sequence alignment, genome analysis, and genome browsers. The analysis of prokaryotic genomes is detailed and various approaches to gene expression are studies.


Course Title: AINT 4381          Intelligent Robotics: Semester Credit Hours: 3 (3,0)

This course will introduce the basic concepts, approaches and applications of making Intelligent Robots. The course will focus on the components of robots, machine learning for robotics and cognition in robots. This course covers the main areas of incorporating intelligence in robots. Coverage includes cognitive concepts, robotic components, platforms used for robot development, neuro robotics, evolutionary robotics, social robotics and human robot interaction. Potential areas of advanced applications are in language learning, robotic tutoring and vision-based robots.


Course Title: AINT 4393          Special Topics: Semester Credit Hours: 3 (3,0)

This course will cover a variety of topics in AI. This course will complement AINT offerings by covering a topic not addressed by the existing AINT electives.