![]()
|
Programming language CS110
This is a starting level programming course which covers topics such
as control structures, iteration statements, methods, parameter
passing, library methods, and arrays. Implementations and programs
developments will be done using Java programming language. It is
designed to achieve the following objectives
Programming language(2) CS111 This course develops the students’ ability to continue understanding and writing programs using Java programming language. In this course, students will deeply understand the architecture of Object Oriented programming and utilization. Inheritance, Encapsulation, Abstraction, and Polymorphism will be thoroughly explained and utilized. Students will also learn graphics and Java 2D and learn how to use and develop Graphical User Interface (GUI) in order to communicate with different applications. Dealing with files and streams will be studied in this course as well. The main objective in this course is to develop skills required to design, implement, and debug solutions of problems using the object-oriented approach
Data Structures CS212
This course describes: Abstract data types and their implementation;
Linked lists, trees, binary trees, graphs, and multilinked
structures; Brief introduction to algorithm analysis; Sorting and
searching techniques and performance; Topics include linear
structures (lists, stacks and queues), nonlinear structures (trees
and graphs)
Advanced Programming language CS313 This course will introduce students to .NET Programming using the C# programming language. Emphasis will be placed on understanding not only the syntactical features of the language, but also how to effectively use the design of the language to develop robust software. The course assumes at least one year of programming in Java . Hence the main objective of the course is give the students a deep understanding of advanced programming concepts such as encapsulation ,polymorphisms and generic data types using the c# language. Programming Languages Concepts CS430 This course
aims to introduce students to the concepts found in a variety of
programming languages. Programming languages as tools for problem
solving and a brief introduction to languages from a number of
different paradigms. The course objectives can be summarized as
follows: Web Application development CS486 This course deals with the study
of the technologies used to design and implement multimedia and
dynamic web sites. The focus of the course will be hands-on
development of professional web-based applications. Students will
study a variety of software technologies relevant to web design and
implementation. Several applied topics are covered in class:
programming languages, scripting languages, network programming,
client/server computing, security, and multi-media systems design.
The objectives of the course can be summarized as follows: Compilers Design CS431 This course covers: the structure of compilers; lexical analysis; syntax analysis including LL, SLR, LALR and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools .In this course students will develop a deeper understanding of Compilers technology. Students will learn the most important techniques for the representation and generation of Languages. Those techniques will be then applied to the construction of a compiler for a programming language. In particular, during this course the student will learn how to build the different parts of a Compiler: Lexical Analyzer, Parser, Code Generation and Optimization.
Computer Organization CS206 This course introduces the basic computer organization; register, arithmetic-logic unit, and control unit; machine representation of data and instructions; machine language and assembly language programming; addressing modes; interrupts and input/output programming. This course is an introduction to explain how computers are designed and how it’s work. It introduces the student to foundational of computer organization including combinational and sequential circuits, microarchitecture and instruction set architecture, assembler programming, internal data representations and essential hardware components that support operating systems. It is intended to give students an overview of the entire computer machine organization. Computer architecture CS207 This course introduces the key concepts that are likely to be included in the design of any modern computer system; the basic metrics by which new and existing computer systems may be evaluated; the peripherals, their interconnection and underlying data operations to understand the design of computer systems. The course examines different computer implementations and assess their strengths and weakness, explains how an instruction is executed and how basic instruction level parallelism using pipelining. This course explains the effect of memory latency and describes the use of memory hierarchy to reduce the effective memory latency. Parallel computers Architecture and Programming CS408 This course covers: Design and principles of parallel architectures, and parallel languages; Naming, latency, bandwidth, and synchronization in parallel machines; Distributed memory, shared memory, message passing, and data flow; Specification of parallelism, inter-process communication and synchronization, design of parallel programs for scientific computation and distributed systems; Survey of existing multiprocessor systems. The course introduces the fundamental principles and trades involved in designing modern parallel computers, as well as the programming techniques to effectively utilize these computers. The course explains parallel computers, shared data, synchronizing threads, the latency and band-width associated with communication, exploits the potential processing power of the parallel computers by understand how to write efficient parallel programs. The course introduces the student to design a good parallel program with understanding how parallel machines are built and vice-versa. Distributed Systems CS409
This course aims
to expose students to the complexities involved in designing and
building distributed applications. Increase in-depth understanding
of the principle paradigms used in this area. Main themes: Paradigms
of distributed computing including message passing; remote procedure
call; remote method invocation; client server computing; shared file
systems; distributed objects; time and global states; coordination
and agreement; Distributed algorithms and parallel computing; and
replication and fault tolerance. Operating Systems CS340
This course aims
to provide a clear description of the theoretical concepts that
underlie operating systems. This course demonstrates the history of
the operating systems and provides knowledge of operating systems
concepts. The course introduces the principles of processes
including inter-process communication, process scheduling,
deadlocks, the principles of input / output that includes I/O
hardware and software, Memory and File systems management that
includes swapping, paging, virtual memory, and page replacement
algorithms. The students will experience lab work in groups and will
be introduced to the modern concepts of the operating systems using
Unix/Linux and Windows. Selected Topics (2) CS391 This course will be determined based on the Selected Topic. Upon completing this course the student will have learned, through appropriate classroom and laboratory experiences, Operational Research, and/or Advanced Modeling and Simulation and/or Advanced Parallel Computation
Algorithms Design and Analysis CS220
This course is a
study of algorithm design, algorithm complexity analysis, and
problem complexity analysis. Design techniques analyzed will include
divide-and-conquer, dynamic programming, greedy algorithms,
backtracking, and branch-and-bound. Advanced Algorithms CS321
This course
covers: the advanced level of algorithms design and analysis where
it Formal Language and automata CS322 This course covers: Regular sets: finite automata, regular expressions, equivalences among notations, and methods of proving a language not to be regular; Context free languages: grammars, pushdown automata, normal forms for grammars, and proving languages non-context free; Turing machines: equivalent forms, un-decidability; Closure properties, pumping lemmas, and decision algorithms; Introduction to computability Professional ethics CS180
The course main objectives Discrete Structure CS100
This course provides a study of
problem Solving and Algorithms, models for discrete structures in
computer science drawn from logic, set theory, relations, group
theory, ring, field theory, proof techniques, permutations,
combinations, summations, recursion and graph theory. Human Computer Interaction CS531 This course is an introduction to Human-Computer Interaction (HCI), a discipline concerned with the design, evaluation, and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. The course considers the inherently multi- and interdisciplinary nature of HCI and situates various HCI issues in the organizational and societal contexts. It introduces theories of human psychology, principles of computer systems and user interfaces designs, a methodology of developing effective HCI for information systems, and issues involved in using technologies for different purposes. It is intended to give students an overview of the entire HCI field by covering most aspects of it. Computer vision and image Processing CS361 This course is an introduction to Computer Vision and Image Processing, a discipline concerned with the role of computer vision, signals and their transformation, image processing, image Recognition, images Retrieval and with the study of major phenomena surrounding them. It introduces the principles of Computer Vision and Image Processing, and issues involved in using technologies for different purposes. It is intended to give students an overview of the entire Computer Vision and Image Processing field by covering most aspects of it. Multimedia system CS350
This course introduce principles and
current technologies of computer-based multimedia systems. They will
study current media types (images, video, audio, graphics etc) and
how they are used to create multimedia content. Issues in
effectively representing, processing, and retrieving multimedia data
will be addressed. The students will be familiarized with the range
of tools used in creating computer-based multimedia Computer Graphics CS360
This course aims
to introduce students to the concepts and algorithms of 2D/3D
computer graphics and the applications of computer graphics
technologies. Moreover, it provides the fundamentals of input and
display devices, output primitives and their attributes, two- and
three-dimensional transformations and clipping, windowing
techniques, curves and curved surfaces, three-dimensional viewing
and perspective, hidden surface removal, illumination and color
models, graphics API's, and 3-D modeling tools. Artificial intelligence CS370
This course
provides a study of introductory and advanced topics in artificial
intelligence, intelligent agents, and knowledge-based systems,
Solving problems by searching, Informed search algorithms, First
Order Logic, Second Order Logic, Lisp, Prolog, Game, and neural
network . Graduation project 1 CS487
The student is
required to complete a project that demonstrates his intellectual
and comprehensive computer skills and knowledge. This course allows
the student to deal with a real and practical computing project. The
course enable the student to define and state a problem, figure a
solution or solutions to the problem, and then define the system
requirements for the problem. This course also enables the student
to write a professional project proposal and manage the project in
terms of feasibility and scheduling. The course also let the student
develop skills like time management, communication, and oral
presentation Graduation project 2 CS488
The course
involves a scientific project in any area of computer Sciences. The
course must be taken by a small group of student (4-5). This course
is the continuation from the Graduation Project (I) Internship CS489
Internship course
is an important component of the CCIS - Computer sciences (CS)
program. This course is designed to provide an opportunity for CS
students to gain a supervised practical experience in computer
environment of an approved department, firm or agency in KSA. The
students will gain a valuable on-site working experience. It further
allows the students to develop skills like: communication, team work
and problem solving skills which will enable them in joining a
competitive job market in their fields. Cooperative Training Office
(CTO) should coordinate with students to apply internship. The
student and CTO should also submit a written plan for approval
before taking-up the internship. All internships are subject to
approval by the Internship Coordinator of the college. Note: maximum
number of students 35 per class.
|