Bachelor of Computer Sciences

Views: 3,291

Share this program

Bachelor

Bachelor of Computer Sciences

The Computer Science and Information Technology Department is one of the first established in the country. Quality of Palestinian education is always our main concern, and therefore our methodology is based on teaching with research; emphasizing problem solving skills, theoretical computer science, and software development taking into consideration new trends and applications. This will ensure that our students are well prepared for a successful career in the ICT industry as well as in academia, and to become the best graduates in the labor market. To that end, we strive to enhance the quality and diversity of our programs and to keep them in-line with international standards. The department implements several international, European and national projects, involving teachers, researchers and students in state-of-the-art research and innovative activities.

Since its foundation, our department has been dedicated to stay up-to-date with respect to scientific and technological advancements and to respond to the local and international community needs. The graduates of our department are employable worldwide. This is due to our commitment to the highest standards in teaching and hands-on training and to the expertise of our teaching staff and high motivation of our students. Therefore, the department is constantly creating new majors and specialized tracks in Computer Science and Informatics to produce active graduates who are equipped with the skills needed for the 21st Century.

Bachelor (BSc) in Computer Science

The Computer Science and Information Technology Department offers a full major in Computer Science that focuses on specialized areas of computer science and information technology.

In addition, the department offers a Minor in Computer Science to students from other departments of the university:

The main objectives of the Computer Science and Information Technology programs are able as follows:

  1. understand how theory and practice influence each other,
  2. implement the knowledge and skills to solve daily problems across multiple domains, and
  3. discuss and communicate challenges, tasks and results with peers and stakeholders.

Table #2.1: Program Intended Learning Outcomes-ILO’S

Key: Introduce (I), Reinforce (R), Mastery (M), Assessment (A)

ILO

101

102

104

132

201

202

233

234

243

Apply mathematical and scientific

reasoning to computational problems.

I

R

R

R

R

M

 

 

 

Understand the use of structured development methodologies as

 applied to large software systems and

 to small programming projects.

 

 

 

 

 

 

 

 

M

Understand the impact of engineering

solutions in global, economic,

environmental and social context.

 

 

 

 

 

 

M

M

M

Evaluate, verify, troubleshoot, test

and analyze an existing

computer-based

system

 

 

 

 

 

 

 

 

A

Think critically and creatively, both independently and with others

I

R

 

 

 

R

 

 

 

Communicate effectively, both

orally and in writing

 

I

 

 

M

 

 

 

 

Formulate solutions to computing

problems

 

 

 

 

 

M

 

 

M

Write clear system documentation,

user documentation and research

reports.

 

 

 

 

 

 

 

 

 

Apply advanced algorithmic and mathematical concepts to the design

 and analysis of software.

 

 

 

 

I

M

 

 

M

Design, implement and document

 software systems that meet specified

design and performance requirements.

 

 

 

 

 

 

 

 

A

Use current techniques, skills, and

 tools necessary for computing practice.

 

 

 

 

 

 

M

 

A

Communicate with experts from

different domains.

 

 

 

 

 

 

 

 

A

Recognize the social and ethical responsibilities of a professional

working in the discipline.

 

 

 

 

 

 

 

 

 

Understand their own limitations

 and the limitations of the tools.

 

 

 

 

 

 

R

R

R

Use current techniques, skills, and

 tools necessary for computing

practice.

 

I

 

 

 

 

 

R

R

 

Table #2.2: Program Intended Learning Outcomes-ILO’S

Key: Introduce (I), Reinforce (R), Mastery (M), Assessment (A)

ILO

272

281

305

308

345

361

473

483

492

Apply mathematical and

scientific reasoning to computational problems.

 

R

R

M

 

 

 

 

 

Understand the use of

structured development methodologies as applied

to large software systems

and to small programming

projects.

 

 

 

 

M

 

 

 

 

Understand the impact of engineering solutions in

 global, economic,

environmental and social

 context.

 

 

 

 

M

 

 

 

 

Evaluate, verify,

 troubleshoot, test and

analyze an existing

computer-based system

 

 

 

 

A

 

 

 

 

Think critically and

creatively, both

 independently and with

 others

 

 

 

 

 

 

 

 

M

Communicate effectively, both

orally and in writing

 

 

 

 

 

M

 

 

 

Formulate solutions to computing

problems

 

 

 

 

M

A

 

 

 

Write clear system

documentation,

user documentation and research

reports.

 

 

 

 

 

 

 

 

A

Apply advanced algorithmic and mathematical concepts to the design

 and analysis of software.

 

 

 

 

M

 

 

 

 

Design, implement and

Document software systems

 that meet specified design

and performance

requirements.

 

 

 

 

A

 

 

 

 

Use current techniques,

skills, and tools necessary

for computing practice.

 

 

 

 

A

 

 

M

 

Communicate with experts

 from different domains.

 

 

 

 

A

 

 

A

A

Recognize the social and

ethical responsibilities of a professional working in the discipline.

 

 

 

 

M

 

 

 

A

Understand their own

limitations and the

 limitations of the tools.

 

 

 

 

A

 

 

 

M

Use current techniques,

skills, and tools necessary

for computing practice.

 

 

 

 

 

 

 

 

A

Soon …

This will ensure that our students are well prepared for a successful career in the ICT industry as well as in academia, and to become the best graduates in the labor market. To that end, we strive to enhance the quality and diversity of our programs and to keep them in-line with international standards. The department implements several international, European and national projects, involving teachers, researchers and students in state-of-the-art research and innovative activities.

University Requirements (24 credit hours: 18 credit hours Compulsory and 6 credit hours Elective)

All students registered to obtain a bachelor’s degree in computer science must successfully complete the required university courses (24) credit hours distributed as follows:

A) University required courses / 18 credit hours are shown in Table #3.

Table #3: University Requirements

No.

Course Name

Course Number

Credit hours

1

Arabic language skills

0400101

2

2

English language skills 1

0400184

2

3

English language skills 2

0400185

2

4

Jerusalem throughout history

0400120

2

5

Palestine: nature & environment

0400121

2

6

World civilizations

0400128

3

7

Logical thinking

0400150

3

8

