Description of Courses Offered by the Department of Computer Science (CS)

Corequisite

Credit Hours

Course

CS110L

3

CS 110

The main objective of this course is to introduce students to the basic concepts of a selected programming language (such as C++) and the ability to write simple correct programs. Topics to be covered include: I/O, data types, function definition, visibility and storage classes, parameter passing, loops, arrays, pointers, strings, files, introducing classes and objects, constructors and destructors, function prototypes, private and public access, and class implementation. The practical part of this course is covered in the lab through exercises, practical assignments, and tutorials.

Learning Outcomes

After Completing this course the student should:

• Understand Programming Principles and program's development phases

• Understand simple computer algorithms and how to program them

• Understand problem solving methods

• Write a C++ program and use comments

• Apply Arithmetic and Logical operations in C++

• Apply if-statement in C++

• Apply C++ loops

• Apply C++ library functions

• Write a C++ global function

• Use C++ Arrays

• Use C++ Pointers

Co-requisite

Credit Hours

Course

CS110

1

CS110L

The objective of this course is to provide students with the opportunity to implement the programming concepts and techniques taught in CS110. Exercises and case studies will be prepared in conjunction with the material covered in CS110

Learning Outcomes

After Completing this course the student should:

• Implement and execute programs in C++

• Implement and execute simple and med-size programs

• Implement and use control-statements, library functions, global functions, arrays and pointers

Prerequisite

Credit Hours

Course

CS110 , CIS103

3

CS130

The objective of this course is to provide students with the basic knowledge and skills of operating, managing, and maintaining microcomputer systems. Hands-on experience with windows environment is a major concern in this course. It covers a range of topics including: operating system concepts, functions, and components, a general overview of OS services, process management, CPU scheduling, memory management, virtual memory and file system, installing, partitioning, configuring and upgrading Windows, common errors and problems and how to solve them, networking capabilities of Windows. Windows commands, system programs, and Windows facilities are covered in the practical component.

Learning Outcomes

After Completing this course the student should:

• Understands the data structures and algorithms of the fundamental parts in a modern operating system.

• Understand and practice the working mechanism of some operating system parts

• Understand the relationship between the hardware and the operating system

• Understand storage architecture and the different types of data storages

• Understand processing mechanism and memory usage

• Calculate physical and logical address and apply them

• Learn associated memory and use it

• Divide the program into subparts and compare between the user and the actual program perspectives

• Learn virtual memory

Prerequisite

Credit Hours

Course

MATH101

3

CS142

Discrete mathematics involves the study of objects and ideas that can be divided into separate or discontinuous parts. The main goal of this course is to provide the students the knowledge may need in studying the computer science. The topics covered include: problem solving, proof techniques, reasoning communication, filtering, the applications of graph theory in computer science, probabilities, recursion sets, logic, functions and relations, real number system and algebraic structures.

Learning Outcomes

Upon successful completion of the course, the student will be able to perform the following:

• Get sharp and inquisitive mathematical thinking in solving variety of problems.

• Use Discrete Mathematics in the applications of computer science problems.

• Apply discrete mathematics in computer science problems

• Understand the use of mathematical probabilities and number theory in problem solving.

• Use algebraic structures in analyzing algorithms and their data structures.

• Understand the mathematical properties of the graphs, trees and other discrete structures.

Prerequisite

Credit Hours

Course

CS110

3

CS210

The objective of this course is to provide students with knowledge and needed skills in order to design and develop object-oriented programs. Topics to be covered include: the object-oriented approach, classes, method, object inheritance, replacement and refinement, static and dynamic binding, polymorphism, visibility and dependency, files and storage issues and case studies. The course should use an object oriented language as in CS110. The course is supplemented by a lab component covered in CS210L concurrently.

Learning Outcomes

After Completing this course the student should:

• Understands the concept of OOP in solving complex programming tasks.

• Apply OOP methods and paradigm in the analysis, designing and implemented computer applications

• Manipulate OOP approach in designing data structures and algorithms

Co-requisite

Credit Hours

Course

CS210

3

CS210L

