Computer Science

134 Credit Hours 60% Minimum Grade

Department Welcome

Dr. Ahmad Ababneh

Welcome to the Computer Science Department!
Dr. Ahmad Ababneh

The Department of Computer Science at the American University of Madaba, founded in 2012, is a key part of the Faculty of Information Technology. With a remarkable 100% employment rate, our graduates consistently secure positions in their fields, demonstrating the strength and relevance of our programs.

Our department offers a rich learning environment, combining advanced hardware and software technologies to ensure our students gain hands-on experience with cutting-edge tools. Our faculty members, hailing from the United States, Canada, the United Kingdom, Italy, and Germany, bring a wealth of international expertise and are actively engaged in research across various fields of computer science. This commitment to research not only advances knowledge but also keeps our curriculum aligned with the latest industry and technological developments.

We invite you to explore our programs and join a community dedicated to fostering innovation, critical thinking, and technical excellence, preparing graduates to lead and shape the future of technology on a global scale.

Study Plan

Details about the study plan and curriculum.

Course Curriculum: 134 Credit Hours

Faculty Information Technology Faculty
Department Computer Science
Credit Hours 134
Version 4

A. Remedial Requirements (0 Credit Hours)
Description
Students must sit for placement tests in English, Arabic, and Computer. Students who fail any of these tests are required to take the corresponding remedial course 900099, 900097, or 900096, respectively.

B. University Compulsory Course Requirements: 16 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900103 Swimming 1 -- F
0900111 Military Science 3 -- O
0900119 Life Skills 1 -- F
0900120 Arabic Communication Skills (1) 3 0900097* B
0900122 Entrepreneurship and Innovation 1 -- F
0900123 Leadership and Social Responsibility 1 -- F
0900130 English Communication Skills (1) 3 0900099* B
0900131 English Communication Skills (2) 3 0900130 B

C. University Elective Course Requirements: 9 Credit Hours
1. Humanities: 3 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900102 Sports 3 -- O
0900113 Interpersonal and Intercultural Communication 3 -- O
0900117 Civic Awareness 3 -- O
0900118 Cultural Development 3 -- O
0900124 Human Rights 3 -- O
0900140 Appreciation of Art 3 -- O
0900141 Appreciation of Music 3 -- O

2. Science, Technology, Agriculture, and Health: 3 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900106 General Statistics 3 -- O
0900114 Civilization and Thought 3 -- O
0900115 Social Ethics 3 -- O
0900133 Research Methodology 3 -- O
0900150 Introduction to Economics 3 -- O

3. Social and Economic Sciences: 3 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900116 Bio-Ethics 3 -- O
0900172 Development and Environment 3 -- O
0900171 Science and Society 3 -- O
0900180 Computer Skills 3 090096* O
0900190 Digital Culture 3 -- O
0900185 Astronomy 3 -- O

Compulsory Requirements: 21 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite Learning Models (F, B, O)
0401111 Discrete Structures 3 Lecture: 3
Lab: 0
- F
0401121 Programming Fundamentals 3 Lecture: 3
Lab: 0
*0401120 F
0401151 Introduction to Information Systems 3 Lecture: 3
Lab: 0
- O
0903101 Calculus (1) 3 Lecture: 3
Lab: 0
- F
0903102 Calculus (2) 3 Lecture: 3
Lab: 0
0903101 F
0904101 General Physics (1) 3 Lecture: 3
Lab: 0
- F
0904102 General Physics (2) 3 Lecture: 3
Lab: 0
0904102 F