Islamic culture

0400122

2

 

B) University elective courses /6 credit hours Students can choose either courses from Table #4 or Table #5.

Table #4 University elective courses (languages)

#

Course name

Course No.

C.H.

Notes

1

Hebrew language for beginners

0400111

3

 

2

Hebrew language (medium level)

0400112

3

3

French language for beginners

0400113

3

 

4

French language (medium)

0400114

3

5

German language for beginners

0400115

3

 

6

German language (medium)

0400116

3

 

7

Spanish language for beginners

0400117

3

 

8

Spanish language 2

0400184

3

9

Turkish language for beginners

0400185

3

 

10

Turkish language 2

0400129

3

 

11

Italian language for beginners

0400146

3

12

Italian language 2

0400147

3

 

13

Any foreign language approved by the Academic Council later

 

6

 

OR re Table # 5 – Elective University Courses /6 Credit Hours (Cultural Studies)

No.

Course Name

Course Number

Credit hours

1

Science and Life

0300142

3

2

Fine Arts

0400130

3

3

Introduction to Music

0400131

3

4

Literary sensing

0400132

3

5

Man and Woman in Human Societies

0400133

3

6

Modern and Contemporary issues in the Arabic Thinking

0400141

3

7

Internet for Special Uses

0303100

3

8

Democracy, Human Rights and International Human Law

0500140

3

9

Peaceful Resolution of Conflicts

0500143

3

10

Communication Skills

0403131

3

11

Introduction to Law

0500145

3

12

Philosophy and History of Science

0409135

3

13

Special Topics

0400148

3

14

Skills for the Workplace

0700301

3

 

I.2- College Requirements (18 credit hours)

All students of the computer science and information technology department are required to take 18 credit hours  from the  courses of the faculty of science and technology  as shown in Table #6.

Compulsory courses (18 hours)

Table #6: College Requirements

#

Course name

اسم المساق

Course #

Theory

Lab

Total

1

Introduction to Physics

مقدمة في الفيزياء

0302101

2

1

3

2

Introduction to Computer Science

مقدمة الى علم الحاسب

0303101

3

1

4

3

Introduction to Chemistry

كيمياء عامة

0304101

3

1

4

4

Introduction to Biology

مقدمة في العلوم الحياتية

0305101

3

1

4

5

Calculus I

تفاضل وتكامل 1

0306101

3

–

3

 

Total:

18

 

I.3- Computer Science Requirements

I.3.1- Compulsory Courses (62 hours)

Compulsory courses are shown in Table #7.

Table #7. Core Computer Science Compulsory Courses (62 credit hours), these courses are required for all CS students.

Title

 اسم المساق

Course #

Theory

Lab

Total

Prerequisite

Fundamentals of Programming

أساسيات البرمجة

0303102

3

1

4

0303101

Mathematics for

Computer Science

رياضيات لطلاب علم لحاسب

0303104

3

 

3

0306101

Statistics & Probability for

Computer Science 

احصاء واحتمالات لطلبة علم الحاسب

0303132

3

 

3

0306101

Data Structures & Algorithms I

تركيب البيانات والخوارزميات 1

0303201

3

1

4

0303102

Data Structures & Algorithms II

تركيب البيانات والخوارزميات 2

0303202

3

1

4

0303201

Computer Organization and

Assembly Language

عمارة الحاسوب ولغة اسمبلي

0303233

3

1

4

0303102

Computer Architecture

هيكلية الحاسوب

0303234

3

1

4

0303233

Database Systems 1

نظم قواعد البيانات 1

0303243

3

1

4

0303102

Information Systems

نظم المعلومات

0303246

3

 

3

0303102

Introduction to Computer Networks

مقدمة الى شبكات الحاسب

0303272

3

1

4

0303201

Linear Algebra and Numerical

 Algorithms for Computer Science

جبر خطي وخوارزميات رقمية لطلبة علم الحاسب

0303281

3

 

3

0303102

Data Science I

علوم البيانات 1

0303305

3

1

3

0303132

Advanced Programming

برمجة متقدمة

0303308

3

 

3

0303201

Software Engineering

هندسة البرمجيات

0303345

3

 

3

0303243

Research Methods

طرق البحث العلمي

0303361

1

 

2

0306132

Operating Systems

نظم التشغيل

0303473

3

 

3

0303233

Intelligent Systems

النظم الذكية

0303483

3

 

3

0303201

Internship 1

تدريب ميداني1

0303495

3

 

3

 Third year level

Senior Project I

مشروع تخرج 1

0303492

1

 

1

Dept.

Senior Project II

مشروع تخرج 2

0303493

1

 

1

Dept.

Total

62

 

I.3.2 – Elective Courses for full Major in Computer Science (21 hours)

In the computer science full major, students should chose take 21 hours from the courses listed in Table #8.

Table #8. Computer Science Elective Courses (21 credit hours are to be chosen)

#

Title

الاسم

Course #

CRHs.

Prerequisite

1

Digital Design

تصميم منطق

0303231

3

0303102

2

Advanced Algorithms and Data Structure

تركيب بيانات وخوارزميات متقدمة

0303302

3

0303202

3

Web and Mobile Application Development

تصميم تطبيقات الوب والجوال

0303306

3

0303102

4

Geographic Information Systems

نظم المعلومات الجغرافية

0303325

3

0303246

5

Database II

قواعد بيانات 2

0303343

3

0303243

6

Machine learning

التعليم الالي

0303347

3

0303243

7

Advanced Computer Networks

شبكات حاسوب متقدمة

0303373

3

0303272

8

Computer Graphics

الرسم في الحاسوب

0303382

3

0303201

9

Academic Writing and Communication Skills

مهارات الكتابة والتواصل الأكاديمي

0303401

3

 

10

Data Science II

علوم البيانات 2

0303405

3

0303305

11

Serious Gaming and Programming

برمجة الالعاب الهادفة

0303406

3

0303202

12

Network Programming

برمجة الشبكات

0303412

3

0303272

 

13

Programming Languages and Compilers

لغات البرمجة والمترجمات

0303421

3

0303202

14

Microprocessor

المعالجات المصغرة

0303434

3

0303233