The objective of this course is to provide students with the opportunity to implement the programming concepts and techniques taught in CS210. Exercises and case studies will be prepared in conjunction with the material covered in CS210.

Learning Outcomes

After Completing this course the student should:

• Implementing programs using object oriented concepts that includes a set of classes designed around the course concepts.

• Use OOP concepts such as abstraction, polymorphism, inheritance, exception handling and templates.

• Use input and output methods for data and from files

• Use programming comments and implement data structure programs.

Prerequisite

Credit Hours

Course

CS142 , CS130

3

CS220

The objective of this course is to introduce students to the basic concepts in digital logic and how the electronic circuits work inside the computer. Topics to be covered include: Binary Systems, Conversion, Boolean expression and its simplification methods, Combinational logic circuits, MSI and LSI, flip-flops and sequential logic circuits, registers, counters, memory units. The course has a lab CS225 taken concurrently with it.

Learning Outcomes

After Completing this course the student should:

• Understand numerical systems

• Apply Boolean operators and reduce Boolean expression

• Use Boolean algebra to simplify and optimize logical functions

• Analyze and design logical circuits in digital computer systems

• Analyze and design combinational circuits un digital computer systems

• Design and using flip-flops, registers and counters.

Prerequisite

Credit Hours

Course

 

CS220

3

CS225

 

This course is intended to cover the practical aspects related to computer organization, architecture, and logic. Students are trained to write simple assembly programs to explore and analyze microcomputer organization and architecture.

 

Learning Outcomes

 

After Completing this course the student should:

• Understand the basic concepts of computer architecture and machine language

• Solve problems by writing assembly language using MASM and the main concepts of the course

 

Prerequisite

Credit Hours

Course

CS210

3

CS250

The objective of this course is to introduce students to various types of data structures, their logical and physical representations, and their related operations. Topics to be covered include: data structure operations, dense lists and matrix representations, linked lists and their different variations, string storage representation and manipulation, queues and stacks and their applications, tree structures and their different variations, graphs and networks. The course is supplemented by a lab component covered in CS250L concurrently.

Learning Outcomes

After Completing this course the student should:

• Use Big-O notation to calculate the speed of an algorithm

• Construct, change and update linear and nonlinear data structures including Stack, Queue Linked Lists and Graphs

• Exploit linear and nonlinear data structures

• Select the left data structure for solving traditional computer problems

Prerequisite

Credit Hours

Course

 

CS250

3

CS250L

 

This course focuses on the practical part of using object oriented paradigm to implement data structures with C++. This facilitates students understanding and practice the logical and actual implementation of data structures and algorithms and their operations such as arrays, stacks, queues, linked list, trees, graphs, … etc..

 

Learning Outcomes

 

After Completing this course the student should:

• Select the appropriate data structure for different problems

• Use linear data structures including Stacks, Queues, arrays, and linked lists

• Use and implement search based data structures and algorithms including binary search trees

• Use and implement priority queues

• Apply and implement graphs and search them using BFS and DFS and Dijistra's algorithm

 

Prerequisite

Credit Hours

Course

CS210

3

CS310

This course is intended to teach students a popular high level programming language based on the demands of the job market. Topics to be covered include: syntax rules and structures, special programming features of the language in comparison with other languages, how data is processed using this language, compilation and implementation issues, files and storage mechanisms, other facilities provided by the language. The practical part of the course will include case studies, exercises and a project.

Learning Outcomes

After Completing this course the student should:

• Writing and running simple programs in the selected language

• Design and writing applications with graphical user interface

• Design programs with event handling

• Use and apply arrays

• Apply object oriented concepts such as classes, composition and inheritance.

• Use access specifiers in classes (access permission: public, private, protected, package)

