The purpose of this introductory course is to study computers and data. It gives an establishment to utilizing computers in different courses and educational module for research, correspondence, and writing. Students will be exposed to the fundamentals of hardware and its associated software and systems improvement. The course will show how the computer automates the processing of information.
Physics course introduces the basic concepts, theories and terminologies of the scientific method in the context of the science of physics. Students will reinterpret and express ideas and views of our physical world from the basic principles of physics. Mathematics being the physics’ language, students enrolled in this course are expected to be able to deal with simple vectors operations, basics of calculus (differentiation and integration), algebraic relations and trigonometric functions. This course allows students to differentiate between the various multitudes of measurement, learn kinematics including translational and rotational motion together with the motion of projectiles, interpret forces and torque, and then apply Newton’s Laws to analyze objects situations. Students will be able to set up equations related to energy conservation, work and momentum conservation.
This course explores the physical concepts of electrostatics and electromagnetism. This subject benefits the students to develop sold background of the electricity and magnetism fundamentals. Topics include: electric charge, electric field, Coulomb’s law, Gauss’s law, electronic component such as resistors, capacitors and indicators, direct and alternative currents and various experiments that focused on the given topics.
This course is an introduction to differential and integral calculus. It begins with a short review of basic concepts related to functions. Then it introduces the concept of a limit to a function. It then unfolds to the study of derivatives and their applications. Thereafter it considers the area problem and its solution, the definite integral.
This course introduces students to the fundamentals of computation problem solving. The course covers the main principles of algorithm-based problem solving and implementation of solutions using a computer programming language. Students will learn the essential programming concepts and computation problem solving such as algorithms, data flow, decomposing large problem into smaller components, program design, data types, control structures, functions and handling input and output. The course includes several labs to give hands-on experience to students.
The course introduces Object-Oriented programming language and design using high-level programming language. The course aims at introducing abstraction, information hiding, classes, methods, attributes, inheritance, polymorphism, file processing, overloading, exception handling, reading and writing from text files. The course includes hands-on exercises that will help students develop skills required to develop functioning programs for solving computing problems.
This course offers an introduction to electronic models with logic design and the basic concepts used in digital systems. The course covers the design and applications of combinational logic components and sequential circuits. The course includes details of how computer systems are developed by highlighting the basic concepts involved in computer theory like truth tables, binary arithmetic, and standard representation of logic functions.
Students who have taken calculus 1, can take this course to excel in the taught subjects. The course will focus on Transcendental Functions, Techniques of Integration, Infiniti Series, integrals and their applications methods and optimization techniques using partial derivatives. Furthermore, students will learn various concepts of curl and divergence and apply them to real-life context.
In this course, students apply basic knowledge of essential science, math, and designing standards to solve computational problems. This course aims to strengthen the capability of students to develop algorithm and classify the proper data structure method to solve the problem. Algorithms define the approaches for giving solutions utilizing computer facilities. Regularly, the aim is to develop fast computational methods using the least number of resources. For example, specific data structures are used to organize large numbers of records by quickly defining the existing records and/or quickly finding and inserting deleted and new records. The course will concentrate on Big O notation, arrays, stacks, queue, lists, trees, heap and hashing techniques.
In this course students will learn linear algebra and develop an appreciating on how the application of this branch of mathematics plays an important role in many computer science undertakings and help solving diverse problems in internet search, data mining, machine learning, graphic design, compilers, bioinformatics, relational database design, and database optimization. The course aims to improve the analytical thinking skills of students through their ability to understand the core principles of linear algebra, such as linear equations, matrices, vector spaces, coordinate systems, determinants, linear operators, linear transformations, eigenvalues, eigenvectors, orthogonality, and quadratic Forms, and then be able to apply these techniques to solve basic problems in IT.
This course covers the basic concepts of web design techniques. Its main topics are Hypertext Markup Language (HTML) and Cascading Style Sheets (CSS). Students do not need any programming skills. previous knowledge of HTML or web design. This course introduces to students how to develop webpages and website using different tools such as HTML editors and web browsers. They will learn how to write HTML code using different techniques. They will be taught to enhance the format of websites using styling and layout, to improve webpage look and feel through images, graphics and tables and to enrich their contents by adding audio, video and multimedia files. In addition, students will work in groups to create a website combining all the techniques they have learned throughout the semester.
This course of discrete mathematics aims to introduce students to concepts, ideas, and techniques that are widely used in computer science. The goal of this course is to teach various topics in discrete mathematics that qualify students to think logically and mathematically to solve problems in computer science. To achieve this goal, students will study logic and proofs concepts, basic structures, set operations, functions, sequence and summations. Moreover, the following concepts constitute part of the course, as well: methods of proving theorems, induction and recursion, basic rules of counting, pigeonhole principles, permutation and combination, discrete probability, advance counting technique, graph terminology, Dijkstra’s algorithm, traveling salesman and trees.
Multimedia Technology course will enhance the understanding of fundamentals of multimedia techniques using computer software. The course shall go into deep details of defining features, uses and practical development considerations for each of the major multimedia content such as text, graphics, sound, and video. Several compression algorithms for digital and analog multimedia content will be covered. A portion of this course concentrates on how communication of multimedia content works by highlighting various networking techniques to efficiently communicate by avoiding errors in communication. The course includes several hands-on exercises on creation and manipulation of multimedia content using various tools like Adobe Photoshop, Audacity and Windows Movie Maker etc. These exercises will strengthen the practical multimedia production skills. Furthermore, students will be equipped with skills and knowledge of enhancing the web pages using HTML and ASP.NET language embedded codes for video, sound, text and images.
This course covers the essential operating system concepts. The students will be provided an introduction to operating systems including a brief history of development through the years and the five managements under each operating system. The course will also cover the topics including processes and threads in context of resource management, memory management and related schemes, CPU scheduling algorithms and file systems. Several alternative algorithms related to page replacement policies and CPU scheduling are discussed along with understanding their advantages and disadvantages. The role of the device manager will be emphasized in the context of resource sharing. Other topics such as concurrent processes and synchronization, deadlocks and security are also presented briefly. Furthermore, the students will get hands-on practical labs on modern Operating Systems including Linux and Windows. The advanced labs will introduce the practice of a scripting language to understand the various topics presented through the course outline.
This course is designed to provide a needed background to understand computer networks. It describes types of networks, how networking affects society, and the components and tools that are used to create networks in various business models. The course also introduces networking, offering easy-to-follow details on hardware, networking protocols, remote access, and security. New networking professionals will first learn what they need to know about network technology, and then how to apply that knowledge to set up, manage, and secure networks.
This course is about the concepts of theory of computation. It covers the subject from a mathematical approach based on design of theorems and proofs. It brings together main concepts, such as the equivalence of deterministic and nondeterministic finite automata, and the conversions between pushdown automata and context-free grammars to produce an efficient and clear method for parsing. Furthermore, students will study different concepts related to computational theory that include, but not limited to regular expressions, Turing machines and its variants, decidable languages, recursion theorem, and complexity.
Students who have taken calculus II can take this course to excel in the taught subjects needed by computer scientists. The course will demonstrate the use of differential equation in mathematical and real-life modeling. In addition, parametric equations and polar coordinates will be tackled later in the course. Furthermore, students will learn various concepts of infinite sequences and series and apply them in different context.
Numerical analysis deals mainly with algorithms that apply numerical estimation to tackle mathematical analysis problems. This course introduces, to students, numerical algorithms as methods to develop solutions to prevalent problems articulated in different disciplines such as science, engineering, and mathematics. The emphasis is to make students understand the concepts of construction, application, and restrictions of numerical algorithms. The course includes numerical methods to solve equations, polynomial interpolation, differential and integration equations, analysis of numerical errors and applications of these analyses. The course will also help students to acquire skills in problem solving.
This course is designed to introduce database concepts and data models such as hierarchical, networks with more focus on relational databases and ER modeling. The course aims to introduce the database normalization process and enables students to design basic databases through hands-on exercises, case studies, and a teamwork project.
The course will introduce modern programming languages and their concepts. The course emphasizes the rationale for studying programming languages and the criteria to evaluate them. The concepts of language design, constructs and common design trade-offs will be discussed. Topics include Syntax and semantics of languages, Data types, Names, Bindings, Scopes, Expressions and Assignment Statements, Control Structures, Subprograms and their implementation. This course also covers the advanced topics such as abstraction and concurrency support offered by modern programming languages. Furthermore, the latest trends such as functional programming paradigm will be explained in the course. The hands-on exercises of this course will help students to explore new languages and take well-informed decisions for their future projects.
This course discusses main concepts of computer architecture and organization such as the behavior and structure of different computer’s functional modules. Students will learn as well how these functional modules interact to meet users’ processing needs. In addition, the course will introduce students to basic computer organization, data representation and computer arithmetic, digital components, digital logic circuits, register transfer, micro-programmed control, input- output organization, central processing unit, memory organization and pipe-lining.
Computer Ethics is an interdisciplinary course. The course reflects the rapid expansion of information technology and the civic and ethical challenges that have emerged from the expansion. The course content is organized around a number of issues that are of immediate concern, including threats to privacy from massive database, data mining, high-speed networks, workplace surveillance, the electronic theft of intellectual property, such as music, video, film and text, and catastrophic computer -related accidents such as airplane crashes and nuclear power plant shutdowns.
Pre-Internship is a course designed for students seeking an internship. The course will prepare students to successfully plan their internship by researching and identifying potential internship opportunities, creating professional resume and letter of introduction, developing interviewing and networking skills as well as a portfolio per industry requirements. Students will go through different learning modules including experiences, team work skills, communication skills, leadership skills, problem solving, self-management and professionalism to be able to make the most of their internship.
CCIT offers the Internship program as a graduation requirement for students in the Computer Science and IT Management programs. This program allows students link theory to real world practice. The student is required to complete 280 working hours within 2 months. During this time, the student submits 4 reports explaining the tasks conducted and the skills gained/improved. At the end of the semester, the student provides an oral presentation that explains his/her performance during the internship
This course provides a foundation for students to explore the field of Artificial Intelligence (AI). This course covers the introduction to basic concepts and techniques that are essential to many AI applications. The topics discussed include intelligent agents and environment, classical search, knowledge representation and reasoning techniques, first order logic with its syntax and semantics, classical planning with its algorithms, and the uncertainty knowledge approaches such as probabilistic and Bayesian networks. Students will expand their knowledge to practice in a wide range of applications such as computer vision, robotics, and natural language processing.
This course aims to introduce the theoretical concepts and methodologies of software engineering to students. In particular, this course concerns with software engineering concept, software processes including process models, process activities, process improvement and coping with changes, agile software development and agile methods, requirement engineering, system modelling, implementation, testing and evolution. The course aims to deliver a comprehensive and complete theoretical framework of software development activities and design essentials to students. By the end of course, student will submit a project that addresses the concepts, methods and techniques learnt during the course to tackle certain real life problem. The project is a group project maximum of two students.
This course aims to clarify the processes modifying-on an existing system or proposing a new system that facilitates the achievement of clearly defined business objectives. The course introduces Systems Development Life Cycle (SDLC) methodologies and explains the SDLC phases starting from Planning: by developing a comprehensive system proposal document that includes the business analysis, feasibility analysis and scheduling the tasks of developing the new system, moving to Analysis where requirements are being defined, use case analysis, data flow and entity relationship diagrams are introduced. Then to system design by introducing system acquisition strategies, architecture, user interface, program and database design, to the implementation phase and finally the transition to the new system.
Prepares the student for applied self-directed capstone experience. The course aims at addressing problem identification within the field of study, apply project management principles to prepare project deliverables, and present project proposal.
The goal of the capstone graduation project is to evaluate the aptitude of students to independently complete a project in an area of their preference (e.g., software and web development, network administration and security systems, database systems, and digital forensics). The responsibilities required are identifying a research area and developing a project proposal identifying the research aim, objectives, research plan, time schedule, and estimated budgets. Students are required to present their findings through an oral presentation and written thesis.