A. Compulsory Requirements: 67 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite / Co-requisite Learning Models (F, B, O)
0401120 Programming Fundamentals Lab 1 Lecture: 0
Lab: 3
*0401121 F
0401122 Object Oriented Programming Language 3 Lecture: 3
Lab: 0
0401121 + *0401123 F
0401123 Object Oriented Programming Language Lab 1 Lecture: 0
Lab: 3
*0401122 F
0401211 Theory of Computation 3 Lecture: 3
Lab: 0
0401111 F
0401212 Data Structures 3 Lecture: 3
Lab: 0
0401122 F
0401223 Advanced Object Oriented Programming and GUI 3 Lecture: 3
Lab: 0
0401122 F
0401224 OO and GUI Laboratory 1 Lecture: 0
Lab: 3
*0401223 F
0401231 Digital Logic Design 3 Lecture: 3
Lab: 0
0401151 B
0401241 Networks and Data Communications 3 Lecture: 3
Lab: 0
0401151 F
0401251 Database Fundamentals 3 Lecture: 2
Lab: 2
0401122 B
0401313 Principles of Computer Algorithms 3 Lecture: 3
Lab: 0
0401212 F
0401314 Fundamentals of Artificial Intelligence 3 Lecture: 3
Lab: 0
0401313 F
0401321 Web-Based Programming and Applications 3 Lecture: 3
Lab: 0
0401122 + *0401322 F
0401322 Web-Based Programming and Applications Lab 1 Lecture: 0
Lab: 3
*0401321 F
0401331 Computer Architecture 3 Lecture: 3
Lab: 0
0401231 F
0401332 Operating Systems Concepts 3 Lecture: 3
Lab: 0
0401331 F
0401342 Computer Security 3 Lecture: 3
Lab: 0
0401241 B
0401423 Computer Networking Programming 3 Lecture: 2
Lab: 2
0401241 B
0401443 Wireless Networks 3 Lecture: 3
Lab: 0
0401241 B
0401355 System Analysis and Design 3 Lecture: 3
Lab: 0
0401251 B
0401431 Computer Design and Organization 3 Lecture: 3
Lab: 0
0401331 F
0401451 Software Engineering Concepts 3 Lecture: 3
Lab: 0
0401355 O
0401453 Database Management Systems 3 Lecture: 2
Lab: 2
0401251 F
0401491 Graduation Project 1 Lecture: -
Lab: -
Department Approval + Completion of 99 cr. hrs. B
0401499 Practical Training 3 Lecture: -
Lab: -
Department Approval + Completion of 90 cr. hrs. B

B. Electives Requirements: 9 Credit Hours
Course No Course Title Credit Hours Lecture Hours Lab Hours Prerequisite Learning Models (F, B, O)
0401315 Principles of Computer Graphics 3 3 0 0401111 + 0401122 B
0401324 Programming Languages Concepts 3 3 0 0401223 F
0401333 Introduction to Distributed Systems 3 3 0 0401241 B
0401425 Advanced Programming Languages 3 3 0 0401423 F
0401426 Advanced Web Programming 3 3 0 0401321 F
0401454 Special Topics in Computer Science 3 3 0 Department Approval B

C. Ancillary Requirements: 6 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite Learning Models (F, B, O)
0903281 Probability and Statistics 3 Lecture: 3
Lab: 0
0903101 F
0903381 Numerical Analysis 3 Lecture: 3
Lab: 0
0401121 + 0903101 F

Students may choose any course(s) offered by the University in accordance with University regulations.

Additional Information

(*) denotes that the prerequisite must be taken concurrently.

Learning Models
Learning Models No. of Credit Hours %
Face to Face (F) 77 57.4%
Blended (B) 39 29.2%
Online (O) 18 13.4%

Elective Information

  • Free Electives: 3 Face to Face and 3 Blended
  • Electives Requirements: 3 Blended and 6 Face to Face
Faculty Information Technology Faculty
Department Computer Science
Credit Hours 134
Version 5

A. Remedial Requirements (0 Credit Hours)
Description
Students must sit for placement tests in English, Arabic, and Computer. Students who fail any of these tests are required to take the corresponding remedial course 900099, 900097, or 900096, respectively.

B. University Compulsory Course Requirements: 16 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900103 Swimming 1 -- F
0900111 Military Science 3 -- O
0900119 Life Skills 1 -- F
0900120 Arabic Communication Skills (1) 3 0900097* B
0900122 Entrepreneurship and Innovation 1 -- F
0900123 Leadership and Social Responsibility 1 -- F
0900130 English Communication Skills (1) 3 0900099* B
0900131 English Communication Skills (2) 3 0900130 B

C. University Elective Course Requirements: 9 Credit Hours
1. Humanities: 3 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900102 Sports 3 -- O
0900113 Interpersonal and Intercultural Communication 3 -- O
0900117 Civic Awareness 3 -- O
0900118 Cultural Development 3 -- O
0900124 Human Rights 3 -- O
0900140 Appreciation of Art 3 -- O
0900141 Appreciation of Music 3 -- O

2. Science, Technology, Agriculture, and Health: 3 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900106 General Statistics 3 -- O
0900114 Civilization and Thought 3 -- O
0900115 Social Ethics 3 -- O
0900133 Research Methodology 3 -- O
0900150 Introduction to Economics 3 -- O

3. Social and Economic Sciences: 3 Credit Hours
Course No Course Name Credit Hours Prerequisite Learning Models (F, B, O)
0900116 Bio-Ethics 3 -- O
0900172 Development and Environment 3 -- O
0900171 Science and Society 3 -- O
0900180 Computer Skills 3 090096* O
0900190 Digital Culture 3 -- O
0900185 Astronomy 3 -- O

