@charset "utf-8";
@import url(http://fonts.googleapis.com/earlyaccess/droidarabickufi.css);
%vertical-align {
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
div.ccis{
font-family:Arial, Helvetica, sans-serif;
background-image: url(/sites/default/files/logoartsmalllight.png);
background-repeat: no-repeat;
background-position: right bottom;
height:100%;
}
div.ccis ul{
list-style-image: url(/sites/default/files/minus.png);
margin-left:50px;
font-size:14px;
}
div.h1bg {
background-image: url(/sites/default/files/header_bar_ccis_rtl2.png);
background-repeat: no-repeat;
background-position: right;
min-height: 94px;
}
div.h1bg h1 {
position: relative;
top: 40px;
transform: translateY(-50%);
text-indent: 50px;
font-family: 'Droid Arabic Kufi', serif;
font-weight: normal;
color: #722E00;
text-shadow: -2px 2px #967241;
font-size: 24px;
font-weight:bold;
margin-bottom:20px;
}
div.ccis h2{
background-image:url(/sites/default/files/h2lightlineright.png);
background-repeat:no-repeat;
background-position:left;
min-width:300px;
min-height:50px;
text-indent:30px;
font-size: 20px;
font-family: 'Droid Arabic Kufi', serif;
font-weight:normal;
color:#722E00;
text-shadow: -1px 1px #967241;
margin-bottom:10px;
padding-top:4px;
}
div.cont-box img {
margin: 10px;
float: left;
border: thin #FC6 solid;
border-radius: 5px;
}
#dean-signature {
position:absolute;
text-align: center;
font-weight: bold;
left:5%;
}
وصف المقررات
التالية هو وصف مختصر لجميع المقررات التي تدرس في قسم علوم الحاسب علما بان جميع المقررات تدرس باللغة الانجليزية :
Programming I
This course introduces the students to the fundamentals of logic formulation together with their implementation in the C programming language. It introduces students to structured, top-down .programming design and implementation. This course should serve as a foundation for students in the Computer Science program
Calculus 1
:This course includes the following topics
- Limits and Continuity: The Concept of Limit, Computation of Limits, Continuity and its Consequences, The Method of Bisections, Limits Involving Infinity, Asymptotes
- The Derivative: Tangent Lines and Velocity, The Derivative, Computation of Derivatives: The Power Rule, Higher Order Derivatives, The Product and Quotient Rules, Chain rule. Derivatives of trigonometric functions. Exponential, logarithmic, and hyperbolic functions and their derivatives. Implicit differentiation and inverse function’s derivative. Derivatives of high order. Hospital‘s Rule and undetermined forms
- Applications of the Derivative: Absolute and local extreme, critical points, tests for local extreme, concavity and inflection points, and applications. Rolle’s Theorem and the Mean Value Theorem. Curve sketching using calculus. Optimization problems, Linear approximation. Newton and fixed point iteration methods
- Integrals: Anti-derivatives, Indefinite Integral; Integration by Substitution; Integration by Parts; .Riemann sums; The Definite Integral; Area under curves; The Fundamental Theorems of Calculus; The Mean Value Theorem of Integration.
Discrete Mathematics
:This course includes the following topics
- .Elementary logic and Set theory: Simple and compound statements, Logical connectives, Truth tables, Basic logic laws, Operations on sets, Basic laws of set theory, Cartesian product of sets
- Methods of proof: Proof Strategy, Direct Method, the Contrapositive Method, the Contradiction Method, Mathematical Induction, and Structural Induction
- Relations: Basic definitions on relations, Binary relations and their types, Equivalence relation and set partition, Partial Ordering
- Algorithms: Algorithms, Examples of Algorithms, Complexity of Algorithms, Recursive Definitions, Recursive Algorithms
- Integers and Algorithms: Integers and Division, The Division Algorithm, Congruencies, Representation of Integers, Integers Algorithms, The Euclidean Algorithm, Applications
- Principles of Counting: The Basics of Counting, The Pigeonhole Principle, Permutations and Combinations, Generalized Permutations and Combinations, Algorithms for generating Permutations and Combinations, Binomial Coefficients
- Graph theory: Introduction to Graphs, Representation of Graphs, Paths and Cycles, Euler and Hamilton Paths, Shortest-Path Algorithms, Planar Graph, Graph Coloring
Physics 1
This course includes the following topics: Electric fields, Coulomb's law, Gauss' Law, electric potential, capacitance and dielectric, currents and resistance, electrical energy and power, direct current circuits, Kirchhoff's rules, magnetic fields, motion of charged particle in a magnetic field, sources of the magnetic field, Faraday's law of induction, Ampere’s law, mutual inductance, alternating current circuits, the RLC series circuit(a resistor, an inductor, and a capacitor connected in series), power in an A.C. circuit, resonance in RLC services circuit
Technical English (1)
:This course includes the following topics
Basics: meeting people, using forms, following instructions, exchanging information, using checklists, using voicemail, ordering by phone, introducing yourself and others, describing components, using a product review, describing a product, talking about people's jobs, describing direction of movement, giving and following instructions, explaining fluid movement around a system, using a flow chart, explaining how cooling system work, material testing, properties of materials, buying using a customer call form, specifying dimensions, using a specification chart, future projects, taking an emergency call, reporting damage, dealing with a customer
Programming (2)
This course is an introductory course in object oriented programming. The fundamental concepts of object oriented programming will be studied using the C++ programming language
Calculus (2)
:This course includes the following topics
- Integration Techniques: Review of Integration by Substitution and Integration by Parts, Integration of Rational Functions Using Partial Fractions, Trigonometric Techniques of Integration, Integrals involving logarithmic, exponential, and hyperbolic functions, Improper Integrals
- Infinite series: Sequences and limit of a sequence. Infinite series of constant terms, convergence tests, alternating series and absolute convergence. Power series, the ratio test, and radius of convergence; Taylor and MacLaurin series
- Vectors and Geometry of Space: Vectors in Space, Dot Product, Cross Product, Lines and Planes in Space, Cylindrical and Spherical Coordinates
- Parametric Equations and Polar Coordinates: Plane Curves and Parametric Equations, Calculus and Parametric Equations, Polar Coordinates, Calculus and Polar Coordinates
- Functions of several variables and Partial Differentiation: Functions of several variables, Partial derivatives, Total derivative, Chain rule
- Multiple Integrals: Double and Triple Integrals in Cartesian Coordinates; Areas and Volumes, Double Integrals in Polar Coordinates; Triple Integrals in Cylindrical and Spherical Coordinates
Technical English (2)
Building on the content of Technical English, this course is intended to provide students of Computer Sciences and IT with more advanced and specialized technical English needed for studying their major and functioning in their future careers. This course contains the following topics: Computer users, computer Architecture, computer Applications, Operating systems, describe main operating system, users Interfaces, discuss diagrams related to computer interfaces, computer support, Networks, data security, People in computing, discuss professional life of people working in IT, practice note-taking write a detailed description of a technical problem and its solution
Physics (2)
This course will cover the following topics: The Standards of Length, Mass and Time, Dimensional analysis, and Conservation of Units. The Motion in One and Two Dimensions. The Law of Motion. The Energy and Energy Transfer. The Potential Energy. The Linear Momentum and Collisions. The Rotation of a Rigid Object About a Fixed Axis: Angular Position, Velocity, and Acceleration. Rotational Kinematics, Angular and Linear Quantities, Rotational Kinetic Energy, Calculation of Moments of Inertia, Relationship Between Torque and Angular Acceleration, Work, Power and Energy in Rotational Motion
Probability and Statistics
This course includes the following topics: Introduction to Sample space, Random events, Probability rules, Conditional probability, Baye’s ruleو Random variables, Definitions of Discrete and Continuous distributions, mean and variance of a random variable, and mean and variance of a linear combination of independent random variables. Discrete distributions (Binomial, Hyper geometric, Poisson) and continuous distributions (Uniform, Exponential, Normal), Sampling distributions of sample statistics: t-distribution, The concept of estimation methods: Point estimation and Confidence interval estimation, Concepts of Testing Hypotheses: Hypotheses testing of a single Population parameter (mean, proportion, difference between two means and difference between two proportions of independent populations), Concepts of simple linear correlation and linear regression
Data Structures
The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures and algorithms. The main objective of the course is to teach the students how to select and design data structures and algorithms that are appropriate for problems that they might encounter. This course is also about comparing algorithms and studying their correctness and computational complexity. This course offers the students a mixture of theoretical knowledge and practical experience using C++
Differential Equations
This course will cover the following topics: manipulation of infinite and power series, as well as about representation of a function in terms of a power series. Handling real-valued functions of two and three real variables (limits, continuity, differentiability, and extrema). Calculating double and triple integrals and their applications (area, volumes, surface areas, moments, density…), mainly to physical models
Fundamentals of Database
Database concepts and architecture; data models, database schemes and instances, DBMS and the concept of program-data independence, database languages and interfaces, database models, relational data model and relational algebra, relational model constraints; domains, keys, and integrity constraints, the structured query language (SQL); data definition, queries, update, statements, and views in SQL, database design; functional dependencies, normal forms
Linear Algebra
:This course includes the following topics
- Matrices and Gauss Elimination: Elementary row operations, Transpose of a matrix, Inverse of a square matrix, Linear equation systems and Gauss eliminations
- Determinants: Determinants and their properties, classical adjoint matrix; Cramer’s rule
- Vector spaces: Basic definitions, subspaces, linear dependence and independence, bases and dimensions, Rank of a Matrix
- Linear transformations: Basic definitions, the matrix of a transform, Kernel and Range of a linear transformation, Matrices of linear transformations, Coordinates and change of basis
- Eigenvalues and Eigenvectors: Characteristic polynomial, diagonalization of matrices, Applications involving Powers of matrices
Operating Systems
The purpose of this course is to provide an overview of computer operating systems. Topics to be discussed include a brief history of OS’s and their design and development. The course will cover major components of OS, the algorithms and implementation techniques used to create them. Most of the programming assignments will be done on Linux machines using C
Computer Organization
The purpose of this course is to give students an understanding of computer organization: the internal structure and operation of a digital computer at the level of memory, registers, flow of control, and assembly language. This course has a theoretical and a practical component: computer organization will be studied at a theoretical level, and students will have the opportunity to practice their skills by studying the assembly language for a particular Reduced Instruction Set Computer.
Programming Languages
This course describes a set of formal mathematical tools for defining and implementing the semantics of a language and demonstrates them in the context of important real-world programming languages, with emphasis on theoretical properties of type systems.
Computer Graphics
Module Description:
:This course covers fundamental principles and algorithms underlying computer graphics. Major topics include
- Graphics Models
- Graphics Programming
- Input and Interaction
- Geometric Objects
- Geometric Transformations
- Viewing
- Shading
- From Vertices to Fragments
- Discrete Techniques
- Programmable Shaders
- Modeling
- Curves
- Surfaces
- Advanced Rendering
Algorithm Design and Analysis
This course provides techniques to prove the correctness and to analyze the running time of the basic algorithms for those classic problems in various domains; to apply the algorithms and design techniques to solve problems; and to analyze the complexities of various problems in different domains.
Artificial Intelligence
Artificial intelligence (AI) is a research field that studies how to realize the intelligent human behaviors on a computer. The ultimate goal of AI is to make a computer that can learn, plan, and solve problems autonomously. The main research topics in AI include: problem solving, reasoning, planning, natural language understanding, computer vision, automatic programming, and machine learning, and so on.
Compilers
In this course students will develop a deeper understanding of modern compiler techniques applied to general-purpose programming languages. It will give students a working knowledge of the foundations, tools, and engineering approaches used in developing formal language translators.
Data Transmission & Computer Networks
Introduction to computer networks, Network architecture, OSI reference model, Transmission media, Transmission Impairments, Data encoding; Data Link: Error Detection, Medium Access control Protocols and standards, MAC Addressing, Link layer Switches, LAN standards & Devices: Ethernet and IEEE standards for LANs, Wireless networks; Network Layer: Virtual circuit and Datagram Networks, Router Structure, The Internet Protocol (IP), Routing Algorithms, Broadcasting and Multicasting; Transport Layer: TCP and UDP services, designs, and performance, Principles of Reliable Data Transfer; Application layer: The Web and HTTP, FTP, Electronic Mail, and DNS.
Parallel and Distributed Processing
Covers parallel and distributed processing concepts including concurrency and its management, models of parallel computation, and synchronous and asynchronous parallelism. Topics include simple parallel algorithm formulation, parallelization techniques, interconnection networks, arrays, trees, hypercubes, message routing mechanisms, shared address space and message-passing multiprocessor systems, communication cost and latency-hiding techniques, scalability of parallel systems, and parallel programming concepts and application case studies.
Software Engineering
This course introduces concepts and techniques relevant to the production of large software systems. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include modularity, specification, data abstraction, object modeling, design patterns, and testing. Students complete several programming projects of varying size, working individually and in groups.
Numerical Methods
This course will emphasize the development of numerical algorithms to provide solutions to common problems formulated in science and engineering. The primary objective of the course is to develop the basic understanding of the construction of numerical algorithms, and perhaps more importantly, the applicability and limits of their appropriate use.
Ethics and Professional Practice
This course will develop the ethical foundations of good professional practice in information technology. It will provide the necessary background of ethical theories and practices, and discuss the role of professional organizations in maintaining such practice, specifically in the information technology industry. Also, It considers legislation that applies in the information technology industry, including major areas of ethical related in information technology, such as, software ownership, data privacy, and computer cracking.
Seminar
The course introduces the principles and methods of reading, writing and presenting a scientific research, report or paper. It helps student to success and accomplish their final year project. It also gives student technical skill of using and writing with latex as another style of writing based on What you think is what you get as opposed of WYSIWYG Software like MS Word.
Project Management
This course addresses the main issues related to software project management such as project definition, scope management, planning, organization, resources, scheduling, control, quality, cost estimation, time estimation, and, risk management. Students are also introduced to project management tools such as Work Breakdown Structure, Gantt charts, PERT, and the critical path method. Topics covered also include project management ethics, and effective project manager skills such as people and leadership skills. Students should get exposed to a software package used for this purpose.
Information Security
This course includes the following topics:
- Introduction to Information Security (Reviewing security basics discussed in previous course that are needed in this course)
- Need for Information security (Motivations, challenges and examples from real world)
- Place of security and contributed parties
- Legal and ethical issues
- Information security and risk management
- Information security implementation
- Standards and compliance
- Security Auditing
- Incident response
- Business continuity
- Disaster recovery planning
- Information security education and training
Graduation Project 1
The student should take a B.Sc. project in related area to his specialization and with technical merit. This project is for two semesters, it is counted as two credits for the first semester and three credits for the second semester. At the end of the semester the student submits a report describing his project. The projects are oriented toward providing experience in the establishment of objectives, criteria, analysis, construction, testing, and evaluation; solution of open-ended problems; design methodology
Database Management Systems
This course introduces the concepts and principles of database management systems (DBMS). It focuses on terminology and fundamental concepts of relational databases and database management systems. Students will learn SQL and PL/SQL including, triggers and transaction processing. They will understand performance issues and optimization strategies through query rewriting, secondary storage characteristics, and access strategies. This course also exposes student to some of the current challenges facing database professionals (e.g. semi-structured data management, XML databases, information extraction, data integration) as well as some DBMS design and management issues.
Graduation Project 2
The student should take a B.Sc. project in related area to his specialization and with technical merit. This project is for two semesters, it is counted as two credits for the first semester and three credits for the second semester. At the end of the semester the student submits a report describing his project.
The projects are oriented toward providing experience in the establishment of objectives, criteria, analysis, construction, testing, and evaluation; solution of open-ended problems; design methodology
Design and Architecture of Large Software Systems
This course presents principles of problem analysis and solution design as applied to the development cycle of a software system (from system requirements specifications to design, implementation, and system test). In addition, this course will explore methods for understanding and debugging existing software systems.
Low-Level Design of Software
This course is designed to teach the disciplined process of software development, from formal specification through to working systems. Topics include:
- Description of the complete software system development process (the waterfall model) - requirements analysis, precise specification (informal), design, implementation, testing and debugging, verification (informal), documentation, opportunities for team-work, working to standards.
- Design - motivation, top-down step-wise refinement, solving a simpler problem first, inclusion of testing in design, possibility of software reuse, importance of simplicity and readability.
- Analysis of design - dataflow diagrams, informal analysis.
- Low-level design - appropriate use of constructs in the language.
- Reasoning about correctness (informal). Implementation - bottom-up testing of functions, top-down implementation with stubbing.
- Abstract data types and modules - identification and specification, interfaces - information hiding, component re-use, libraries.
Software Modeling and Analysis
This course presents an integrated set of techniques for software analysis and design based on object-oriented concepts and the UML notation. Topics include introduction to object concepts, fundamentals of object oriented analysis and design process, use-case analysis, object modeling using behavioral techniques, design patterns, design quality and metrics
Software Project Management
This course addresses the main issues related to software project management such as project definition, scope management, planning, organization, resources, scheduling, control, quality, cost estimation, time estimation, and, risk management. Students are also introduced to project management tools such as Work Breakdown Structure, Gantt charts, PERT, and the critical path method. Topics covered also include project management ethics, and effective project manager skills such as people and leadership skills. Students should get exposed to a software package used for this purpose.
Software Evolution (Maintenance)
This course introduces the concept of software as an evolving and complex entity. Deliver knowledge about technical and business issues connected to legacy systems. Topics include:
- Relationships between evolving entities
- Models of software evolution
- Working with Legacy Systems
- Program Comprehension
- High level Reverse Engineering
- System and Process Re-Engineering
- Program Migration (technical and business)
- Refactoring
- Impact Analysis
- Introduction to Data Reverse Engineering
Software Architectures
This course introduces basic concepts and principles about software architecture. It starts with an overview of architectural structures and styles. Practical approaches and methods for creating and analyzing software architecture are presented. The emphasis is on the interaction between quality attributes and software architecture. It includes:
- Architectural styles and patterns,
- Methods for constructing and evaluating architectures
- Component-based development.
- Design patterns and object-oriented frameworks.
- Architecture and video games
Coding and Information Theory
To gain familiarity with the fundamentals of coding methods (including encryption and decryption, error detection and correction, optimal codes) and information theory (including the idea of information, channels, channel capacity, information entropy, and sampling theory)
Security Management
This course will cover a variety of topics that will prepare students who wish to develop skills in information security management. It is a survey course that will cover a full range of information security topics, ranging from technical areas like cryptology and network security to a policy area like risk management. Technical subjects will be explored as well as other less technical topic areas where managers are required to lead an information security group and make sound business decisions surrounding information systems and security
Computer Security
This very dense course will cover many facets of computer security including cryptography, network security, application security, and web security. Traditional topics such as buffer overflows, intrusion detection, packet analysis, and malware will be discussed. Topics also include privacy, incident handling, forensics and anti-forensics, legal issues, politics, and security in emerging technologies.
Formal Methods for Cryptography
The aim of this course is to facilitate understanding of the inherent strengths and limitations of cryptography, especially when used as a tool for information security. Armed with this knowledge, one should be able to make more informed decisions when building secure systems. The course covers various aspects of symmetric and asymmetric cryptography. While some topics will be dealt with in more detail, the course will attempt to provide a broad coverage of possibly all the core areas of cryptography. The students will be expected to implement and analyze some simple cryptographic schemes and read various articles. To understand the principles of encryption algorithms; conventional and public key cryptography. To have a detailed knowledge about authentication, hash functions and application level security mechanisms.
Internet Security, tools & techniques
This course aims to introduce security issues arising primarily from computer networks. Topics include node and service authentication, address spoofing, hijacking, SYN floods, smurfing, sniffing, routing tricks, and privacy of data en route. Buffer overruns and other exploitation of software development errors. Hardening of operating systems. Intrusion detection. Firewalls. Ethics.
Network Management and Security
Students will learn fundamentals of basic network management concepts and methods. Real-world examples will be used to illustrate concepts, protocols and methods that are fundamentals to address network management issues.