Undergraduate study
»» University Requirements
»» Department Requirements
»» Recommended Course Sequence
»» Course Description
 
901130Computer Science -1
 pre- requisite: ( - )
Introduction to Personal Computers (PCs). Computer history and applications; the binary numbering system, data representation; computer organization: central processing unit, memory, input/output units; logic gates; introduction to operating systems, MS Windows, word processing using MS Word, and spreadsheets using Excel; Introduction to the Internet and the World Wide Web; elementary homepage development; HTML.
»» More
 
901131Computer Science -2 (scientific)
 pre- requisite: ( - )
null
»» More
 
901200Discrete Mathematics
 pre- requisite: ( - )
This course is an introduction to the formal mathematical concepts of computer science for the beginning student and covers a wide variety of diverse topics that serve as the mathematical framework for the design and analysis of algorithms. Topics include elementary logic, set theory, induction and recursion, relations, functions, Boolean algebra, tree structures, permutations and combinations and an introduction to graph theory and finite state machines
»» More
 
901210Object-Oriented Programming
 pre- requisite: ( - )
Review of control structures, functions and primitive data types. Structured data types. Machine level representation of data. Brief survey of programming paradigms. The object-oriented programming paradigm. Classes, subclasses, and inheritance; polymorphism; class hierarchies; template. Software evolution: software maintenance; legacy systems; software reuse.
»» More
 
901211Programming in Java
 pre- requisite: ( - )
Object-oriented programming (classes, objects, messaging, inheritance), Java language features (interfaces, exceptions, packages, concurrency, garbage collection), use of the built-in packages (lang, util, io, networking, awt), applications and applets, security and verification, Java implementation and the virtual machine. test
»» More
 
901212
 pre- requisite: ( - )
»» More
 
901220Digital Logic Design
 pre- requisite: ( 901130 )
The objective of this course is to familiarize the student with fundamental principles of digital design. It provides coverage of classical hardware design for both combinational and sequential logic circuits. The course is supported by a digital logic design laboratory that uses the IDL-800 Digital Lab. device. This instrument is a circuit evaluator that enables users to design and connect standard Integrated Circuits.
»» More
 
901230Data Structure and File Processing
 pre- requisite: ( - )
Complexity of algorithms, matrices, strings, lists, stacks and queues, hash tables, graphs and networks, trees, types of files and their internal structures, example algorithms.
»» More
 
901300Computational Theory
 pre- requisite: ( - )
»» More
 
901310Visual Programming
 pre- requisite: ( - )
Window-based, object-oriented, and event-driven application design and implementation employing modern programming languages and tools. Building visual components (windows, menus, frames, message-boxes, buttons, lists, input/out boxes), managing containers and layout, event-handlers, and exceptions. Employing GUI class libraries. A suitable programming environment to be selected for the course based on technology trends. Laboratory component is mandatory.
»» More
 
901320Computer Architecture
 pre- requisite: ( - )
Introduction, computer organization, arithmetic and logic unit, memory units and addressing, input/output units, data transfer channels and interface units; hardwired and microprogrammed control units, machine language and assembly language programming
»» More
 
901321Computer Networks
 pre- requisite: ( - )
Structure of data communication systems, OSI reference model, physical layer, switching and multiplexing, data link layer, error detection, error and flow control, switched networks, medium access protocols in broadcast networks, network layer, internetworking fundamentals, transport layer.
»» More
 
901330System Design and Analysis
 pre- requisite: ( - )
Overview of the organization of current computer systems, data collection, dataflow diagrams, processes, modeling of objects, planning and information change, security and protection issues. Syllabus The main topics covered in this course are: 1) SYSTEMS ANALYSIS FUNDAMENTALS - ASSUMING THE ROLE OF THE SYSTEMS ANALYST. -UNDERSTANDING ORGANIZATION STYLE AND ITS IMPACT ON INFORMATION SYSTEM. -DETERMINING FEASIBILITY AND MANAGING ANALYSIS AND DESIGN ACTIVITY. 2) INFORMATION REQUIREMENT ANALYSIS - SAMPLING AND INVESTIGATING HARD DATA. INTERVIEWING. USING QUESTIONNAIRES. OBSERVING DECISION-MAKER BEHAVIOR AND THE OFFICE ENVIRONMENT. PROTOTYPE AND RAPID APPLICATION DEVELOPMENT. 3) THE ANALYSIS PROCESS - USING DATA FLOW DIAGRAMS. ANALYZING SYSTEMS USING DATA DICTIONARIES. DESCRIBING PROCESS SPECIFICATION AND STRUCTURED DECISIONS. ANALYZING SEMI STRUCTURED DECISION SUPPORT SYSTEM. PREPARING THE SYSTEM PROPOSAL. WRITING AND PRESENTING THE SYSTEM PROPOSAL. 4) THE ESSENTIALS OF DESIGN DESIGNING EFFECTIVE OUTPUT. DESIGNING EFFECTIVE INPUT. DESIGNING DATABASE. DESIGNING USER INTERFACES. DESIGNING ACCURATE DATA-ENTRY PROCEDURES. 5) SOFTWARE ENGINEERING AND IMPLEMENTATION - QUALITY ASSURANCE THROUGH SOFTWARE ENGINEERING. - SUCCESSFULLY IMPLEMENTING THE INFORMATION SYSTEM. - OBJECT-ORIENTED SYSTEM ANALYSIS AND DESIGN AND UML.
»» More
 
