itcsbanner.jpg

Courses

Software project Management

The course provides the necessary knowledge and skills to lead a software project team, understand the software process, time and cost estimates, and the relationship of software development to overall product engineering. Topics include life cycle models, requirements definition, configuration control, environments, planning, scheduling, execution, monitoring, evaluation, refinement, quality

CIT-612

Advanced Software Engineering

This course focuses on critical aspects of the software lifecycle that have significant influence on the overall quality of the software system including techniques and approaches to requirements, design, quantitative measurement and assessment of the system during implementation, testing, configuration, and maintenance, and the role of verification and validation in assuring software quality.

CIT-617

Software Development Studio II

Prerequisite: CIT-615 The software development studio provides an opportunity for students to apply the knowledge and skills gained in other courses in synthesizing and developing a solution to a significant, realistic, and practical problem. The work is typically done for an outside client. Students will be working in teams, under the supervision of a faculty member, to analyze a problem, plan a

CIT-616

Software Development Studio I

The software development studio provides an opportunity for students to apply the knowledge and skills gained in other courses in synthesizing and developing a solution to a significant, realistic, and practical problem. The work is typically done for an outside client. Students will be working in teams, under the supervision of a faculty member, to analyze a problem, plan a software development

CIT-615

Software Engineering

This course focuses on critical aspects of the software development life cycle that have significant influence on the overall quality of the software system including techniques and approaches to software design, quantitative measurement and assessment of the system during implementation, testing, and maintenance, and the role of verification and validation in assuring software quality.

CIT-602

Software Architecture

This course introduces students to the concepts, principles, and state-of-the-art methods in software architectures, including domain-specific software architectures, architectural styles, architecture description languages, their properties and the types of problems for which they are most appropriate, and architecture-based testing and analysis. The course will also examine the practical

CIT-611

Systems Engineering

Introduction to system engineering outlining traditional design process. The content of the course follows typical system design life cycle. It correlates the different disciplines required to deploy and sustain a system for missions in information technology, information processing and electronics domains. Topics include system architecture into hardware and software components, requirement
CIT-601

Computer Architecture

The course includes an overview of history and current and future trends and issues in processor design, as well as performance measurement and enhancement techniques. Topics covered include pipelining, parallelism, multiprocessors, cache & memory issues, and interconnections networks.
CIT-603

Stochastic Processes

This course introduces random processes and their applications from a discrete-time point of view, and discusses the continuous-time case when necessary. The course covers the basic concepts of random variables, random vectors, stochastic processes, and random fields. It moves on to common random processes including the white noise, Gaussian processes, Markov processes, Poisson processes, and
CIT-604

Information Theory

Prerequisite: CIT- 604. This course covers mathematical models for channels and sources. The basic concepts of entropy, relative entropy, and mutual information are defined, and their connections to channel capaCIT-y, coding, and data compression are presented. Limits for error-free communication, information theory also presents limits for data compression, information, data compression, Topics
CIT-605

Fundamental of Networking

This course covers fundamental concepts in the design and implementation of computer networks. Examples are drawn primarily from the Internet protocol suite. In the first part of the course, we will cover layered networking models, application layer protocols, transport layer protocols, the Internet Protocol (IP), and intenetworking. In addition, advanced topics such as wireless networks and
CIT-606

Operations Research

This course introduces the fundamentals of operations research, including different techniques for modeling and problem solving. The course will emphasize model-formulation skills, the mathematical procedures of linear programming, network flows, dynamic programming, game theory Markov chains, queuing models, and other problem solving techniques.
CIT-607

Introduction to Convex Optimization Theory

This course focuses on the theory and applications and algorithms of convex optimization. It focuses on recognizing and solving convex optimization problems that arise in many engineering fields. It is divided into three parts; Mathematical background, convex optimization theory, and its applications. The Mathematical background part reviews relevant topics in linear Algebra that are necessary for
CIT-608

Network Architecture

The course covers the network evolution and development, network architectures, network topologies and technologies, layered protocol design, OSI model, MAC protocols, multiplexing, switching, flow control, IP networking, addressing, IPv4 vs. IPv6, transmission protocols, TCP/IP networking, routing and queuing, Domain Name System, network management, network performance evaluation, Quality of
CIT-609

Cloud Computing

The course targets students and IT professionals looking for understanding cloud computing basics, environment and architecture. The course covers cloud infrastructure, cloud deployment and service models. This is in addition to basic concepts of traditional data centers, virtualization, migrating to cloud computing and deciding for optimal cloud deployment model.
CIT-610

Software Architecture

This course introduces students to the concepts, principles, and state-of-the-art methods in software architectures, including domain-specific software architectures, architectural styles, architecture description languages, their properties and the types of problems for which they are most appropriate, and architecture-based testing and analysis. The course will also examine the practical
CIT-611