• Defining class methods and use it (methods: get, set, equal, toString, clone(

• Use arrays of objects

• Use and apply database connections using SQL

Prerequisite

Credit Hours

Course

CS210

3

CS315

This course is intended to provide students with the necessary knowledge and skills in design 2D systems. The course covers subjects such as, implement games of different characteristics or contains object collider and animation. Student will be exposed to advanced concepts in C++ such as Lists and exception handling. The course will cover materials such as: different storage properties and load and save game sessions to resume later on in addition to multimedia. The practical part will have each student to design his own game according to the learned concepts.

Learning Outcomes

After Completing this course the student should:

• Determine and compare different animation techniques

• Configure simple interactive game

• Analysis the requirements of an interactive game environment

• Implementing interactive 2d and 3d models

• Implement sound in the game

• Create a simple 2D world or 3D world that includes imported models

• Assess 2D and 3D worlds

Prerequisite

Credit Hours

Course

CS130

3

CS331

This course builds on the knowledge and skills gained from the course CS130. Its objective is to provide students with more advanced concepts, techniques, and in-depth knowledge in issues that have not been covered in the introductory course. Topics to be covered include: operating system types, operating system structures, systems calls, inter-process communication, communication in client/server systems, multithreading, process synchronization, deadlocks, advanced topics in storage management and virtual memory, file system structure and implementation, mass storage structure management, RAID technology. The practical part of the course involves case studies and a practical component in some operating systems not covered in CS130 such as Linux or UNIX.

Learning Outcomes

After Completing this course the student should:

• Describe and compare different operating system architectures

• Understand and analysis computer processing, resource allocation and process scheduling, etc (virtual memory, process scheduling, input and output units and files)

• Detailed understanding of process scheduling and threading

• Understand different process allocation methods and synchronization

• Understand privacy and security issues

Prerequisite

Credit Hours

Course

 

CS142

3

CS342

 

The objective of this course is to introduce students to formal languages and their representation, automata, and theory of computation. Topics to be covered include: formal languages and their representation, different grammars, finite automata: deterministic and non-deterministic, regular languages, regular expressions, context-free languages, push-down automata, Turing machines and computability, universal Turing machine, computability and complexity.

 

Learning Outcomes

 

Upon successful completion of the course, the student will be able to perform the following:

• 1. Understand the proof techniques and distinguish between different types of automata (DFA, NFA, etc).

• 2. Develop new programming languages, under certain conditions and restrictions, based on computational concepts.

• Understand the concepts of languages, regular languages, context-free languages and Push-Down automata.

 

Prerequisite

Credit Hours

Course

CS142 , CS250

3

CS351

The objective of this course is to provide students with the knowledge and skills in complexity analysis and design of computer algorithms. Topics to be covered include: sorting algorithms, search algorithms, divide and conquer, greedy method, trees, graphs, dynamic programming, backtracking, branch and bound, Lower bound theory, NP-complete problems. The practical part of the course will include writing programs for solving problems using techniques taught in this course

Learning Outcomes

After Completing this course the student should:

• Understand the general framework for analyzing an algorithm

• Apply pseudocode to write computer problems

• Compare between algorithms by their growth

• Describe different types of algorithms such as divide-and-conquer, greedy and dynamic programming

• Identify different implementation techniques and solutions

 

Prerequisite

Credit Hours

Course

CS351

3

CS376

The objective of this course is to provide students with the basic concepts, knowledge and skills required in utilizing Artificial Intelligence techniques in solving practical problems. Topics to be covered include: knowledge representation methods like propositional logic and predicate calculus, blind search strategies (breadth-first and depth-first), heuristic search strategies (hill-climbing, best-first and A*), backward and forward reasoning, applications: expert systems, natural language processing, pattern recognition, image processing, and planning. The practical part of the course involves programming exercises and case studies related to the topics covered.

Learning Outcomes

After Completing this course the student should:

• Using AI methods for solving practical applications

• Using and applying mathematical and logical skills for knowledge representation and searching problems

• Use functional languages such as Prolog

• Use and apply inference rules and predicate logic

• Understand informed and uninformed searching algorithms

• Use and apply AI method for natural language processing and machine learning

Prerequisite

Credit Hours

Course

CS250, MATH241

3

CS380

The objective of this course is to provide students with the basic concepts, technical and mathematical knowledge and skills required to design and implement computer graphics. Topics to be covered include: graphics hardware, software utilities, two and three dimensional transmutation and viewing, graphics arts and animations. Students are expected to be design programs using programming graphics tools and libraries such as Open GL to perform practical assignments.

Learning Outcomes

After Completing this course the student should:

• Understand computer graphics in IT

• Understand basic concepts and mathematical skills necessary to design computer graphics

• Use computer graphics packages and libraries such as Open GL to draw basic shapes

• Apply the theoretical part practically

• Apply new computer graphic techniques

Prerequisite

Credit Hours

Course

CS220

3

CS432

The objective of this course is to introduce students to the basic concepts and various techniques of computer architecture. Topics to be covered include: ALU design, IEEE 754 format for floating-point numbers, coprocessors, design of hardwired CU and micro-programmed CU, the characteristics of instruction sets, pipelines techniques, the architecture of RISC and CISC machine, (cache) high speed memories, I/O channels and I/O processors, parallel processing.

Learning Outcomes

After Completing this course the student should:

• Understand the interaction mechanisms between hardware and software in different layers which provides basic computational concepts

• Apply different measurement techniques to compare between different computer systems

• Identify different tools and techniques in designing computer systems

• Understand processing techniques and their swaps

• Design a computer system

Prerequisite

Credit Hours

Course

CS130 , CS210

3

CS411

The objective of this course is to provide the basic concepts of mobile computation and applications from three different perspectives: mobile phone technologies, app implementations and user interaction. The course includes fundamental techniques, networking and systems requirements to design and execute mobile computing systems and applications and some scenarios of low-processing devices and limited resources, error tolerance, continuity and graphical user interface.

Learning Outcomes

After Completing this course the student should:

• Understand fundamental concepts in smart phones application programing

• Understand the basic concepts and characteristics of smart phones

• Implement smart phone applications

• Understand the different methods to acquire additional resources such as databases, maps, data security in different smart phones (maps, SMS, emails etc,,,)

• Understand professional and ethical issues that are related to data privacy and security and user usages.

Prerequisite

Credit Hours

Course

CS376

3

CS470

The objective of this course is to provide students with the knowledge and skills required for developing expert systems and applying them in real-life application problems. Topics to be covered include: knowledge acquisition, knowledge representation techniques, inference methods, reasoning under uncertainty, design of expert systems, and introduction to an expert system programming tool, expert systems case studies. In the practical part of the course students are expected to design a small expert system using an expert system programming tool.

Learning Outcomes

After Completing this course the student should:

• Apply different techniques to transform human knowledge into an expert system

• Apply and implement knowledge representation techniques

• Design and implement a knowledge base

• Implement an expert system that incorporates a set of control rules

• Assess creation techniques of expert systems

• Apply CLIPS in programming an expert system

 

Prerequisite

Credit Hours

Course

Passed in 75 CH at least and deprtmental approval

3

CS492

In this course a topic in computer science is selected not covered in the list of courses described above to be taught to students, with the approval of the department board.

Learning Outcomes

After Completing this course the student should undertand an important computer science topic specified by the department and not covered by other courses in the study plan.

 

Prerequisite

Credit Hours

Course

 

3

CS498

This course aims to provide an opportunity for students to practice the knowledge they have gained from the university, which include analysis, design, programming databases and building data and algorithms, operating systems, and web programming, networks and communications, etc., It's an opportunity for students to gain knowledge in information and communications technology industry. Students will have the opportunity to develop their professional skills through interaction and communication with their colleagues.

Learning Outcomes

After Completing this course the student should:

• understand, analyze and design databases programs according to business requirements

• Apply algorithms to solve various problems with high efficiency

• develop team-work skills

• develop interaction skills and communicate with co-workers

 

Prerequisite

Credit Hours

Course

 

MIS106

3

CS499

 

The objective of this course is to give students an opportunity to utilize the knowledge and skills gained in other courses in a real-life application problem. The student is supposed to analyze the problem, design a software solution to it, coding the solution in a programming language, and writing the documentation in the form of a project report using a standard way.

 

Learning Outcomes

 

After Completing this course the student should:

• Identify a related problem from computer science.

• Analysis the problem and have an initial solutions.

• Work independently and work in a team with colleagues and supervisors.

• Effective planning of the various activities of the project life cycle.

• Create and illustrate the functional requirements and preliminary design of the system

 

015435