courses

Course Description

for the Computer Science Courses

Single in Computer Science (61 Credits)

Required Courses: (49 Credits):
Comp
232، 233، 234، 321، 333، 336، 339، 411، 430، 431، 432، 433، 439.
Stat 231 Math 234. Eng 312,336,337
Elective Courses: (12 Credits of the following):
Comp
332، 335، 337، 338، 434، 435، 437، 438،Math 330.


Minor in Computer Science (21 Credits):

Required Courses (15 Credits):
Comp
232, 234 ,333, 339, 433   Eng 435
Elective Courses: 6 Credits that are choosen from third year or higher courses.

 

121 - Introduction to computer:

  • Computer organization, binary system, data representation, computer and society. Applications, ( Including : Operating systems, data base, spread sheets, word processors, and internet ).
  • 132 -  Introduction to Computer and Programming:

    • (Computer organization; data representation; various types of computers; computer networks and telecommunications).
    • Programming in a high level language. Applications, (Including: Operating systems (Windows 98); spread sheets and word processors (MS-Word); mathematical and statistical tools (MS-Excel); Internet).
  • 230 - Computer & Programming

    • Computer components, number systems, data representation, using of an operating systems, programming in C language, language elements ,control statements, functions, pointers, file processing, data structures (stacks ,queues ,linked lists, recursion ), applications.                                                             
  • 234 -  Advanced Programming:

    • Programming in C++, concentration on the uses of pointers; Object Oriented Analysis, Design, Programming, and Applications. The theory behind OOP will be examined, and students will examine, analyze, and design programs using Object Oriented Techniques.
    • Prerequisite: Comp 230 or Comp 132.
  • 233 - Discrete Mathematics:

    • Basic areas in discrete mathematics relevant to Computer Science.  uses of logic in programming, set theory.  Functions and Relations.  Mathematical Induction, Recursion.  Introduction to Graph theory. Counting techniques, Combinatorics.
    • Prerequisite: Math 131.
  • 232 - Data Structures and Algorithms:

    • Rigorous treatment of abstract data types. Abstraction and implementation.  Linked list, stacks, queues and tree structures, algorithms for searching and sorting, recursion.  Proof of correctness of algorithms. Complexity of algorithms.
    • Prerequisite: Comp 234.
  • 321 - UNIX Operating Systems:

    • Introduction, System Access & Usage, File System, Shell, VI Editor, Process & Job Control, Shell Programming, security, Networking
    • Prerequisite: Comp 232
  •  

    332 - Automata theory and Formal Languages:

    • An introduction to the abstract notions encountered in machine computation.  Topics include finite automata, pushdown automata, regular expressions and formal languages, with emphasis on regular and context-free grammars.  Questions relating to what can and cannot be done by machines are covered using various models of computation, including Turing machines and recursive functions, Introduction to formal Language.
    • Prerequisite: Comp 233.
  • 333 - Database Systems:
    • Introduction to database structure organization, and retrieval. Conceptual models and schema of data: relation, hierarchical, network and object-oriented. Integrity, consistency and normalization Query languages, normalization, file structures, concurrency control and recovery algorithms, Introduction to management information systems.
    • Prerequisite: Comp 232 or ENCS 331.
  • 335 - Programming Languages:

    • Study of desirable features and specifications of a programming language by investigation of data types control structures, data flow, run time behavior of several languages belonging to different paradigms, such as Prolog, Lisp, Smalltalk, etc.  The following paradigms will be considered: Specification, Logic Programming, declarative or constraint-based, functional and imperative.
    • Prerequisite: Comp 232.
  • 336 - Analysis of Algorithms:
    • Techniques for efficient implementation and precise analysis of algorithms.  time and space requirements are applied on programs. Various sorting, searching and other algorithms are analyzed.
    • Prerequisite: Comp 232.
  • 337 - Operations Research:

    • Introduction to operation research, linear programming, geometric examples, simplex method, optimal solutions, transportation problem, assignment problem, network, revised simplex method.
    • Prerequisite: Comp 234, Math 234.
  • 338 - Artificial Intelligence:

    • Basic ideas and techniques underlying the design of intelligent compute systems. Topics include heuristic search, problem solving, game playing knowledge representation, logical inference, planning reasoning, expert systems, language understanding. Study to a recursion language.
    • Prerequisite: Comp 232, 233.
  • 339 –  JAVA Language and It’s Applications:

    Technical foundations of Java, object-oriented support, structure of the language (classes & interface), language syntax and features, Java input/output, applets and applications, using GUI library (swings), threads, and Java networking.

    Prerequisite: Comp 234

     

    411 - Seminar in Computer Science:

    • Students taking the course are expected to give lectures in various fields of computer in front of the faculty members in the department.  One of the main objectives of the course is to train students to do independent reading in computer, to present it and to discuss it with faculty members.
    • Prerequisite: Consent of the department.
  • 430– Advanced Database Systems:

    • Advanced topics in databases (Concurrency control and multi-user issues, Transaction processing, database performance and optimization)
    • Distributed database systems (client/server Architecture, database fragmentation vs. replication. Examples of distributed database management systems).  Overview of object oriented databases and current implementations.
    • Prerequisite: Comp 333.
  • 431 - Operating Systems:

    • Organization and implementation of operating systems, including time and space management.  Multi-tasking systems.  Processes, process, management, interprocess communication and synchronization.  Memory allocation, segmentation and paging.  Virtual memory. File systems, storage devices and 1/0 systems. Protection , security and privacy.
    • Prerequisite: Comp 232.
  • 432 - Communications and Networking:

    • An introduction to the basic concepts of computer networks. The architecture of data communication systems, the seven-layer model of a network, and the physical, data link, network, transport and session. Layers are explored.  Protocol algorithms are considered for the implementation of the various net work layers network installation.
    • Prerequisite: Comp 321.
  • 433 - Software Engineering:
    • Introduces students to the software life cycle, and modern techniques and tolls for the proper engineering of software systems, Stresses the development of reliable and maintainable software via system requirements and specifications, software design methodologies, detailed design, and implementation integration and resting.  Topics include: Software project management, life cycle documentation, software maintenance, and human factors issues.  Students will participate in the development of large applications software applying these techniques.
    • Prerequisite: Comp 232, 333.
  •  

    434 - Management Information Systems:

    • Organizational and Technical foundations of Information systems. Building information system. Management and organizational support systems. Managing contemporary information systems.
    • Prerequisite: Comp 232, 333.
  • 435 - Computer Graphics & User Interface:
    • Basic elements to computer graphics. Graphic output devices and their properties.  Graphic primitives and their attributes.  2-D and 3-D primitives. Input Devices. Various alternatives to the design of the human computer interface. Human factors considerations. Algorithms for line, circle drawing. Geometric transformations. Clipping algorithms. Introduction of graphics standard.  This course will include programming assignment with emphasis on the careful design of the user interface.
    • Prerequisite: Comp 232.
  • 437 - Independent Study:
    • An independent research project carried out by a student under the supervision of one of the faculty members. A report is submitted at the end of the study.
    • Prerequisite: 4th year standing and approval of the department.
  • 438 - Special Topics in Computer Science:
    • A study of a specific topic in computer field. The subject of the course is chosen according to student needs and interests of faculty members.
    • Prerequisite: Approval of the department.
  • 439 - Compiler Construction:
    • Introduction to compilers, programming languages, finite automata and lexical analysis, the syntactic specification of programming languages, basic parsing techniques, automatic construction of efficient parses, syntax -directed translation.
    • Prerequisite: Comp 232, 233.