Comp 231, 232, 233, 234, 235, 333, 334, 335, 339, 411, 431, 432, 433, Stat 231, Math231, Math234, Math330, Phys231.
Elective Courses: (15 Credits of the following)
Comp 231, 232, 233, 234, 235, 333, 334, 431, 432, Math231, Math234, Phys231.
Elective Courses: (6 Credits of the following)
Comp 332, 335, 336, 337, 338, 433, 434, 435, 436, 437, 438, 439, Math330.
Elective Courses: 6 Credits of (Comp 235, 332, 334, 335, 336, 337, 338, 431, 432, 433, 435, 436, 437, 438, 439)
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; data bases; spread sheets and word processors; mathematical and statistical tools).
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.
231 - Foundations Of Computing:
Boolean Algebra, computer architecture, Assembly language, machine language,
language translation principles, operating system, storage management.
Prerequisite : Comp 132.
Using different techniques in programming through using one of the modern
programming languages( C ), by giving types of the variables, input-output,
control statements, functions, arrays, records, files, and the concentration
on the uses of pointers, introduction to C++.
Prerequisite : Comp 132.
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, 231.
Combinational circuits,. Minimization and implementation of Boolean
function. Propagation delays. Devices: multiplexers, decoders, encoders,
adders, etc. Various types of flip-flops. Sequential circuits: counters,
shift registers. Various types of memories: ROM, RAM etc., Applications.
Prerequisite : Comp231.
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.
Prerequisite : Comp233.
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.
Prerequisite : Comp234.
334 - Computer Architecture and Assembly Language:
This course explores the logical structure of a computer at the register
transfer level. Machine representation of information. Topics associated
with data representation, 1/0 devices and by transactions are treated in
this course. Introduces assembly language for a modern processor. This
course will include programming projects.
Prerequisite : Comp 234, 235.
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 : Comp232.
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.
Introduction to operation research, linear programming, geometric examples,
simplex method, optimal solutions, transportation problem, assignment problem,
network, revised simplex method.
Prerequisite : Comp234, Math234.
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 - Object Oriented Programming:
Programming in C++, 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 : Comp234.
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.
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 : Comp334.
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 : Comp334, Math231.
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, 334,
Math 231.
Elementary hardware concepts and digital computer, machine operations
and instructions, virtual addressing stack architecture, I/O interrupt
solutions to problems in assembler language.
Prerequisite : Comp334.
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.
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,
334.
