|Faculty of Information Technology
Computer Science Department
Course Number: 1301106 Prerequisite(s): None
Course Name: Structured Programming Hours: (Th: 2 Lab: 2 Tot: 3)
The course introduces procedural programming in C++, and the C++ language syntax that enables first-time programmers to use them. Specific topic coverage includes Data Types, Declarations, and Displays; Assignments and Interactive Input; Conversions, Selection; Repetition; Modularity Using Functions; overloading; Arrays; Pointers; Strings as Character Arrays; Structures type.
Course Number: 1301110 Prerequisite(s): None
Course Name: Discrete Structures Hours: (Th: 3 Lab: 0 Tot: 3)
The course provides a comprehensive study of all important aspects of discrete structures used in computer science starting with propositions, logical operations, truth tables, Set Theory, Sequences, Matrices, Methods of proofs, properties of relations, Functions definitions, types of functions, Ordered Relations (partially ordered set, linearly ordered, Hasse diagrams), Lattices, Trees (rooted tree, subtree) and ending with Graph Theory.
Course Number: 1301120 Prerequisite(s): None
Course Name: Digital Systems Hours: ( Th: 3 Lab: 0 Tot: 3)
This course gives an introduction to number systems, Binary Logic and Boolean algebra, the principles of logic gates and the design of combinational circuits with implementation of logic circuit level including ROMs and PLAs. As well as, an introduction to flip flops with principles of sequential circuits' analysis and design. The course ends up with introduction to Registers and Counters design.
Course Number: 1301108 Prerequisite(s): 1301106
Course Name: Object Oriented Programming (1) Hours: (Th: 2 Lab: 2 Tot: 3)
This course follows the latest Java2 language release from Sun (JSE 2.6). By successfully completing this course, students will have an overall understanding of Java object oriented programming language. Basic topics considered are programs an program structure , Java syntax, data types, flow of control, methods, classes, objects, packages, inheritance, polymorphism, abstract classes and interfaces, arrays, strings, and exception handling.
Course Number: 1301208 Prerequisite(s): 1301108
Course Name: Object Oriented Programming (2) Hours: (Th: 2 Lab: 2 Tot: 3)
The course follows the latest Java2 language release from Sun (JSE 2.6). It will cover applets, GUI basics, threads, AWT, events, containers, and file I/O. By successfully completing this course, the student should be able to write GUI program, multithreaded programs, and Applets.
Course Number: 1301203 Prerequisite(s): 1301110+201108
Course Name: Data Structures and Algorithms Hours: ( Th: 2 Lab: 2 Tot: 3)
This course covers the fundamental aspects of building data structures in Java. Upon completion of this course, the students will have learned how to build OOP data structures such as arrays, linked lists, stacks, queues, binary trees, hash tables, and graphs using java classes and interfaces. Java Library Data Structures and their applications will also be covered. The students will also learn basic searching and sorting techniques.
Course Number: 1301224 Prerequisite(s): 1301222
Course Name: Microcomputer Systems and Assembly Language Hours: ( Th: 2 Lab: 2 Tot: 3)
The course covers microcomputer system organization and microprocessor architecture including microprocessor programming model, instruction and data formats, addressing modes, input / output and termination functions run by OS. Only by studying assembly language it is possible to gain understanding of the way how computer works. The course also contains: program transformation stages, program and statement formats, assembler directives and instructions.
Course Number: 1301222 Prerequisite(s): 1301120
Course Name: Computer Organization and Architecture Hours: (Th: 3 Lab: 0 Tot: 3)
Introduces the students to the organization and architecture of computer systems, starting with the standard Von Neumann model and then moving on to recent architectural concepts. Topics include: computer architecture concepts and levels, instruction set format, encoding, and types;
execution unit, control unit, RTL, memory organization, input / output systems, RISC architecture,
pipelining, and parallel processing.
Course Number: 1303265 Prerequisite(s): 104101
Course Name: Technical Communication Skills Hours: (Th: 3 Lab: 0 Tot: 3)
This course will teach students the essentials of technical communications. It will provide students with the knowledge they need to become successful communicators. They will learn to write and speak in a professional manner. They will learn the guidelines for developing messages and making them clear and acceptable to their audience. In addition, they will learn guidelines for writing memos, letters, reports, and resumes. They will learn the skills of interviewing for a job and getting it in addition to the skills of negotiation. The will also learn how to write speeches and present them effectively. The course will have a lot of hands on exercises and involvement from the students.
Course Number: 1301301 Prerequisite(s): 1303342
Course Name: Selective Programming Languages Hours: (Th: 1 Lab: 4 Tot: 3)
This course is planned to cope with the state of the art and advances in the field of programming languages, such as .NET programming environment.
Course Number: 1301302 Prerequisite(s): 1301203
Course Name: Concepts of Programming Languages Hours: (Th: 3 Lab: 0 Tot: 3)
This course aims to understand the basic goals and factors behind language development and evolution learn the basic approaches to implement high level languages, to understand the different paradigms and different features of programming languages, and to understand the run-time structures needed for the implementation of programming languages.
Course Number: 1301310 Prerequisite(s): 1301203
Course Name: Design and Analysis of Algorithms Hours: (Th: 3 Lab: 0 Tot: 3)
It provides a clear description of the concepts of algorithms and its design and analysis. The course provides a review of the main methods of designing algorithms, the concept of algorithm efficiency, design analysis and program implementation of different searching, sorting, selection, hashing, dynamic, and graph algorithms. The classification of problems by their complexity will also be given.
Course Number: 1301315 Prerequisite(s): 1301203
Course Name: Theory of Computation Hours: (Th: 3 Lab: 0 Tot: 3)
This course introduces the theory of computation through a set of abstract machines that serve as models for computation. Topics include: introduction to basic concepts and languages, recursive definition and regular expression, finite automata and transition graphs, Kleene’s theorem and non-determinism, regular languages and decide ability, Context-free grammar and Chomsky normal form, pushdown automata and context-free languages, parsing, Turing machines and Chomsky hierarchy.
Course Number: 1301326 Prerequisite(s): 1301203
Course Name: Operating Systems Hours: (Th: 3 Lab: 0 Tot: 3)
The course will start with a brief historical perspective of the evolution of Operating Systems (OS) since 1950’s. Particular emphasis will be given to the major OS components: Process Management (processes threads, CPU scheduling, synchronization and deadlocks), Memory Management (segmentation, paging and swapping), Device Management and File Systems.
Course Number: 1301340 Prerequisite(s): 1301203
Course Name: Artificial Intelligence Hours: (Th: 2 Lab: 2 Tot: 3)
This course provides an introduction to problems and techniques of Artificial Intelligence. It swaps the major sub-disciplines of AI such as: problem solving and state-space representation, search strategies and heuristic search techniques, knowledge acquisition and representation schemes, logical reasoning, planning, reasoning under uncertainty, major AI application areas (Natural language processing, machine learning, expert systems, games and robotics).
Course Number: 1301369 Prerequisite(s): Passing 90 Credit Hours
Course Name: Field Training Hours: ( Th: 0 Lab: 6 Tot: 3)
The course lasts for 6 weeks (total of 240 working hours) to cover the summer semester of the third year during which students will undergo a practical training at an approved private, government or semi-government agency. The objectives are to expose students to real working environment and get them acquainted with the organization structure, business operations and administrative functions ,to have hands on experience in their related field so that they can relate and reinforce what has been taught at the university and to let students learn how to interact effectively, efficiently and professionally with others. During the placement the department assigns an academic staff as the placement Tutor for each student. The recommended number of formal meetings between the student and the tutor is at least once a week. The purpose is to help the placed student whenever possible, to liaise with the company or agency and provide continuous assessment of the trainee. The field supervisor will be also asked to fill out reports on student attendance, motivation and performance. At the end of the training period the student must submit a final placement report to the department for assessment and must also present his work achievements in front of an examining committee formed by the department for that purpose.
Course Number: 1301371 Prerequisite(s): 1301203+201131
Course Name: Modeling and Simulation Hours: (Th: 3 Lab: 0 Tot: 3)
Presents a comprehensive introduction to different types of simulation techniques and the concept of time in a simulation, analytical modeling techniques , simulation process and tools, construction of models, random number generation, sampling from distributions, statistical tests for randomness and goodness fit, business and industrial applications.
Course Number: 1301392 Prerequisite(s): Department Approval
Course Name: Advanced Technologies and Tools in Computer Science Hours: (Th:3 Lab:0 Tot:3)
This course covers selected topics in current technologies and recent tools in the Computer Science field. Content may vary each offering or may be repeated.
Course Number: 1301415 Prerequisite(s): 1301315
Course Name: Compilers Hours: (Th: 3 Lab: 0 Tot: 3)
This course explores the basic problems in the translation of programming languages, focusing on theory and common implementation techniques for compiling block structured programming languages to produce object code for typical machines. The course involves a substantial laboratory project in which the student constructs a working compiler for a considerable subset of a realistic programming language. Topics to be covered include: programming language paradigms and problems of translation , pure interpreters versus compilers, language translation phases: (lexical analysis, parsing, ,code generation and optimization), language translation systems: ( lexical scanners, top-down and bottom-up parsers, table driven and recursive descent parsing) , type checking and semantic models.
Course Number: 1301425 Prerequisite(s): 1301326 Course Name: Advanced Operating Systems Hours: ( Th:3 Lab:0 Tot:3)
This course presents details for some subjects that covered in OS1 and covers other advanced topics with implementation issues of operating system on UNIX. It includes file system and secondary storage management, networking and distributed operating system, Security and protection, Resource management .
Course Number: 1301440 Prerequisite(s): 1301310
Course Name: Digital Image Processing Hours: (Th:3 Lab:0 Tot:3)
This course gives a comprehensive treatment of all the important aspects of this topic, including all fundamental steps in digital image processing (image acquisition, enhancement, compression, segmentation, recognition, etc.). The student is expected to learn the basic concepts of image formation to model and analyze image operations.
Course Number: 1301455 Prerequisite(s): 1301310
Course Name: Computer Graphics Hours: (Th: 2 Lab: 2 Tot: 3)
Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations, and interactive methods. Three-dimensional graphics, transformations, viewing geometry, object modeling and interactive manipulation methods. Basic lighting and shading. Video and animation methods.
Course Number: 1301491 Prerequisite(s): Department Approval
Course Name: Graduation Project (1) Hours: (Th: 0 Practical: 2 Tot: 1)
The final year project gives the student the opportunity to apply knowledge acquired in the early years. It aims to develop and measure the capabilities of a student to analyze and solve complex problems. Projects are assigned on a team basis, and are normally proposed by lecturers of the department. However, a student may propose a topic or an area of his/her own research interest. Projects should be problem oriented relevant to the program of study. Students are encouraged to have some original contribution.
This is the first phase of the graduation project development in which each team of students will be assigned a supervisor who is in charge of this phase of the project. In this part student is expected to develop the skills in gathering information, analyzing and specifying problem requirements and the design. A literature survey and initial plan is written along with the requirements specification and system design in a single document and is submitted by the end of the semester.
Course Number: 1301492 Prerequisite(s): 1301491
Course Name: Graduation Project (2) Hours: (Th: 0 Practical: 4 Tot: 2)
This is the second phases of the graduation project development. It covers the implementation, testing, and deployment phases of the project started in 1301491. A final design and implementation report is submitted and an oral presentation including a public demo is evaluated by a committee of faculty members.
Course Number: 1301490 Prerequisite(s): Department Approval
Course Name: Special Topics in Computer Science Hours: (Th:3 Lab:0 Tot:3)
This course covers selected topics in current research and recent developments in the Computer Science field. Content may vary each offering or may be repeated.
Course Number: 1302281 Prerequisite(s): 1301108
Course Name: Introduction to Software Engineering Hours: (Th: 3 Lab: 0 Tot: 3)
?? Topics covered or introduced include: Fundamental SE concepts, terminology, principles and role, S/W process and process models, S/W quality issues, S/W project management, requirements definition, elicitation, analysis, modeling and specification. Students are given hands-on practice using selected case studies and CASE tools.
Course Number: 1302383 Prerequisite(s): 1302281
Course Name: Project Management Hours: ( Th:2 Lab:2 Tot:3)
The overall objective for this course is to give students an understanding of basic project management concepts and principles. It seeks to provide practical steps for managing IT projects. It also seeks to expose students to a spectrum of activities involved in project management with a specific focus on IT projects (It is NOT designed for project management in engineering and construction).The course also exposes students to a variety of techniques to manage the project’s budget, schedule, quality, and risk issues of IT projects.
Course Number: 1302483 Prerequisite(s): 1301326
Course Name: Embedded and Real-Time System Hours: (Th:2 Lab:2 Tot:3)
The Course introduces Students to the notion of real- time and embedded system, their requirements, design principles, techniques and tools, describe some generic real- time system architecture. The Course gives students a might into the concept of real- time and embedded systems, why real time systems are usually implemented as a set of concurrent processes, role of real- time executive, common architecture for monitoring and control of, data acquisition systems.
Course Number: 1303236 Prerequisite(s): 1301108
Course Name: Web-Based programming Hours: (Th: 2 Lab: 2 Tot: 3)
Course Number: 1303338 Prerequisite(s): 1303236+1301304
Course Name: Advanced Internet Computing Hours: (Th: 2 Lab: 2 Tot: 3)
The course teaches students, the development of Web-based applications, utilizing server side processing by using ASP.NET technology, to give students exposure to more advanced methods and technologies required for Web page development and designing large-scale Web sites. Applications for scripting in animation, data validation, data persistence and user interaction, XML over view, XML schemas: using Document Type Definitions and XML schema language.
Course Number: 1303342 Prerequisite(s): 1301203
Course Name: Database Systems Hours: (Th: 3 Lab:0 Tot:3)
Introduction to databases: overview, definitions and main features, 3 level architecture, data and program independence, classification of data models, DBMS components, theoretical and pragmatic ideas underlying relational database systems and relational query languages, conceptual data modeling using EER-DM, physical organization of databases, relational database design through normalization, the process of database application design, operational and security issues.
Course Number: 1304350 Prerequisite(s): 1303236
Course Name: Multimedia Systems Hours: (Th: 2 Lab: 2 Tot: 3)
This course covers contemporary, interactive multimedia technology systems, focusing on types, applications, and theories of operation. In addition to the computer generated media, text, still graphics, and sound, the student will learn how to digitize and manipulate images, voice, video materials, and software computer generated multimedia applications. They will explore the user interface, design and implementation of real multimedia. A project will be part of the class. Lab work is included.
Course Number: 1304334 Prerequisite(s): 1304336
Course Name: Advanced Computer Networks Hours: (Th :3 Lab: 0 Tot: 3)
This course builds on principles established in the Data Communications and Networking (1303330). Topics to be covered include: network architectures, in depth routing and discovery protocols and its operations, latest Internet advances such as IPv6, Mobile IP, and quality of service principles.
Course Number: 1303434 Prerequisite(s): 1304336
Course Name: Distributed Information Systems Hours: (Th:3 Lab:0 Tot:3)
The primary objective of the course is to familiarize students with the key issues of distributed information systems. Information systems used in industry, business and commerce will exploit distributed computing technology such as the Internet and the World Wide Web. Web-based electronic commerce, groupware, on-line transaction processing and advanced multimedia entertainment systems are a few of the applications are now possible thanks to this technology. The course will further aim at promoting and providing students with the understanding and experience of the technologies, tools and techniques that are vital to the realization of these distributed applications.
Course Number: 1303442 Prerequisite(s): 1303342 Course Name: Data Mining and Data Warehousing Hours: ( Th:3 Lab:0 Tot:3)
As companies are confronted with the challenge of handling an ever-increasing amount of data, it is becoming more difficult to access the desired information from this data. Data mining and knowledge discovery refer to the process of discovering this desired hidden information from the ‘ice-berg’ of data.
Course Number: 601426 Prerequisite(s): None
Course Name: Information Technology Legislations Hours: (Th: 3 Lab: 0 Tot: 3)
The explosive growth of computer and communication technology raises new legal and ethical challenges that reflect tensions between individual rights and social needs. This course will examine areas like: computer crime, information and intellectual property, encryption and national security, privacy implications of computer networks, computer communication and freedom of expression.
Course Number: 1304336 Prerequisite(s): 1301326
Course Name: Data Communication and Computer Networks Hours: (Th: 2 Lab:2 Tot:3)
To give an understanding of principles of data communication, telecommunication systems, protocols and computer networks. Topics include: communication concepts, transmission media, transmission mode, digital packet switching and routing, network topology and architecture, standard OSI and TCP/IP Protocols and layers, network management. An applied understanding of principles of data communication in a laboratory environment are introduced.
Course Number: 1301304 Prerequisite(s): 1303342
Course Name: Visual Programming Hours: (Th:3 Lab:0 Tot:3)
The course introduces students to the design and implementation of window-based, event-driven, and object-oriented applications. This is done by employing modern programming languages and tools. Topics include, building visual components such as windows, menus, frames, message-boxes, buttons, lists, and input/output boxes. In addition to managing containers and layout, event-handlers, and exceptions. A programming environment is selected based on current technology trends.
Course Number: 1301270 Prerequisite(s): 1301106
Course Name: Numerical Analysis Hours: (Th:3 Lab:0 Tot:3)
Topics covered include: Introduction to matrices, direct methods of solving linear systems, sources of errors, solving nonlinear equations, interpolation and polynomial approximation, numerical differentiation and integration, Eigen values and Eigen vectors.
Course Number: 1301461 Prerequisite(s): 1301340
Course Name: Machine Learning Hours: (Th:3 Lab:0 Tot:3)
Introductory course on machine learning which gives an overview of many concepts, techniques, and algorithms in machine learning. Topics include classification, linear regression, support vector machines, hidden Markov models, and Bayesian networks. The course will give the student the basic ideas behind modern machine learning methods and how they work.