901331Database Management System
 pre- requisite: ( - )
Introducing the fundamental concepts necessary for designing, using, and implementing database systems and applications.
»» More
 
901332Operating System
 pre- requisite: ( - )
The course covers concurrent processes and synchronization mechanisms, processor scheduling, memory management, file management, I/O management, deadlock management, and performance of operating systems.
»» More
 
901340Analysis and Design of Algorithms
 pre- requisite: ( - )
Syllabus: Algorithm analysis, Efficiency of algorithms, Complexity of algorithms, Divide & Conquer, Heap sort, Binomial heap, Quick sort, Counting sort, Binary search tree & Red-Black tree, Matrix-chain multiplication & Greedy algorithm, Knapsack problem, Huffman code, Graph & Toplogical sort, Minimum spanning tree, Shortest paths, Binomial heaps.
»» More
 
901350Computer Graphics
 pre- requisite: ( - )
Introduction: Graphics systems, Color models. Input Devices: Physical and logical devices, Interaction with mouse, keyboard. 2D Algorithms: Window and Viewports, Line drawing, Filling algorithms. Vectors Concept of vectors, Clipping algorithm. 2D Transforms: Basic 2D Transforms, Homogeneous coordinates. 3D Modeling: Surfaces, Wireframe and Solid models. 3D Transforms: Affine transformations, Projections. Rendering: Hidden surface removal, Illumination models. .
»» More
 
901410
 pre- requisite: ( - )
»» More
 
901410Fourth Generation Languages
 pre- requisite: ( - )
»» More
 
901420Internetworking and Applications
 pre- requisite: ( - )
Bridges and gateways, internetworking protocols (IP, TCP, DNS, ARP, RARP, ICMP, EGP), networking management protocols, Internetworking applications: FTP, E-mail, and WWW. Client/server programming using sockets.
»» More
 
901430Fundamentals os Distribute and Parallel Systems
 pre- requisite: ( - )
»» More
 
901431Parallel Distributed Database
 pre- requisite: ( - )
»» More
 
901440Compilers
 pre- requisite: ( - )
pre- requisite: (0901300) Principles and practices in the design of programming language compilers. Lexical analysis, parsing (LL, LR, and LALR parsing), symbol tables, type checking, common representations for records, arrays, and pointers, runtime conventions for procedure calls, storage allocation for variables, and generation of code. Students construct a simple compiler as a programming project... -----
»» More
 
901470Expert Systems & Artificial Inttelligence
 pre- requisite: ( - )
Course outlines: • Introduction to AI • Overview and History of AI, Intelligence agents. • Philosophical Issues • Introduction to Prolog • Search • Search in Prolog • Game Playing • Introduction to Expert Systems • Knowledge Acquisition in Expert Systems • Knowledge Representation . Logic . Production Rules . Structured Objects • Planning • Other Topics) Genetic Algorithms, Natural language processing, Reasoning, planning, Fuzzy Logic, neural Networks, Learning)
»» More
 
901480
 pre- requisite: ( - )
»» More
 
901480Special Topics
 pre- requisite: ( - )
»» More
 
901499Graduation Project
 pre- requisite: ( - )
A student's prepares a project proposal, carries out the necessary work and submit monthly progress reports to his supervisor. The graduation project should be a substantial development project or a propsed solution for a theoretical computer science problem. A final report is to be written and presented to a 3-member examination committee that includes the supervisor.
»» More
 
901710Programming Languages Structure
 pre- requisite: ( - )
»» More
 
901711Parallel Programming
 pre- requisite: ( - )
»» More
 
901720Advanced Computer Networks
 pre- requisite: ( - )
This course will covers advanced fundamental design and mplementation principles of Internet, key networking issues and their solutions. This course will cover synthesis approach, looking at the network as a whole: identify, study common architectural components, protocol mechanisms, design/implementation principles and trade-offs. Several important topics in depth will be investigated, topics that are not covered in an introductory networking course. See the reading materials for addition information on topics covered in the course. The students are required to read and review required readings on their own, preferably in advance, including those that are not covered in the lectures. In addition, additional supplemental reading materials will be provided to the students
»» More
 
901730Distributed Operating Systems
 pre- requisite: ( - )
»» More
 
901740Object Oriented Software Development
 pre- requisite: ( - )
0
»» More
 
901750Analysis of Algorithms
 pre- requisite: ( - )
The course covers : Asymptotic notation. Algorithm analysis methods. Greedy algorithms and divide-and-conquer algorithms. Dynamic programming. Probabilistic algorithms. Applications to sorting, scheduling, and graphs. Theoretical models for computing computational complexity. NP-complete and NP hard problems. Approximation algorithms. Details as follows:
»» More
 
901770Advanced Artificial Intelligence
 pre- requisite: ( - )
»» More
 
901780Advanced Computer Architecture
 pre- requisite: ( - )
This course provides the basic knowledge necessary to understand the hardware operation of digital computers and covers the three subjects associated with computer hardware. Topics include quantitative principles of computer architecture design, instruction set design, processor architecture: pipelining and instruction level parallelism, cache and virtual memory, multiprocessors, multi-computers and interconnection networks, message passing, wormhole routing, and case studies.
»» More
 
901791Seminar
 pre- requisite: ( - )
»» More
 
901795Scientific Research Methods in Computer Science
 pre- requisite: ( - )
»» More