15

Introduction to Data Mining

مقدمة لتعدين البيانات

0303443

3

0303243

16

Security and Legal Hacking

الامن والاختراقات القانونية

0303444

3

0303272

17

Software Quality Control

مراقبة جودة البرمجيات

0303446

3

0303345

18

Project Management

ادارة المشاريع

0303453

3

0303246

19

Human Computer Interaction

التفاعل بين الانسان والحاسوب

0303482

3

0303382

20

Bio computation

الحوسبة الحيوية

0303485

3

0305101

21

Parallel and Distributed Computing

الحوسبة المتوازية والموزعة

0303486

3

0303272

22

Special Topics in Computer Science

مواضيع خاصة في علم الحاسب

0303494

3

4th year level

24

Internship 2

تدريب ميداني2

0303496

3

0303495

25

Capstone

كابستون

0303499

3

Dept.

 

II- Major in Computer Science / Minor in another program

Students taking this option should take the 62 credit hours compulsory courses, listed in Table 6, as well as the university requirements, and the college requirements, as illustrated in Table #9.

Table #9. Distribution of courses for students taking Major in Computer Science / Minor in another program

Requirements

Credit Hours

Mandatory

Elective

University

24

18

6

College

18

18

0

Department

62

62

0

Minor requirement

As specified by the other department (At least 21)

 

III-Department Minors

1. Minor in Computer Science

This is offered for students from other departments in the College of Science & Technology, students are required to pass the introduction to computer science (0303101) with 70% or higher Students are required to take 27 credit hours which consists of 18 compulsory credit hours shown in Table #10 plus 9 credit hours to be chose from the department courses (compulsory or electives) 200 level and above.

Table #10 Compulsory Courses for the Minor in Computer Science (18 credit hours)

 #

Title

Course #

Credits

Prerequisite

1

Fundamentals of Programming

0303102

4

0303101

2

Database System

0303243

4

0303102

3

Data Structures and Algorithms

0303201

4

0303102

5

Information Systems

0303246

3

0303102

6

Software Engineering

0303345

3

0303243

 

Compulsory

18

 

 

Elective Courses (Dept 200 level or above)

9

 

 

Total

27

 

 

2. Minor in Information Technology – 27 credit hours (21 compulsory + 6 elective)

This is offered only for Tawjehee scientific stream or equivalent, students are required to pass the introduction to computer science (0303101) with 70% or higher. This is offered for the students from other faculties except from the college of Science and Technology or Engineering. Students are required to take 27 credit hours which consists of 21 compulsory credit hours shown in Table #11 plus 6 hours to be chose from the department courses (compulsory or electives) 200 level and above.

Table #11 Compulsory Courses for the Minor in Information Technology (21 credit hours)

 #

Title

Course #

Credits

Prerequisite

1

Introduction to Computing

0303101

4

–

2

Fundamentals of Programming

0303102

4

0303101

3

Database System

0303243

4

0303102

4

Information Systems

0303246

3

0303102

5

Human Computer Interaction

0303441

3

0303246

6

Software Engineering

0303345

3

0303243

 

Total

21

 

 

IV- CS & IT Yearly Plan

Students can choose Plan A (Table #12) in which he can finish in three and a half years, or Plan B ( Table #13) for four years.

Table #12 Study Plan for Three and a Half Years

 

First year

First semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Introduction to CS

(0303101)

–

3

1

4

Calculus I

(0306101)

–

3

–

3

 

College Requirement

 

–

3

1

4

University Requirement

 

–

2

–

2

University Requirement

 

–

2

–

2

University Requirement

 

–

2

–

2

Total

17

Second semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Fundamentals of Programming 

(0303102) 

0303101

3

1

4

Mathematics for Computer Science

(0303104)

0306101

 

 

3

 

Statistics & Probability for Computer Science

 

(0303132)

0306104

 

 

3

College Requirement

 

 

3

1

4

University Requirement

 

 

 

 

2

 

University Requirement

 

 

 

 

2

Total

18

 

Second Year

 

First semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Data Structures and Algorithms I

(0303201)

0303102

3

1

4

Computer Organization and Assembly Language

(0303233)

0303102

3

1

4

Linear Algebra and Numerical Algorithms for Computer Science

(0303281)

0303101

3

 

3

Database Systems I

(0303243)

0303102

3

1

4

 

College Requirement

 

 

2

1

3

Total

18

Second semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Data Structures and Algorithms II

(0303202)

0303102

3

1

4

Introduction to Computer Networks

(0303272)

0303201

3

1

4

University Elective

 

 

3

 

3

Information System

0303246

0303102

3

 

3

University Requirement

 

 

3

 

3

Total

17

 

Third Year

 

First semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Data Science I

(0303305)

0306132

3

 

3

Software Engineering

(0303345)

0303243

3

 

3

Computer Architecture

(0303234)

0303233

3

1

4

 

Department Elective

 

 

3

 

3

 

University Requirement

 

 

3

 

3

University Requirement

 

 

3

 

2

Total

18

Second semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Advanced Programming

0303308

0303201

 

 

3

Research Methods

0303361

0303102

 

 

2

Internship I

0303495

Department

 

 

3

Department Elective

 

 

 

 

3

Department Elective

 

 

 

 

3

University Elective

 

 

 

 

3

Seminar I

0303392

Department

 

 

1

Total

18

 Fourth Year

First semester

Course name

Course number

Prerequisite

Credithours

theory

lab

total

Seminar II

0303493

Department

1

 

1

Computer Operating Systems 

0303473

0303233

3

 

3

Department Elective

 

 

 

 

3

Intelligent Systems

(0303483)

0303201

3

 

3

Department Elective

 

 

 

 

 3

Department Elective

 

 

 

 

3

Department Elective

 

 

 

 

3

Total

19

  Table #13 Study Plan for Four Years

 First Year

First semester

Course name

Course number

Prerequisite

Credit hours

theory

practice

total

Introduction to CS

(0303101)

–

3

1

4

Calculus I

(0306101)

–

3

–

3

College Requirement

 

 

–

 

 

4

University Requirement

 

–

 

 

2

University Requirement

 

–

 

 

2

 

 

 

 

 

 

Total

15

Second semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Fundamentals of Programming

 

(0303102)

0303101

3

1

 4

Mathematics for Computer Science

 

(0303104)

0306101

3

 

3

Statistics & Probability for Computer Science

0303132

0306104

3

 

3

University Requirement

 

 

 

 

 2

University Requirement

 

 

 

 

2

College Requirement

 

 

 

 

 4

Total

18

 Second Year

First semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Data Structures and Algorithms I

(0303201)

0303102

3

1

4

Computer Organization and Assembly Language

(0303233)

0303102

3

1

4

Linear Algebra and and Numerical Algorithms for Computer Science

(0303281)) 