Compulsory Requirements: 21 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite Learning Models (F, B, O)
0401111 Discrete Structures 3 Lecture: 3
Lab: 0
- F
0401121 Programming Fundamentals 3 Lecture: 3
Lab: 0
*0401120 F
0401151 Introduction to Information Systems 3 Lecture: 3
Lab: 0
- O
0900213 Technical Writing and Documentation 3 Lecture: 3
Lab: 0
- F
0903101 Calculus (1) 3 Lecture: 3
Lab: 0
- F
0903102 Calculus (2) 3 Lecture: 3
Lab: 0
0903101 F
0904101 General Physics (1) 3 Lecture: 3
Lab: 0
- F

A. Compulsory Requirements: 67 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite / Co-requisite Learning Models (F, B, O)
0401120 Programming Fundamentals Lab 1 Lecture: 0
Lab: 3
*0401121 F
0401122 Object Oriented Programming Language 3 Lecture: 3
Lab: 0
0401121 + *0401123 F
0401123 Object Oriented Programming Language Lab 1 Lecture: 0
Lab: 3
*0401122 F
0401211 Theory of Computation 3 Lecture: 3
Lab: 0
0401111 F
0401212 Data Structures 3 Lecture: 3
Lab: 0
0401122 F
0401223 Advanced Object Oriented Programming and GUI 3 Lecture: 3
Lab: 0
0401122 F
0401224 OO and GUI Laboratory 1 Lecture: 0
Lab: 3
*0401223 F
0401231 Digital Logic Design 3 Lecture: 3
Lab: 0
0401151 B
0401241 Networks and Data Communications 3 Lecture: 3
Lab: 0
0401151 F
0401251 Database Fundamentals 3 Lecture: 2
Lab: 2
0401122 B
0401313 Principles of Computer Algorithms 3 Lecture: 3
Lab: 0
0401212 F
0401314 Fundamentals of Artificial Intelligence 3 Lecture: 3
Lab: 0
0401313 F
0401321 Web-Based Programming and Applications 3 Lecture: 3
Lab: 0
0401122 + *0401322 F
0401322 Web-Based Programming and Applications Lab 1 Lecture: 0
Lab: 3
*0401321 F
0401331 Computer Architecture 3 Lecture: 3
Lab: 0
0401231 F
0401332 Operating Systems Concepts 3 Lecture: 3
Lab: 0
0401331 F
0401342 Computer Security 3 Lecture: 3
Lab: 0
0401241 B
0401423 Computer Networking Programming 3 Lecture: 2
Lab: 2
0401241 B
0401443 Wireless Networks 3 Lecture: 3
Lab: 0
0401241 B
0401355 System Analysis and Design 3 Lecture: 3
Lab: 0
0401251 B
0401431 Computer Design and Organization 3 Lecture: 3
Lab: 0
0401331 F
0401451 Software Engineering Concepts 3 Lecture: 3
Lab: 0
0401355 O
0401453 Database Management Systems 3 Lecture: 2
Lab: 2
0401251 F
0401493 Graduation Project-1 1 Lecture: -
Lab: -
Department Approval + Completion of 99 cr. hrs. B
0401494 Graduation Project-2 2 Lecture: -
Lab: -
0401493 B
0401499 Practical Training 3 Lecture: -
Lab: -
Department Approval + Completion of 90 cr. hrs. B

B. Electives Requirements: 9 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite Learning Models (F, B, O)
0401221 Data Science Programming 3 Lecture: 3
Lab: 0
- F
0401315 Principles of Computer Graphics 3 Lecture: 3
Lab: 0
0401111 + 0401122 B
0401324 Programming Languages Concepts 3 Lecture: 3
Lab: 0
0401223 F
0401333 Introduction to Distributed Systems 3 Lecture: 3
Lab: 0
0401241 B
0401335 Machine Learning 3 Lecture: 3
Lab: 0
0401221 F
0401336 Neural Networks and Deep Learning 3 Lecture: 3
Lab: 0
0401335 F
0401361 Cloud Computing 3 Lecture: 3
Lab: 0
0401332 F
0401454 Special Topics in Computer Science-1 3 Lecture: 3
Lab: 0
Department Approval B
0401455 Special Topics in Computer Science-2 3 Lecture: 3
Lab: 0
Department Approval B
0401456 Special Topics in Computer Science-3 3 Lecture: 3
Lab: 0
Department Approval B

C. Ancillary Requirements: 6 Credit Hours
Course No Course Title Credit Hours Contact Hours Prerequisite Learning Models (F, B, O)
0903281 Probability and Statistics 3 Lecture: 3
Lab: 0
0903101 F
0903381 Numerical Analysis 3 Lecture: 3
Lab: 0
0401121 + 0903101 F

Students may choose any course(s) offered by the University in accordance with University regulations.

Additional Information

