Introduction to Computer Programming
This course is the first contact of the students with the programming, it starts with the basic theoretical component which allows them to understand what is an algorithm and its major components, structure, and elements. Then students gradually start building flowcharts, algorithms, pseudo-code, and coding using C language.
This course introduces students to the concepts, techniques, and procedures for writing simple programs in C. It covers steps for developing a computer program, input/output instructions, constants, variables and data types, operators, selections and iteration control statements, and arrays. In addition, this course introduces the concepts of modular programming through in-built and user-defined functions in C programming.
Software Project Management
The Software Project Management course introduces students to the general concepts and techniques of project management. Students will learn the concepts of project selection, project management structures, and the definition of projects. In addition, this course demonstrates estimating project times and costs and developing a project plan. Students are further introduced to the main stages needed in the development of information software projects and the methods used to manage them taking into consideration the interaction between IT applications and organizational processes.
Introduction to Computer Architecture
This course introduces the concept of a computer as a set of hardware, software, and data components integrated through different architecture models. The described hardware components include the processor, the memory, and the input/output interfaces while the software components include the operating system, the utility software, and low to high-level programming languages focusing on the assembly language. The course presents the data representation at the machine level and introduces the concepts of digital logic.
In addition, the students will be given an overview of the evolution of computers and the associated technologies together with a presentation of future technological trends.
Introduction to Database Management System
This course presents the basic concepts and principles of the relational database model in addition to the database system architectures. The course also introduces the basic concepts of relational algebra along with suitable examples. The entity-relationship model is detailed with all its components including the entities, attributes, and relationships. Finally, this course introduces the main parts of the Structured Query Language (SQL) such as DDL, DML, and DCL.
Computer Programming and Problem Solving
This course is the second course for the student to study computer programming using the C language. It covers static data structures, modular programming techniques, library functions, user-defined functions, header files, structure, preprocessor directive, pointer, files and streams, and dynamic data structures.
Introduction to Computer Networks
In this course, students are going to be introduced the basic computer network concepts and elements. Students will be taught the characteristics of network models, topologies, network devices, data transmission, and communication protocols going through more detail about IP addressing. Students will be introduced to network simulation tools to apply their theoretical knowledge to practical aspects. This course will also explore the concept of basic network data security and privacy.
Introduction to Operating Systems
This course introduces the core concepts of operating systems and their functions such as memory management, process management, and scheduling, handling concurrency and synchronization, file systems, input and output device management. The course also covers the role of operating systems in the management of security and privacy of users and network functions.
Software Development Process
This course presents an introduction to the models, processes, and techniques used in developing software systems. It covers the whole lifecycle of software systems from the project proposal and the requirements analysis until the release and the maintenance. The students are introduced to the techniques commonly used in fact-finding, requirements analysis, software design, verification and validation, and software maintenance.
This course introduces the principles of network security in terms of protecting networks from different types of malicious and social engineering attacks by using different methods such as authentication, authorization, and encryption. The course discusses the security of servers, wired and wireless devices, data transmission as well as responding and mitigating the different kinds of threats.
System Analysis and Design
The Systems Analysis and Design course introduce the principles and design techniques of object-oriented development approaches. It focuses on the UML modeling language and its different diagrams. In addition, the course presents different validation techniques allowing the software designer to check the quality of its models and the satisfaction of the requirements as defined in the system specification.
This course introduces concepts and technologies behind domain-based enterprise networks. The course covers installation, configuration, and administration of enterprise network operating systems and protocols, and services such as active directory, group policies, data storage, backup, and disaster recovery to the level required to effectively administer secured domain-based enterprise network.
Database Design and Implementation
This course presents mapping rules to convert conceptual and logical designs to physical designs. It also introduces the principles of normalization and denormalization taking into consideration of various techniques which are applied to the different normal forms. The course also addresses the concepts of the PL/SQL procedural language including functions, procedures, cursors, packages, and triggers. In addition, this course discusses database problems and potential solutions and how to improve database performance, productivity, and portability through different integration patterns with DBMSs and programming languages by software application requirements.
Management Information System
The Management of Information Systems course introduces students to different types of information systems that help organizations to achieve their business objectives. This course also provides the detailed infrastructure of an information system. Security and ethical aspects of information systems are also covered.
Web Design and Programming
This course introduces the fundamental concepts of object-oriented programming using Java language. This course covers object-oriented principles such as class, object, encapsulation, overloading methods, static methods, inheritances and polymorphism, overriding methods, abstract classes, interfaces. This course also teaches good practices of GUI design during the design and implementation of projects based on the OOP approach.
This course introduces students to the basic modern concepts and techniques that are used in the design of computer programs. It covers the design objectives, the requirements specifications, structured programming concepts, design cases using pseudocode and flowchart, designing by stepwise refinement, designing input and output data samples, and some case studies using C code.
Introduction to Cloud Computing
This course covers the basic understanding of the characteristics and hardware requirements of cloud computing, cloud deployment, and service models. This course will also cover cloud infrastructure connectivity and troubleshooting techniques. Furthermore, the basic core requirements of cloud storage and security concerns in cloud computing will be discussed.
This applied course introduces students to the concepts, terminology, protocols, and services that the Transmission Control Protocol/Internet Protocol (TCP/IP) suite uses to make the Internet work. This course also stimulates hands-on skills development by not only describing TCP/IP capabilities but also by encouraging students to interact with protocols. It provides the troubleshooting knowledge and tools that network administrators and analysts need to keep their systems running smoothly. Moreover, this course will cover topics ranging from characterization to error detection, security analysis, and more.
This is a supervised course that requires a minimum of 240 hours of industry-based training in Information Technology or related fields. It offers several benefits to the students, including the opportunity to earn credits while exploring a career in Information Technology and a chance to apply concepts learned in the academic program to real problems faced by the organizations. The student's performance throughout the internship is continuously monitored by the assigned faculty member in cooperation with the workplace supervisor through periodic meetings.