0303102

3

 

3

Database Systems I

(0303243)

0303102

3

1

4

College Requirement

 

 

 

 

 3

Total

18

Second semester

Course name

Course number

Prerequisite

Credit hours

 

theory

lab

total

Data Structures and Algorithms II

(0303202)

0303201

3

1

4

Introduction to Computer Networks

(0303272)

0303201

3

1

4

Information system

(0303246)

0303102

3

 

3

University Requirement

 

 

 

 

3

College Requirement

 

 

 

 

4

Total

18

Third Year

First semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Data Science I

(0303305)

0306132

3

 

3

Software Engineering

(0303345)

 0303243

3

 

3

University Requirement

 

 

 

 

3

Computer Architecture

(0303234)

0303233

3

1

4

University Elective

 

 

 

 

3

University Requirement

 

–

 

 

2

Total

18

Second semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Internship I

0303495

Department

 

 

3

Advanced Programming

(0303308)

0303201

3

 

3

Research Methods

( 0303361)

0303102

1

1

2

University Elective

 

 

 

 

3

Department Elective

 

 

 

 

3

Total

14

 

Fourth Year

First semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Intelligent Systems

(0303483)

0303201

 

 

3 

Seminar I

0303392

Department

 

 

1

Department Elective

 

 

 

 

3

Department Elective

 

 

 

 

3

Department Elective

 