(*) denotes that the prerequisite must be taken concurrently.

Learning Models
Learning Models No. of Credit Hours %
Face to Face (F) 77 57.4%
Blended (B) 39 29.2%
Online (O) 18 13.4%

Elective Information

  • Free Electives: 3 Face to Face and 3 Blended
  • Electives Requirements: 3 Blended and 6 Face to Face

Guidance Plan

Guidelines and plan for student guidance.

Course Curriculum: 134 Credit Hours (2022-2023)

Fall Semester (17 credit hours)
Number Course Name Cr. Prerequisite
0401121 Programming Fundamentals 3 0401120*
0401123 Programming Fundamentals Lab 1 0401121*
0401111 Discrete Structures 3 --
0203101 Calculus (1) 3 --
0204101 General Physics (1) 3 --
0401151 Introduction to Information Systems 3 --
0900110 Cultural Development (1) 1 --

Spring Semester (17 credit hours)
Number Course Name Cr. Prerequisite
0401122 Object-Oriented Programming 3 0401121
0401123 Object-Oriented Programming Lab 1 0401122*
0401211 Theory of Computation 3 0401111
0203102 Calculus (2) 3 0203101
0900213 Technical Writing and Documentation 3 --
0900130 English Communication Skills (1) 3 0900099**
0900101 Sports (1) 1 --

Fall Semester (17 credit hours)
Number Course Name Cr. Prerequisite
0401241 Networks and Data Communications 3 0401151
0401212 Data Structures 3 0401122
0401223 Advanced Object-Oriented Programming Language & GUIs 3 0401122
0900130 Numerical Analysis 3 0401121+0203101
0900111 Military Science 3 --
0900100 Swimming 1 --

Spring Semester (18 credit hours)
Number Course Name Cr. Prerequisite
0401231 Digital Logic Design 3 0401151
0401251 Database Fundamentals 3 0401122
0401224 OOP & GUI Lab 1 0401223*
0401313 Principles of Computer Algorithms 3 0401212
0900131 English Communication Skills (2) 3 0900130
University Elective -- 3 --
0401141 Ethics & Law 3 --

Fall Semester (16 credit hours)
Number Course Name Cr. Prerequisite
0402311 Software Engineering 3 0401224
0402231 Human-Computer Interaction 3 0401151
0402341 Network Security 3 0401241
0402242 Database Management System Lab 1 0401251
0402431 System Analysis & Design 3 0401121
0900132 English Communication Skills (3) 3 0900131

Spring Semester (15 credit hours)
Number Course Name Cr. Prerequisite
0402511 Web Programming 3 0401223
0402411 Software Testing & Quality Assurance 3 0402311
0402252 Database Application Lab 1 0401251
0402312 Software Engineering Lab 1 0402311
University Elective -- 3 --

Fall Semester (15 credit hours)
Number Course Name Cr. Prerequisite
0404411 Advanced Web Development 3 0402511
0404422 Mobile App Development 3 0401223
0404443 Cloud Computing 3 0401241
0404551 Project Management 3 0402311
0404531 Senior Project 3 0402311

Spring Semester (14 credit hours)
Number Course Name Cr. Prerequisite
0404532 Advanced Topics in Computer Science 3 0404411
0404561 Internship 3 --
0404572 Ethics in Computing 3 --
0404581 Computer Science Seminar 1 --
University Elective -- 4 --
  • * Co-requisite (a course that must be taken concurrently).
  • ** Passing a placemat test.

List of Competencies

Computer Science - List of Competencies

A. Knowledge and Understanding

Overview the theoretical and technical concepts related to computer science.
Analyze a complex computing problem.
Apply principles of computing and other relevant disciplines to identify software solutions.
Understand computing contemporary issues and devise viable solutions for them.
Understand and engage in continuing professional development.

B. Practical Skills

Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
Use a variety of computer programming languages to implement solutions for different computing problems.
Apply programming language concepts, such as data models, control structures, language translation, and testing and debugging, in the development of software systems.

C. Communication Skills

Communicate effectively in a variety of professional contexts.
Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.

D. Thinking Skills

Think out-of-the-box and be ready to participate in IT-related business ventures.
Understand and engage in continuing professional development.

Program Learning Outcomes

Computer Science Program Learning Outcomes

Student learning outcomes describe what students are expected to know and be able to do by the time of graduation. By the time of graduation, the Computer Science Department's Bachelor of Science program must enable students to attain an ability to:

Apply computer science theory and software development fundamentals to produce computing-based solutions
Determine an algorithm’s efficiency, computability and resource usage.
Utilize the latest tools and technologies in computing to develop creative and innovative solutions.
Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
Conduct scientific research and practical projects that produce significant software solutions.

Course Description

