601111 Programming Language (1) (3:3-2)
Prerequisite: 602104
This course introduces the fundamental concepts of programming languages in JAVA. Topics covered: The anatomy of a Java program, primitive data types and operations, numerical data types, control structures, selections, loops and methods (iterative and recursive methods), passing parameters, arrays (one dimensional and two dimensional arrays) including some applications such as sorting and searching arrays, introduction to object oriented programming including objects and classes in Java.
601212 Programming Language (2) (3:3-2)
Prerequisite: 601111
This course introduces the basic concepts of Object-Oriented Programming (OOP) using JAVA programming language. Topics covered: OOP features including: Abstraction, encapsulation, inheritance and polymorphism. Classes, objects, constructors, overloading and overriding, interfaces, packages, exception handling, applets and introduction to GUI programming are explained.
601221 Data Structures (3:3-2)
Prerequisite: 601212 + 103250
This course introduces the main concepts of data structures. Topics covered: Concepts of Abstract Data Types (ADT), specification of different data structures such as: (Lists, Stacks, Queues, Dictionaries, and Trees) as ADT, different implementations using an object oriented approach, algorithms analysis in terms of time and size for the different implementations. Recursion as problem solving technique and a brief introduction to graphs is also covered.
601241 Computer Logic Design (3:3-2)
Prerequisite: 602104
This course provides an introduction to computer logic design. Topics covered: numbering systems and their internal representation, Boolean expressions and functions of combinational and sequential circuits, Boolean functions simplification methods, design of logic basic building blocks (adders, subtractions, comparators, multiplexers, decoders, encoders, flip-flops, registers, counters, Read Only Memory “ROM”, and Programming Logic Array “PLA”) and basic concepts of the Random Access Memory “RAM”.
601242Computer Organization (3:3-2)
Prerequisite: 601241
This course introduces Computer system organization and machine language covering: The basic components and organization of all 80x processors and their registers, memory segments, addressing modes. Introduction to assembly language: Date declaration and formats, instruction set, procedures, interrupts, macros and input & output.
601281 Database (1) (3:3-2)
Prerequisite: 601212
This course provides an overview of database concepts and Database Management System (DBMS). Topics covered: Introduction to the relational database model including: Relational algebra, relational calculus, Structural Query Language (SQL), database design methodologies, Entity-Relationship Model (ER), integrity constraints, conceptual database design, functional dependencies and normalization.
601322 Computation Theory (3:3-0)
Prerequisite: 601221
This course introduces the basic concepts of computation theory. Topics covered: Automata theory, deterministic and nondeterministic finite automata, regular expressions, regular languages and their properties, context-free grammars, context-free languages and their properties, pushdown automata, introduction to Turing machines, undesirability, and intractable problems.
601324 Programming Languages & Design (3:3-0)
Prerequisite:
601322This course introduces the developments of programming language and design concepts. Topics covered: Evolution of Major Programming Languages, Syntax and Semantics statements describing, Lexical and Syntax Analysis, variable Names including: Bindings, Type Checking, and Scopes, in addition to Data Types, Expressions, Assignment Statements, and Statement-Level Control Structures.
601325 Algorithms Design & Analysis (3:3-0)
Prerequisite: 601221
This course introduces the concepts of designing and analyzing algorithms. Topics covered: Review of abstract data types and data structures, definition of algorithms, classifying functions and computational complexities of algorithms, algorithms analysis & design techniques including: Divide and conquer greedy methods, searching and sorting, trees, graphs, hashing, combinatorial algorithms and P/NP problems.
601343 Computer organization and Architecture (3:3-0)
Prerequisite: 601241
This course provides an introduction to computer organization and the assembly language for the Intel 8086 family of processors. Representation of numbers and characters; Number systems, conversion between number systems, addition and subtraction, and two’s complement representation. Emphasis will be on the structure of the processor 8086 and its assembly language. This includes: Introduction to IBM PC assembly Language; The processor status and the flag register; Flow control instructions; Logic, shift, and rotate instructions and their application; Stack application and introduction to procedures; Multiplication and division; Arrays and addressing modes. Memory Hierarchy will be addressed in details.
601331 Operating Systems (3:3-0)
Prerequisite: 601221
This course introduces the fundamental concepts of operating systems. Topics covered: Evolution of operating systems (OS), operating system structure, operating system tasks including: Process management and scheduling (time sharing, deadlock), strategies of storage management and its protection, secondary storage structure; Distributed Systems, I/O system management.
601441 Computer Architecture (3:3-0)
Prerequisite: 601242
This course provides an introduction to hardware and software aspects of computer architecture. Topics covered: Computer structures and their types, instructions’ set architecture, arithmetic logic unit, control unit, buses, control signals and statements, memory hierarchy, computer performance measurement, enhancing performance with pipelining. Connecting and interfacing I/O devices to CPU.
601451 Artificial Intelligence (3:3-0)
Prerequisite: 601325
This course provides the general concepts of Artificial Intelligence. Topics covered: Search strategies, knowledge representation methods, structures for state space search, propositional and predicate calculus, strategies for state space search, heuristic search, control and implementation of state space search. Research and application oriented topics are also covered including: Expert systems, machine learning, intelligent agents and neural networks. Prolog programming language is also introduced.
601471 Computer Graphics (3:3-0)
Prerequisite: 601325
This course introduces the principles of computer graphics. Topics covered: Two-dimensional graphics in details, an introduction to three-dimensional concepts and methods (3D transformations and representation. (Animation and spin curves, raster operations, modeling entities planar and three-dimensional, generate realistic optical manifestations on dot-matrix display devices, characterization of the different elements that support the computer graphics including: Algebra, geometry, algorithms, optics and physics), in addition to the interaction of these elements in the design of graphics software systems.
601400 Field Training (3:0-3)
Prerequisite: Dept. Approval
This course provides the ability to practice on using computer tools and applications in various fields, either in a public or private sectors under the supervision of the department members. The purpose of the supervised field training experiences is for students to synthesize the knowledge and skills developed during the academic portion of the program in a practical setting. Field training is both a learning experience for students and contributes to the work undertaken by the field training site. The expectation is that the field training will provide learning opportunities unavailable in a classroom setting.
601499 Graduation Project (3:0-3)
Prerequisite: 603392 + 602302
This course gives the students the chance to demonstrate their intellectual, technical and creative abilities through developing projects in one of information technology fields. The Graduation Project challenges students to go beyond the learning that occurs as the result of their prescribed educational program. Students shall complete their projects in areas of concentrated study under the direction and supervision of faculty members. The projects will demonstrate the students' ability to: Apply, analyze, synthesize, evaluate information, and communicate significant knowledge and comprehension.
601381 Database (2) (3:3-2)
Prerequisite: 601281
This course illustrates the advance database concepts and application design techniques. Topics covered: Normalization theory and schema refinement, physical disk storage, transaction processing concepts and theory, concurrency control techniques and GUI design (oracle developers: forms and reports).
60140 Selected Topics in Computer Science (3:3-0)
Prerequisite: Depart. Approval
This course provides topics that are selected by instructors according to the interest of the department and students and cover the novel areas in current advancements in various information technology fields. Suggested topics include: Advance-programming languages not included in the degree plan, advance topics in networks, advance topics in database, management information system, advanced topics in internet and web, case study in different areas.
601431 Compiler Design (3:3-0)
Prerequisite: 601322
This course provides a deep understanding of techniques and concepts involved in different phases of the compilation. Topics covered: Lexical analysis, syntax analysis, top-down parsing and bottom–up parsing, semantic analysis, synthesis stage of compilation, storage allocation and code generation.
601458 Expert Systems (3:3-0)
Prerequisite: 601451
This course presents an introduction to the fundamental concepts of Expert Systems and their applications. Topics covered: Rule-Based Expert Systems and their applications, reasoning under uncertainty and representing imprecise and/or uncertain knowledge, expert systems technology (knowledge acquisition, design and diagnosis), expert systems languages and tools. Related topics covered include Machine Learning, Artificial Neural Works and Dialog using Natural Language processing.
601460 Professional Ethics for Information Technology (1:1-0)
Prerequisite: 604361
This course introduces students to the topics of information technology ethics including: definitions, rules & policies of computer ethics, hacking, viruses, Internet ethics, freedom of expression on the Internet, computer professionals and social responsibilities, software copyright, intellectual property, software piracy, cyber law and privacy & security of computerized information.
601472 Image Processing (3:3-0)
Prerequisite: 601325
This course presents fundamental concepts of digital image processing. Topics covered: Image formation (Sampling and quantization), image resolution (spatial, gray, color), and image enhancement in spatial domain (point to point enhancement (stretching, slicing, threshold) and area to point enhancement (smoothing, sharpening, and noise reduction), enhancement in the frequency domain (sharpening, smoothing). The course also introduces the FFT theory in one and two dimensions in both continuous and discrete form; Image restoration; Image analysis, line detection, edge detection, segmentation techniques (threshold, splitting and merging, region growing); Image encoding such as Huffman and Run-length are also introduced.
9600102 Computer Skills (3:3-2)
Prerequisite: 9601099/P.T
This course provides an overview of the Internet, Internet protocols, and www. Topics covered: Overview of Internet Technology including the different services such as E-mail, File transfer (FTP), telnet, and chatting. Study of principles of web browsers, search engines and portals, design Web sites using Hyper Text Markup Language (HTML)including: Insert images, hyperlinks, lists, tables, forms and frames into Web pages, Cascading Style Sheets (CSS) and JavaScript.