`

 

 

3

University Requirement

 

 

 

 

2

Total

13

Second semester

Course name

Course number

Prerequisite

Credit hours

theory

lab

total

Seminar II

0303493

Department

1

 

1

Computer Operating Systems

0303473

0303233

3

 

3

Department Elective

 

 

 

 

3

Department Elective

 

 

 

 

3

Department Elective

 

 

 

 

3

Total

13

0303101– Introduction to Computing (4 credits):

In this course students learn : Elements of Programming that introduces variables, assignment statements, built-in types of data, conditionals and loops, arrays, and input/output, including graphics and sound • Functions  that introduces modular programming • Object Oriented Programming and  data abstraction • Algorithms and Data Structures that introduces classical algorithms for sorting and searching and fundamental data structures •  A Computing Machine to introduce an imaginary machine that is similar to real computers •  Circuits introduces circuits and logical design • Theory of Computation that introduces the scientific discipline concerned with understanding (efficient) computational phenomena • Systems introduces the basic components of computer systems that support programming: compilers, operating systems, networks, and application systems • Scientific Computation introduces some of the most important algorithms that play crucial roles in our computational infrastructure, including numerical integration, matrix computation, data analysis, and Monte Carlo simulation.

0303102– Fundamentals of Programming (4 credits) – (Preq.  0303101):

The course introduces the fundamental concepts underlying modern computer programming. A Systematic approach is used to teach students how to write programs that solve well specified Problems.  Emphasis is placed on the mastery of basic programming skills, with a considerable Attention to the fundamental building blocks of computer programs, and the associated concepts and principles. The essentials of sequential processing and control flow are taught in a procedural programming context prior to introducing classes, objects and related object-oriented programming concepts.

This course will introduce fundamental programming techniques and methods using JAVA programming language. It will provide students with the necessary tools and skills to be able to come out with all possible logical solutions to a problem and express such solutions in efficient code. The course will also introduce basic concepts of object-oriented programming and basic concepts of Data structures towards the end of the course. To ensure the development of the necessary competencies, assigned homework includes the development of program solutions to problems of adequate complexity and relevance.

0303104 Mathematics for Computer Science (3 credits)  – (Preq. 0306101)

Hyperbolic Functions, Improper Integrals, Infinite Sequences and Series, Ratio and Root Tests, Power Series, Taylor Series, Parametric Equations, Polar Coordinates, Vectors, Dot Products, Cross Product, Planes in Space, Functions of Several Variables, Partial Differentiation, Chain Rule, Gradient Vectors, Extreme Values and Saddle Points, Lagrange Multipliers, Taylor’s Formula for Two Variables, Double Integrals over General Regions, Substitutions in Multiple Integral. Gamma Function, Beta Function, Error Function. Use of Python or R software packages.

0303132 Probability and Statistics for Computer Science(3 credits) –(Preq. 0306104)

Types of Data, Descriptive Statistics, Exploratory Data Analysis, Data Cleaning, Multivariate Data and Data Frames, Conditional Probability, Bayes’ Rule, Random Variables, Discrete and Continuous Uniform Distributions, Binomial Distribution, Normal and Chi-Square Distributions, Expectation and Moment Generating Functions, Empirical Distribution, Functions of Discrete and Continuous Random Variables, Joint and Marginal Probability Distributions, Conditional Distributions, Bivariate Normal Distribution, Multinomial Distribution, Sampling Distributions, Central Limit Theorem, Point Estimation, Maximum Likelihood Estimator, Confidence Intervals, Hypotheses Testing, Correlation, Simple Linear Regression, Multiple Linear Regression Model, Prediction, Logistic Regression, Bootstrap Standard Errors. Use of Python or R software packages.

0303201– Data Structures & Algorithms 1 (4 credits) – (Preq.  0303102):

In this course the student learn and understand in-depth the basic data structures and algorithms in Computer Science : Arrays • Runtime storage management  • Pointers and references  • Linked structures  • Implementation strategies for stacks, queues, and hash tables  • Implementation strategies for graphs and trees  • Strategies for choosing the right data structure .Simple recursive functions  • Divide-and-conquer strategies, Asymptotic analysis of upper and average complexity bounds  • Identifying differences among best, average, and worst case behaviors  • Big O, little o, omega, and theta notation  • Standard complexity classes  • Empirical measurements of performance  • Time and space tradeoffs in algorithms  • Using recurrence relations to analyze recursive algorithms • Simple numerical algorithms  • Sequential and binary search algorithms  • Quadratic sorting algorithms (selection, insertion)  • O(N log N) sorting algorithms (Quicksort, heapsort, mergesort)  • Hash tables, including collision-avoidance strategies  • Binary search trees  • Representations of graphs (adjacency list, adjacency matrix)  • Depth- and breadth-first traversals  • Shortest-path algorithms (Dijkstra’s and Floyd’s algorithms)  • Transitive closure (Floyd’s algorithm)  • Minimum spanning tree (Prim’s and Kruskal’s algorithms)  • Topological sort •

0303202– Data Structures & Algorithms 2 (4 credits) – (Preq.  0303201):

This course introduces students to new types of data structures and learns how to design new algorithms for each new data structure studied, create and perform simple operations on graph data structures, describe and implement common algorithms for working with advanced data structures and recognize which data structure is the best to use to solve a particular problem. This course is to give general computational problems, with a focus on the principles used to design those algorithms. Efficient data structures will be discussed to support these algorithmic concepts. Topics include: Analysis of algorithms, Divide-and-conquer algorithms, greedy algorithms, dynamic programming algorithms, Solution of summation & recurrence equations, Backtracking, branch-&-bound, advanced graph algorithms, Numerical approximation algorithms, Brute-force algorithms, Pattern matching and string/text algorithms, Randomized algorithms, Amortized analysis,  network flow algorithms, large-scale search algorithms and heuristics, and efficient data storage and query.

This course  will focus on the design and analysis of algorithms for general classes of problems so that student should be able to describe the shortcoming of brute-force algorithms and identify an example of everyday human behavior that exemplifies the basic concept for each of several kinds of algorithm (brute force, greedy, divide-and-conquer, backtracking, branch-and bound, and heuristic),. and they should be able to Implement a greedy algorithm to solve an appropriate problem, and. Use backtracking to solve a problem such as navigating a maze, Use numerical approximation to solve mathematical problems, such as finding the roots of a polynomial, describe various heuristic problem-solving methods and Use pattern matching to analyze substrings.  

0303231– Digital Design (3 credits) – (Preq. 0303102):

This course introduces the design of the digital computer: numerical data representation, forms of representations of computer functionality, including logical expressions and logic gates, design and implementation of combinational and sequential circuits, decoders, encoders, multiplexers, flip-flops, counters, registers and memory devices. Student should be able to use Register transfer notation/Hardware Description Language (Verilog/VHDL).

0303233– Computer Organization and Assembly language 1 (4 credits) – (Preq. 0303102):

This course is designed to introduce students to the basics of Computer organization using low level assembly language programming. Basic organization of the von Neumann machine. Boolean Algebra, design and implementation of combinational and sequential circuits, decoders, encoders, multiplexes, flip-flops, counters, registers and memory devices. Figuring out storage systems and their technology. Memory hierarchy. Main memory organization and operations, Cache memories. Interrupt structures, External storage, Shared memory multiprocessors/multicore organization, SIMD vs. MIMD and the Flynn Taxonomy. Data paths, including instruction pipelining, hazards.

0303234 Computer Architecture (4 credits) (Preq. 0303233):

This course is designed to introduce students with measuring and reporting performance, classifying instruction sets architectures. Data paths, instruction pipelining, hazard detection and resolution, Control unit: hardwired realization vs. microprogrammed realization, instruction-level parallelism, and superscalar architecture. Branch prediction, Speculative execution, Out-of-order execution. Vector processors and GPUs. SIMD and MIMD architectures. Interconnection networks. Shared multiprocessor memory systems and memory consistency. Multiprocessor cache coherence. Using low level assembly language programming. Assembly language will focus on Intel x86 assembly language, low-level data manipulation, instructions and directives. The usage of assemblers, debuggers, linkers and loaders.

0303243—Database systems I  (4 credits) – (Preq. 0303102):

This course introduces database management systems (DBMS) features, functions, and architecture, including logical design, data models, normalization, and database administration. A DBMS product will be used to illustrate principles. It will also introduce students to the design, development, implementation, and manipulation of databases as well as covering the essentials of file processing and the design of computerized business forms and reports.  The course provides students with an understanding of the importance and the role of Business Information Systems in making decisions affecting the success of an organization, and the types of information systems that support business functions The student will be asked to create information level database designs from a set of user requirements and implement those designs employing modern database tools. Emphasis will be placed on the planning, development, installation and maintenance of business computer applications that are utilized in the typical business environment.

0303246 Information Systems (3 credits) – (Preq. 0303102)

This course introduces students to information systems, distinguishing the different types of information systems, systems analysis and design, data analysis and management, surveying information/systems technology for the management of enterprise information.

0303272– Computer Networks I (3 credits) – (Preq. 0303201):

This course covers principles, design, implementation, and performance of computer networks; these include: physical layer, transmission media, OSI reference model, data-link layer, medium access control (MAC), Internet Protocols, local area networks, IP, TCP, congestion control, switching and routing, wireless networks, and application layer protocols. The course includes hands-on lab on LAN design and routing.

303281 Linear Algebra and Numerical Algorithms for Computer Science (3 credits) (Preq. 0303101)

Gaussian Elimination, Matrices, Diagonal, Triangular, and Symmetric Matrices, Matrix Transformations, Cramer’s Rule , General Vector Spaces, Spanning Sets, Linear Independence, Row Space, Column Space, Null Space, Nullity, Eigenvalues and Eigenvectors, Diagonalization, Inner Products, Gram–Schmidt Process, QR Decomposition, LU-Decompositions, Newton’s Method, Gradient Descent Method, Interpolation and Lagrange Polynomials, Cubic-Spline Interpolation, Least Square Approximation, Simplex Method. Use of Python or R software packages.

0303305– Data Science I (4 credits) – (Preq. 0306132):

This course introduces students to System of linear equations, matrices, determinants, Euclidean vector spaces, linear independence, basis, dimension, rank, inner product spaces, eigenvalues, eigenvectors, LU-decomposition, spectral value decomposition, round-off errors, fixed-point iteration, Newton-Raphson method, Interpolation, Taylor polynomials, Lagrange polynomials, divided difference, cubic spline interpolation, discrete least squares approximation, orthogonal polynomials, Fourier series, and use of Matlab software.

 0303308– Advanced Programing (3 credits) – (Preq. 0303201):

The aim of this course is to teach advanced programming concepts, specially covers modular programming, systems programming, concurrent programming and synchronization, platforms development tools. The overall objective of the course is to prepare students for building large-scale software products following the best practices and design techniques of software development. The course is intended to extend the student’s knowledge to encompass a number of important programming techniques necessary for building a modern computing application. The course content will include techniques in Java to deal with a range of issues drawn from the following: program design using an object oriented programming model; modelling data using programming language type systems; event and exception programming; providing a graphical user interface; thread programming; persistence; and distributed programming. It will also cover in brief the underlying Java run time system and techniques found in other languages.

0303361 Research Methods and Applied Computing (3 credits) – (Preq. 0303102):

The course introduces to students methods and techniques on how to conduct successful scientific research including research methodologies, statistical analysis, research ethics and writing skills,

in addition to computerized research tools. Consequently, this course this course will enable the students to understand the various research steps as well as a critically informed assessment of published research. Most of the course will focus on the fundamentals of quantitative and applied research. The student will learn how to identify problems to study, develop hypotheses and research questions, specify independent and dependent variables check for the validity and reliability of studies and design research projects. The student will also be exposed to the broad range of designs used in research from laboratory and field experiments, surveys, content analysis, focus groups and in-depth interviewing. Specifically, at the end of this course, the student should be able to conduct scientific research according to international research standards.

0303345– Software Engineering (3 credits) – (Preq. 0303243):

The primary objective of this course is to enable the students to construct software of high quality using the methods taught in this course and to understand why software engineering is important. An introduction to principles of software engineering and best practices. Students work in teams on the design, implementation, and deployment of a short-term project that solves a problem. Structured and supervised with weekly milestones and weekly meetings for design discussions with an advisor.

0303421– Programming Languages and Compilers (3 credits) – (Preq. 0303202)

This course offers an introduction to Programming Languages design issues and compiler design. The PL topics include: examination of modern programming languages evolution and features, abstract data and control structures, procedures, parameter passing mechanisms, block structuring and scope rules, input/output, and storage management. The Compiler topics include: lexical analysis, regular expressions, parsing (syntax analysis) strategies (top-down and bottom-up), context-free grammars, interpretation, compilation, language translation pipeline, type-checking, linking and loading, execution and run-time layout of memory, implementing loops, recursion, manual and automated memory management. 

0303473– Operating Systems (3 credits) – (Preq. 0303233):

Introduce the student to the principles and evolution of operating systems. Process and processor management. Concurrent processes and threads. Primary and secondary storage management. I/O. Case studies of modern operating systems

0303485– Parallel and Distributed Computing 1 (3 credits) – (Preq. 0303272):

This course aims to build upon students’ familiarity with the notion of basic parallel and distributed  computing to delve into the complicating issues that stem from this notion, such as race conditions and liveness: Multiple simultaneous computations, Goals of parallelism (e.g., throughput) versus concurrency (e.g., controlling access to shared resources), Programming constructs for creating parallelism, communicating, and coordinating ,   Programming errors not found in sequential programming,  Data races (simultaneous read/write or write/write of shared state),  Higher-level races (interleavings violating program intention).   Lack of liveness/progress (deadlock, starvation, Need for communication and coordination/synchronization: Independence and partitioning , Shared Memory , Consistency, and its role in programming language guarantees for data-race-free programs. Multicore processors  Shared vs. distributed memory.

0303491– Senior Project I (1 credit) – Department Approval:

Covers recent topics and current research areas/trends in Computer Science and Information Technology. Emphasis will be on participation level, innovation, research effort, and the use of technical literature sources. A report document is expected at the end of the course.

0303492– Senior Project II (1 credit) – Department Approval:

The course is a follow-up to Senior Project I course. The student is expected to implement and demonstrate ideas explored in part I. At the end of the course, the student (or group of students) working on this project, should submit a full documentation and make a private and public demonstration of their proposed solution.

0303495 Internship 1 (3 credits) – (Third year level)

This course serves the department educational strategy that links classroom learning and student interest with the acquisition of knowledge in an applied work setting. In this course  students undertake a significant experiential learning opportunity, typically with a company, non-profit, governmental, or community-based organization.  Through direct observation, reflection and evaluation, students gain an understanding of the internship site’s work, mission, and audience, how these potentially relate to their academic study, as well as the organization’s position in the broader industry or field.  Students will produce a critical reflection on their internship experience demonstrating how they have addressed specific learning goals

Elective Courses for the Major Computer Science (0303):

0303306– Web & Mobile Application Development (3 credits) – (Preq. 0303102 )

This course provides a key introduction to essential web development languages. Course content will focus in HTML, CSS and JavaScript in the context of web development practices. Students will experience how to create basic web pages with HTML, including basic structuring of page content, apply basic formatting styles using CSS and understanding JavaScript for basic interactivity.

Moreover this course introduces students to programming technologies, design, and development related to mobile applications. Topics include accessing device capabilities, industry standards, operating systems, and programming for mobile applications using Android Studio SDK.

0303325– Geographic Information Systems (4 credits) – (Preq. 0303246)

This course is offered by the department of Earth and Environmental Science. Topics include: aerial photography, land satellites, GIS applications and land use. Building GIS projects, building geodatabases and spatial analysis, converting from vector to raster model, using the GIS tools for environmental analysis and applications. The course also offers hands-on training on the ArcGIS software group. 

0303326 Performance Evaluation of Computer System (3 credits) – (Preq. 0303202)

Introduction of Computer System performance modeling and measurements. Topics covered are performance metrics, statistical analysis and experimental design, analytical modeling, simulation modeling, and measurements techniques.  

0303343– Database Systems II (3 credits) – (Preq. 0303243 )

This course aims at furthering database systems concepts through adding complexity and a more hands-on approach. In particular, it will focus on supporting multi-dimensional data in a DBMS, query optimization, query evaluation, transaction processing and concurrency control in both a centralized and a distributed context. In terms of centralized databases, the course starts from single and multi-dimensional indexing methods, move on to join evaluation algorithms, and talk about query optimization paradigms and then it will focus on the issues of transaction processing, concurrency control and crash recovery as well as issues in a distributed database environment.

0303347 Machine learning (3 CHs) (Preq.  0303243)

This course introduces supervised versus unsupervised learning, data-based model selection, classification, linear discriminant analysis, multiple logistic regression, K-nearest neighborhood, resampling methods, cross-validation, regularization, shrinkage methods, ridge regression, lasso, selecting the tuning parameter, principal components regression, curse of dimensionality, regression splines, local regression, regression tree, bagging, boosting, random forests, support vector machine, principal components, clustering, Neural Network. Use of Python or R software packages.

0303351- Introduction to Data Mining (3 CHs) (Preq.  0303243)

This course provide students with an introduction to data mining, data objects and attribute types, basic statistical descriptions of data, data visualization, data matrix versus dissimilarity matrix, proximity measures for nominal attributes, proximity measures for binary attributes, Minkowski distance, proximity measures for ordinal attributes, data quality, major tasks in data preprocessing, data cleaning, data reduction, data transformation and data discretization, mining frequent patterns, associations, and correlations, decision tree induction, Bayes classification methods, use of Matlab software.

0303373– Advanced Computer Networks (3 credits) – (Preq. 0303272)

This course is a continuation of the previous introduction to computer networks (0303272) course; It will re-visit some of the topics with more depth and a broader view like wireless networks, application layer protocols, and network security. Topics include: wireless LANs; broadband wireless, mobile-IP, TCP/IP Performance Issues, domain name system (DNS), e-mail, world wide web (www) protocols, streaming audio and video, content delivery, network security and cryptography, authentication protocols.

0303382– Computer Graphics (3 credits) – (Preq. 0303201)

This course offers an introduction to the principles, algorithms, and devices for construction and display of computer generated images and animations. Interactive graphic techniques are also covered including: vector, characters, and curve generations, in addition to applications and transformation in 2D and 3D. The course also provides an introduction to computer animation, like rigging for forward and inverse kinematics, skin weighting, morph targets, expression-driven animation, rigid-body and particle simulation. The course includes a hand-on programming lab.

0303401– Academic Writing and Communication Skills (3 credits) – (Preq. )

The course aims to bring students’ knowledge and experience about the fundamentals of academic writing. This course is an introduction to the written communication skills in academic English. The course focuses on the fundamental aspects of writing paragraphs and essays that have unity and coherence. Besides, the course covers how to use scholarly sources in written assignments and how to cite these sources properly without committing plagiarism.

0303405– Data Science II (3 credits) – (Preq. 0303305):

This course introduces students to the axioms of probability, conditional probability, Bayes theorem, random variables, mathematical expectation, some discrete distributions: binomial, geometric, negative binomial, hypergeometric, Poisson, some special continuous distributions: uniform, exponential, normal, gamma, chi-square, decretive study of univariate and bivariate data, correlation coefficient, sampling distribution, estimation, testing hypotheses, simple and multiple regression, logistic regression, one way analysis of variance, categorical data analysis, and use of R software.

0303406– Serious Gaming & Programming (3 credits) – (Preq. 0303202)

This course focuses on the most common types of games that media producers create, serious games. These are games that are used for real-life purposes other than pure entertainment. The context will shape an investigation into game aesthetics, learning, affect and engagement. Students will learn to create simple games using a special game programming tool. Moreover students will also be introduced to the methods and practice of game play-testing.

0303412– Network Programming (4 credits) – (Preq. 0303272)

This course covers networking and Internet protocols programming and hands-on labs. TCP/IP protocol architecture; standard Internet services, and protocol usage by common Internet applications. Sockets programming; client/server; peer-to-peer; Internet addressing; TCP sockets; UDP sockets; raw sockets. Multithreading and exception handling. Finger, DNS, HTTP, and ping clients and servers. Routers and architectures, routing protocols. Router and switch configurations, Internet operating systems. Internetwork setup, network topology, wireless internetworking. Network protocol analyzers; traffic generation.

0303434 Microprocessor (3 CHs) (Preq.  0303233)

This course introduces students to small microprocessor-based systems, with an emphasis on embedded system hardware and software design. Topics will include microprocessor architecture and structure, with an overview of 8- 16- and 32-bit systems, assembly language programming and the use of high-level languages. Basic input/output including parallel communications with and without handshaking and serial protocols. Hardware and software timing. Using interrupts and exceptions. Overview of single-chip microprocessors and controllers with an emphasis on the Freescale HCS12. The internal structure and design of peripheral devices. Memory system design and analysis. The use and structure of development tools such as (cross) assemblers or compilers, monitor programs, simulators, emulators, etc.

0303444– Security and Legal Hacking       (3 credits) – (Preq. 0303372)

This course covers the fundamental concepts and practical applications of computing systems security with a holistic view and an applied approach. Topics include: security concepts and services, physical, operational, and organizational security, the role of people in systems security, introduction to cryptography and public key infrastructure, computing systems hardening, secure code, secure applications development, introduction to ethical hacking, footprinting and reconnaissance, scanning networks, system hacking, malware threats, sniffing, session hacking, hacking websites, hacking mobile platforms, hacking web applications, hacking wireless networks,  evading IDS, firewalls, and honeypots.

0303446– Software Quality Control (3 credits) – (Preq. 0303345)

This course focuses on techniques for ensuring software quality. Here, quality assurance is viewed as an activity that runs through the entire development process: understanding the needs of clients and users; analyzing and documenting requirements; verifying and validating solutions through testing.

By completion of the course, students will be able to understand software quality in its complexity, to see the differences and interconnections among the most popular software quality models, standards, approaches. They will have a solid basis that enables them to make the right selection among software quality models, based on a software company’s own characteristics.

0303453 –Project Management (3 credits) 

This course examines activities related to project planning and estimating project scope and schedule. It also examines processes for managing project resources. Upon completion of this course, students are expected to be able to do the following: Plan and estimate project scope, resources, and schedule.

0303482– Human Computer Interaction (3 credits) – (Preq. 0303382)

Human-computer interaction is an interdisciplinary field that integrates theories and methodologies from computer science, cognitive psychology, design, and many other areas. The course is intended to introduce the student to the basic concepts of human-computer interaction. It will cover the basic theory and methods that exist in the field. The course will unfold by examining design and evaluation. Case studies are used throughout the readings to exemplify the methods presented and to lend a context to the issues discussed. The students will gain principles and skills for designing and evaluating interactive systems.

Among the topics studied are the design and evaluation of effective user interaction designs, including principles and guidelines for designing interactive systems.

During the course the students will be involved with a real problem solving/software development project. Students will be required to gather functional requirements, identify the problem, form a solution and present this solution.

0303483– Intelligent Systems (3 credits) – (Preq. 0303201)

This course introduces students to the field of Artificial Intelligence (AI) with emphasis on its use to solve real world problems for which solutions are difficult to express using the traditional algorithmic approach. It explores the essential theory behind methodologies for developing systems that demonstrate intelligent behavior including dealing with uncertainty, learning from experience and following problem-solving strategies found in nature.

0303485– Biocomputation (3 credits) – (Preq. 0305101)

This course introduces the principles and algorithms used to create computational analytical models for problems in the Life Sciences in general and Biology in particular. Genome sequencing projects, including the completed human genome project, continually generate large datasets of gene and protein sequences. Efficient and optimal analysis of this ever-growing dataset yield important knowledge and information that have direct consequences on the biological aspects. A broad range of topics will be studied to establish a basic understanding and appreciation of the issues and problems of computational biology.  The course includes an applied component, which will introduce programming for biological data and use of a range of web-based Biocomputing utilities. 

0303486– Parallel and Distributed Computing (3 credits) – (Preq. 0303272)

This course aims to introduce student to the basic knowledge of parallel decomposition concepts, Task-based decomposition, Implementation strategies such as threads, Data-parallel decomposition, Strategies such as SIMD and Mapreduce Actors and reactive processes , Consistency in shared memory models, Message passing, Atomicity , Potential for liveness failures and deadlock (causes, conditions, prevention), Composition, Critical paths, work and span, and the relation to Amdahl’s law, Speedup and scalability, Naturally parallel algorithms, Parallel algorithmic patterns (divide-and-conquer, map and reduce, others), Specific algorithms (e.g., parallel MergeSort) .

0303447 Enterprise Information Architecture (3 credits) – (Preq. 0303243)

Enterprise architecture is the organizing logic for business processes and IT infrastructure reflecting the integration and standardization requirements of the company’s operating model. The operating model is the desired state of business process integration and business process standardization for delivering goods and services to customers. Enterprise architecture defines what an organization does; who performs individual functions within the organization; how the organizational functions are performed; and how data is used and stored.

0334261 Serious Gaming Fundamentals (3 credits) – (Preq. 0303202)

This course introduces the area of serious games covering the questions such as: why users prefer some games to others, why people play games, how the game players interact with each other in a gaming environment, what cognitive processes happen during/within game playing. Besides introduction, examples and motivation for serious games, the course offers a deep presentation of gaming tools such as rewards, storyboards, design approaches, social and cognitive factors. Moreover, the methods for targeting certain player behavior are thoroughly explained.

334302 Animation (4 credits) – (Preq. 0303361)

This course is designed to introduce topics related to computer animation, like rigging for forward and inverse kinematics, skin weighting, morph targets, expression-driven animation, rigid-body and particle simulation.

0303484 Computer Vision & Pattern recognition (3 credits) – (Preq. 0303382)

Computer vision and pattern recognition including image preprocessing, feature extraction, Recognition and localization techniques. Techniques for deriving 3-D shape information from 2-D Intensity images such as shape from shading, stereo, motion and texture. Parallel algorithms/ Architectures for computer vision including neural computing.

0303485 Parallel and Distributed Computing (3 credits) – (Preq. 0303234)

An introduction to concurrent and parallel programming, with an emphasis on language constructs. Major topics include: exceptions, co-routines, atomic operations, critical sections, mutual exclusion, semaphores, high-level concurrency, deadlock, inter-process communication, process structuring, shared memory and distributed architectures. Students will learn how to structure, implement and debug concurrent programs.

0303499 Capstone Course (3 credits) – (Dept.)

The main objective of this course is to provide students with the opportunity to build an interdisciplinary hands-on project that encourages to apply the acquired analytical and design skills throughout the entire undergraduate curriculum.  This interactive course gives students an introduction to the basic concepts, techniques and approaches used to develop, implement and succeed in entrepreneurial projects.  Students will work in multidisciplinary teams to design and apply projects to real-world problems. The problems will be identified and selected from a wide range of interest areas, including, health, education, agriculture, technology and industrial and community services. Projects must be aligned with students’ knowledge and skills acquired during their previous university study. The course is composed of modules that provide students with the required skills for capstone projects design and implementation, such as problem identification, project management, leadership, teamwork and professional skills, product and patent research, systems analysis and design methodologies, prototyping and proof of concept methods.

0303496 Internship II (3 credits) – (0303495)

Continuation of Internship 1course (0303495)

0334331 Mobile Game Programing (3 credits) – (Preq. 0303361)

This course focuses on the development of mobile game applications and provides insight into today’s common procedures for developing and publishing mobile applications. Students work in groups to produce mobile games.

0303465 Knowledge Base Systems (3 credits) – (Preq. 0303243)

Topics include Knowledge, Knowledge representation, formal logic, database programming, and recursive programming. Selected language features including reels, arithmetic, type predicates, meta-logic predicates, cuts, and negation are introduced with programming examples. Theory and practice of knowledge-based system construction. Topics will include knowledge base Construction, inference engines, reasoning from incomplete or uncertain information and user Interfaces.

Al-Quds University