Detailed descriptions of the courses offered.

0401111 3 CH. Prerequisite Co-requisite
0 3 - -
TThe course covers fundamental ideas in discrete mathematics and their application in computer science. The course covers miscellaneous of topics: Permutations and combinations, regular expressions and finite state machines, grammars, languages, and parsing, propositional logic, predicate calculus, sets and relations, functions, and graphs. The course is a mix of basic theoretical concepts in computer science and a hands-on application of those ideas.

0401120 1 CH. Prerequisite Co-requisite
0 3 - 401121
This course supports the Programming Fundamentals course. Topics covered include simple data types, expressions and statements, program flow control structures.

0401121 3 CH. Prerequisite Co-requisite
3 0 - -
This course introduces beginning computer programming skills with a guide to developing applications. The students can develop useful programs while learning the basics knowledge of programming skills. This course also provides the principle of elements object-oriented technique. By learning the course topics, the students will be motivated to find real life problems in computer science and solve it using programming.

0401122 3 CH. Prerequisite Co-requisite
3 0 401121 401123
This course focuses on Object-Oriented programming and design concepts including abstraction, encapsulation, modularity, reuse and information hiding. Topics covered include: classes, objects, and relationships such as inheritance, association, aggregation, and composition. It also covers overloading, overriding, polymorphism, interfaces, and abstract methods. Additionally, it includes wrapper classes, exception handling, generics, collections, and GUI applications.

0401123 1 CH. Prerequisite Co-requisite
0 3 - 401122
All theoretical material covered in Object-Oriented Programming class will be accompanied with practical assignments and projects in this lab.

0401151 3 CH. Prerequisite Co-requisite
3 0 - -
This course introduces the students to the main concepts and principles behind computing. The covered topics include: number systems, computer hardware and software, principles of software engineering, databases, security breaches, malware, algorithmic thinking, and computer ethics.

0401211 3 CH. Prerequisite Co-requisite
3 0 401111 -
This course emphasizes theoretical models of computation, covering finite automata, pushdown automata, Turing machines, and language grammars. Some complexity theory and computability concepts are also introduced.

0401212 3 CH. Prerequisite Co-requisite
3 0 401122 -
Provides foundations in data structures like linked lists, stacks, trees, heaps, and hash tables within an object-oriented framework. Java is used for implementation.

0401222 3 CH. Prerequisite Co-requisite
3 0 - -
Covers problem solving and program development using C++, including data types, control structures, functions, and object-oriented concepts like classes and inheritance.

0401223 3 CH. Prerequisite Co-requisite
3 0 401122 -
Introduces .NET Programming with C#, focusing on OOP, GUI components, multithreading, and database processing. It covers essential programming concepts for Internet-based applications.

0401224 1 CH. Prerequisite Co-requisite
0 3 - 401223
Complements Advanced OOP and GUI course with practical projects and assignments on OOP concepts and GUI development.

0401231 3 CH. Prerequisite Co-requisite
3 0 - 401151
The aim of the course is to prepare the students for studying computer hardware (architecture and organization). The main topics covered in this course include: number systems and conversions between them, data representations, Boolean algebra and its application in circuit design, the logical gates and their relations. In addition, the students study topics that include combinational and sequential circuit analysis and design, digital circuit design optimization methods using logic gates, multiplexers, decoders, registers, counters, and programmable logic arrays.

0401241 3 CH. Prerequisite Co-requisite
3 0 401151 -
This course covers: definition of computer networks and their objectives and applications. Computer network architecture: layering, protocols and standard models, the ISO OSI and TCP/IP reference models. It covers the application layer and its protocols (HTTP, FTP etc). The transport protocols namely UDP and TCP. The network layer and IP, introduction to routing algorithms. Data link layer: data link layer functions and standards, error check and correction.

0401242 3 CH. Prerequisite Co-requisite
2 2 401212 -
This course introduces students to database concepts related to database design, implementation and administration. Topics covered include: Relational Database fundamentals, relational algebra and calculus in addition to data modeling with E-R, functional dependencies and normalization. The course also provides students with practical skills in SQL including DDL, DML, DCL, in addition to advanced sub-queries, views and other concepts related to group, date and conversion functions and catalogues. The course also introduces students to other database related concepts such as Object-Oriented databases and other emerging technologies e.g. XML, data warehousing, OLAP and data mining.

0401313 3 CH. Prerequisite Co-requisite
3 0 401212 -
This course examines techniques for the design and analysis of efficient algorithms useful in practice. Topics covered include: sorting (bubble, insertion, heap, merging, quick, etc.), search trees, hashing, and dynamic programming, graph algorithms (shortest paths, network flow, coloring, etc.) and NP-complete problems. Throughout the course, there is a focus on performance, computational complexity, and actual implementation of the studied algorithms using C#, C++, and/or Java.

0401314 3 CH. Prerequisite Co-requisite
3 0 401313 -
This course introduces the fundamentals concepts of Artificial Intelligence (AI), its evolution, and real-life applications. It covers the main aspects of AI, i.e., intelligent agents, problem formulation, and problem solving using uninformed and heuristic search algorithms. Moreover, students will be familiar with constraint satisfaction problems, adversarial search and games, expert systems, and genetic algorithms. The main concepts of machine learning, its tasks and respective algorithms are also introduced. Real-world applications will be investigated through practical implementations using Python programming language.

0401315 3 CH. Prerequisite Co-requisite
3 0 401111 + 401122 -
This course offers an in-depth exploration of fundamental concepts in 2D and 3D computer graphics. It introduces 2D raster graphics techniques, including scan conversion, simple image processing, and interaction techniques. The course also discusses graphics optimization via leading clipping algorithms such as Laing and Cohen. Finally, the course introduces students to programming in OpenGL as a fundamental tool for producing high-quality graphics.

0401318 3 CH. Prerequisite Co-requisite
3 0 401314 -
This course gives an introduction to AI search methods, neural networks (NNs), single-layer perceptions, ADALINE, perception learning, and multi-layer feed-forward neural networks. It also discusses supervised learning, back propagation, unsupervised and competitive learning. The course covers Kohonen's self-organizing maps (SOM) and radial basis function network. An introduction to genetic algorithms (GAs) is presented including representation GA terminology and operators (crossover, mutation, inversion), as well as GA theory, schema properties, selection, replacement, reproduction strategies, and applications.

0401321 3 CH. Prerequisite Co-requisite
3 0 401223 401322
This course equips students with hands-on experience in a range of tools used in creating web pages and applications including HTML, CSS, JavaScript, XML, server-side programming (PHP), AJAX, and other selected cutting-edge technologies. The course presents a variety of web applications including web servers and content management systems such as Joomla! and WordPress.

0401322 1 CH. Prerequisite Co-requisite
0 3 - 401321
This laboratory supports the Web-Based Programming and Applications course; it provides students with hands-on experience in a variety of practical web applications. Students will work on creating front-end web design (using HTML, CSS, XML, JavaScript…) and back-end programs (using PHP, AJAX…).

0401324 3 CH. Prerequisite Co-requisite
3 0 401223 -
This course examines programming languages taxonomy, design, evaluation, and implementation, providing a comparative analysis of programming languages with emphasis on their design considerations, advantages, shortcomings, and appropriateness for certain applications. It discusses formal definitions of programming languages such as syntax, semantics, lexical analysis, and parsing, and compares variable declaration, typing, binding, and scoping across languages.

0401331 3 CH. Prerequisite Co-requisite
3 0 401231 -
The course introduces the students to computer architecture and organization. It provides students with a deep knowledge on the basic components and their interaction to deliver the functionality of the computer. The topics covered include: the hardware components, input/output modules, caches, pipelining, stalls, memory, processors, Amdahl’s law, addressing, and so on. Studying the computer performance is the heart of the course and will be studied thoroughly.

0401332 3 CH. Prerequisite Co-requisite
3 0 401331 -
The course is concerned with design and implementation of an operating system. The covered fundamental topics include: threads and processes, synchronization, concurrency handling using different techniques (semaphores, hardware solutions, …) memory/ cache management strategies, processor scheduling, multiprocessing, parallel processing, hardware organization, disk scheduling and file management.

0401333 3 CH. Prerequisite Co-requisite
3 0 401241 -
This course introduces students to the principal concepts of distributed systems. The course covers fundamental concepts the CS students need to broaden their knowledge in a special spectrum of computer applications: distributed applications. Thus, characteristics of distributed system architecture, naming, consistency and replication, fault tolerance, security, synchronization, and distributed file management will be discussed. Other concepts such as distributed concurrency and distributed query processing will be touched in some details. Furthermore, CORBA, RMI (Remote Method Invocation), and RPC.

0401342 3 CH. Prerequisite Co-requisite
3 0 401241 -
Computer and Network Security is concerned with studying the security practices and principles of computer and networks. This course covers a variety of topics including basic computer security concepts, common attacking techniques, common security policies, basic cryptographic tools, authentication, access control, network intrusion detection, software security, operating system security, network security, and legal and ethical issues in computer security. The learning outcome is students must be able to understand the basic principles and practices in computer and network security, particularly what the foundational theory is behind computer security, the common threats, and how to engage with attackers.

0401343 3 CH. Prerequisite Co-requisite
3 0 401241 -
This course builds an understanding of the core issues encountered in the design of wireless networks. It also exposes students to fairly recent paradigms in wireless communication. Topics include transmission fundamentals, wireless channel, coding techniques and error control, satellite and cellular networks, cordless systems, mobile IP and management, multiple access techniques, wireless protocols, wireless LAN, IEEE 802.11, and ad hoc and sensor networks.

0401355 3 CH. Prerequisite Co-requisite
3 0 401251 -
This course provides coverage of the concepts of systems analysis and design, covering problem analysis, structured programming, stepwise refinement, and project management and planning tools. The course introduces types of software systems, e.g., ERP, Embedded systems, and their typical sources. It also discusses software development processes, such as SDLC, Agile, and XP, and various techniques used in information gathering. The course focuses on both data and process modeling, e.g., CD, DFD, ER, and data dictionary, while introducing students to UML and other object-oriented analysis and design concepts.

0401423 3 CH. Prerequisite Co-requisite
2 2 401241 + 401223 -
This module introduces concepts of advanced programming to develop network programs (client/server programs). It focuses on multithreading, networking, data streams, and socket programming. A selected programming language such as Java is used. Students will be expected to create multithreaded TCP/UDP clients and servers.

0401425 3 CH. Prerequisite Co-requisite
3 0 0401423 -
This course focuses on enhancing students’ skills in Java and its API libraries. Students will learn to use essential API packages, such as collections for storing generic groups of objects, Swing for building GUI applications, and JDBC to be able to connect to a database. Students will also learn to use inner classes, regular expressions, remote method invocation (RMI), CORBA, servlets, and Java server pages (JSP).

0401426 3 CH. Prerequisite Co-requisite
3 0 0401321 -
Course description: This course focuses on expanding and enriching the server-side web programming skills. Students will learn to develop Web applications that use three-tier architecture, session management, object-oriented techniques, and advance database interactions using PHP. Concepts such as advanced CSS, Ajax, rich interactive Web environments, authentication, and security will also be explored.

0401431 3 CH. Prerequisite Co-requisite
3 0 0401331 -
This course builds on the gained knowledge in computer architecture course. It provides a deeper look at the organizational, architectural, and functional properties of computer systems. The discussed topics include, but not limited to, assembly level machine organization, memory systems organization and architecture, alternative architectures, device interfaces, boosting performance with pipelining, exploiting memory hierarchy and, multiprocessors, multi-coring, and clusters.

0401433 3 CH. Prerequisite Co-requisite
3 0 0401211 -
The design and implementation of a compiler is studied, including compiler organization, lexical analysis, searching methods and symbol tables, formal languages and grammar, parser construction, code syntax, and code generation.

0401436 3 CH. Prerequisite Co-requisite
3 0 0401331 -
This course introduces parallel computer systems. The course covers topics such as sequential and parallel execution, synchronization, pipelines and vector processing. SIMD and MIMD machines are studied. Multi-stage and computer interconnection networks are presented. The routing and the flow control in these networks are discussed. Shared memory, multicomputer systems, caches and cache coherence are covered. Data flow systems are introduced and analyzed.

0401447 3 CH. Prerequisite Co-requisite
3 0 0401241 -
This advanced course introduces students to contemporarily topics include physical layer, data link layer, transport protocols, routing protocols, link-level protocols, wireless networking, multimedia networking, and network security. Specifically, topics will include, but not limited to, Internet architecture and core protocols for congestion control, forwarding, and routing; approaches to achieve reliability, scalability, and design of data center networks, wireless networks, and content delivery.

0401451 3 CH. Prerequisite Co-requisite
3 0 0401355 -
This course focuses on providing students with analytical and problem solving skills required for developing modern software systems in a formal and systematic fashion. The focus of this course is object-oriented analysis and design using UML. The course introduces various concepts, approaches, tools and methodologies related to software engineering which concern software development process including: requirements analysis, design and testing. The course provides the students with the opportunity to demonstrate what they learn on real-life applications which involves using CASE tools.

0401453 3 CH. Prerequisite Co-requisite
2 2 0401251 -
This course provides students with skills in database programming and other related technologies which covers database management systems design and catalog in addition transaction processing and concurrency control. The course also provides coverage to database security and authorization and introduces the concepts of triggers, programming units and packages in addition to database user interface design and reports generation.

0401454 3 CH. Prerequisite Co-requisite
3 0 Department Approval -
This course covers hot topics in computer science or any of its essential subfields or areas these topics may cover: programming, image processing, artificial intelligence, data science, security and networking. The course may involve critical studying hot theories; research and computation applications or any other computer related emerging technology. This course may be delivered in form of normal lectures or seminars related to one or list of hot topics. The specific topic to be taught in this course is decided by the interest of both the instructor and students.

0401457 3 CH. Prerequisite Co-requisite
3 0 0401453 -
This course involves advanced database programming and applications development which covers user interface programming and reports programming and generation. It also covers creating server-side and client-side programming units e.g. functions, procedures packages and triggers and interfacing database with other technologies e.g. Java, XML etc.

0401491 3 CH. Prerequisite Co-requisite
3 0 Department Approval + Completion of 99 C.H. -
This course centers on a project under the guidance of an instructor. Oral reports are given before the group in a seminar situation. The project involves some aspect of computer science and results will be presented in a final written report.

0401492 3 CH. Prerequisite Co-requisite
3 0 Department Approval + Completion of 90 C.H. -
The purpose of this course is to give actual experience in different industrial, commercial, administrative enterprises or companies. Application of what has been learned during the first three years of their study in the university is stressed. The course also teaches how to be self-confident when faced with problems.

401335 3 CH. Prerequisite Co-requisite
3 0 401221 -
Machine learning trends are being adopted in a wide range of technologies. This course provides a broad introduction to the fundamental methods of machine learning. The course discusses the theoretical foundation of machine learning techniques for supervised (clustering, dimensionality reduction, kernel methods), unsupervised learning (clustering, dimensionality reduction, kernel methods) in addition to machine learning algorithms. Finally, the course will improve students’ practical skills by designing and developing recent machine learning applications.

401336 3 CH. Prerequisite Co-requisite
3 0 401335 -
Neural networks have enjoyed several waves of popularity over the past half century. This course covers the history and the state-of-art of Neural networks and Deep learning approaches. The students will learn designing neural network architecture, Basic neuron models, Basic neural network models, and Basic learning algorithms. The students will develop applications by solving assignments in pattern recognition, image processing, computer vision. Finally, the students will have opportunities to investigate open problems in this area.

401454 3 CH. Prerequisite Co-requisite
3 0 Department Approval -
This course covers hot topics in computer science or any of its essential subfields or areas these topics may cover: programming, image processing, artificial intelligence, data science, security and networking. The course may involve critical studying hot theories; research and computation applications or any other computer related emerging technology. This course may be delivered in form of normal lectures or seminars related to one or list of hot topics. The specific topic to be taught in this course is decided by the interest of both the instructor and students.

401455 3 CH. Prerequisite Co-requisite
3 0 Department Approval -
This course can be used to allow provide the students with a chance to study topics of current interest in computer science. Topics can be selected from the list below but not limited to it, an instructor can propose a different topic and if accepted by the department it will be considered: APPLICATIONS: Database and Information Systems, Security and Cryptography, Computational Science and Engineering, Visual Computing and Interaction, Machine Learning and Data Mining. FOUNDATIONS: Algorithms, Programming Languages and Software Engineering, Security and Cryptography, and Computational Science and Engineering.

401456 3 CH. Prerequisite Co-requisite
3 0 Department Approval -
This course can be used to allow provide the students with a chance to study topics of current interest in computer science. Topics can be selected from the list below but not limited to it, an instructor can propose a different topic and if accepted by the department it will be considered: SYSTEMS: Operating Systems and Distributed Systems, Programming Languages and Software Eng., Database and Information Systems, Computer Architecture and Embedded Systems, Security and Cryptography, Machine Learning and Data Mining, and Networking.

401491 1 CH. Prerequisite Co-requisite
1 0 Department Approval -
The graduation project is an opportunity for students to employ their four-year experience and skills. The project targets two fundamental skills that students urgently need in their careers: software production and documentation. In part 1 of the project (graduation project 1), students should plan for their project with the guidance of the advisor. The planning includes problem definition, objectives, state-of-the-art, system analysis, solution design, and required technologies to implement the project.

401492 2 CH. Prerequisite Co-requisite
2 0 Department Approval -
Part 2 of the graduation project (the following semester) is a continuation of the work accomplished in part 1. It includes implementation of the application, software testing, and software documentation. The documentation must follow professional guidelines, which include problem motivation, how the system addresses the problem, record all the analysis and design artifacts, and a user manual. Upon the consent of the advisor, students must defend their projects to finish the requirement for the graduation project.

401361 3 CH. Prerequisite Co-requisite
3 0 401332 -
This course covers the principles of cloud computing, including its architecture, deployment models, service models, and the essential technologies that enable cloud computing. The course emphasizes the advantages and challenges of cloud computing in real-world applications and explores cloud security and privacy issues.

Projects

Information about student and department projects.

Hi MED Medical Solutions

One of the success stories from our Computer Science students is the development of the device 'Hi MED Medical Solutions,' along with the complementary application 'Hi MED Care,' both designed to help our patients take their medications on time.

Project