Master of Computer Science
Computer science and information technology are ones of the most evolving and progressive fields in the realm of modern sciences. The demand for experts in this applied scientific domain is experiencing a notable upsurge. Given the rapid expansion of its practical domains and the pressing need to cultivate expertise and research skills aligned with the demands of the job market, the Computer Science Department established in 1983 worked on the establishment of a master’s program in computer science in 2002. Subsequently, a master’s track concentrating on software engineering was introduced. The main objective was to provide the market with skillful and proficient individuals in scientific research methodologies and well-versed in the computer science domain’s ongoing advancements. This initiative does not only caters to the aspirations of information technology professionals seeking to augment their education with the latest insights but also empowers them to elevate their research skill, thereby facilitating their progression toward doctoral studies. Moreover, the program strives to refine students’ research and practical proficiencies, positioning them competitively in both local and international markets. The program has three tracks:
- Computer Science
- Software Engineering
- Cyber Physical Systems.
- Qualifying a cadre of professionals and academics to work in fields related to computer science in both the public and private sectors.
- Supplying the local, regional, and international labor market with skilled professionals and researchers in computer science.
- Promoting the methodology of logical and analytical thinking in providing solutions to programming and technical problems.
- Acquiring methodological and scientific research skills.
- Acquiring communication and teamwork skills.
- Integrating students in the atmosphere of scientific research through applied research projects.
- Encouraging students to be creative and innovative.
The program equips the students with comprehensive knowledge, practical skills, and creative capacity within the realm of computer science and information technology. This encompasses both theoretical understanding and hands-on experience, fostering the growth of critical thinking, research expertise, inventive skill, as well as analytical abilities. Furthermore, the program facilitates the optimal utilization of contemporary technologies and cultivates the capacity to plan and implement technological solutions and applications across diverse domains. In addition, the program addresses personal development and refinement, nurturing self-confidence, interpersonal communication, and fostering a collaborative attitude and teamwork. These combined proficiencies empower students to contribute actively, effectively, and apply a positive, constructive influence within society, the local and regional market.
- A bachelor’s degree with an average of at least 70% in computer science or any related field.
- Fulfillment of all general admission requirements announced by Al-Quds University
The Master program of Computer Science program provides opportunities for graduates to obtain a master’s degree in computer science, which enables them to:
- Advance their career and professional position within the organizations they work for.
- Pursue A PhD. Degree in Computer Science.
- Integrate in Scientific Research Institutions.
- Establish their own business, or work as freelancers.
The student must complete a minimum of 30 Credit Hours of course work and a minimum of 6 Credit Hours of Research work (a total of 36 Credit Hours for the MS Degree). The student can choose from one of two tracks:
- MS Thesis Track or
- MS Project/Comprehensive Track.
For both tracks the program offers a concentration on Software Engineering
Table 1. Mandatory Courses (All Tracks)
Mandatory Courses for the MS Program in Computer Science (15 Credit Hours)
|Credit Hours||Course Name||Course No.||No.|
|3||Advanced Computer Architecture||8070520||2|
|3||Design and Theory of Algorithms||8070530||3|
|3||Design of Programming Languages||8070565||4|
|3||Advanced Database Systems||8070580||5|
Table 2. Mandatory Courses for Software Engineering Track
|Mandatory Courses for the for Software Engineering Track (9 Credit Hours)|
|No.||Course No.||Course Name||Credit Hours|
|2||8070572||Software Requirements & Construction||3|
|3||8070574||Software Engineering Management||3|
Table 3. Mandatory Courses for Cyber Physical Systems Track
Mandatory Courses for the for Software Engineering Track (9 Credit Hours)
|No.||Course No.||Course Name||Credit Hours|
|1||8070601||Internet of Things||3|
|3||8070603||Security and Privacy in CPS||3|
Table 4. Elective Courses
Elective Courses for the MS Program in Computer Science (15 Credit Hours)
|The student should select 5 courses (15 Credit Hours) from the following 5 categories. The required courses are shown here as well (shaded) for category classification only.|
|3||Computer System Performance and Measurement||8070507||Software Engineering/Tools||1|
|3||Modeling and discrete Simulation||8070508|
|3||Formal Methods in Software Development||8070514|
|3||Advanced Database Systems (Req.)||8070580|
|3||Software Requirements & Construction||8070572|
|3||Software Requirements Engineering||8070573|
|3||Human Computer Interaction||8070575|
|3||Software Engineering Management||8070574|
|3||Advanced Computer Architecture (Req.)||8070520|
|3||Advanced Computer Networks and Communications||8070524|
|3||Parallel Processing Computer Systems||8070522|
|3||Design and Theory of Algorithms (Req.)||8070530||Theory||3|
|3||Algorithmic Graph Theory||8070535|
|3||Foundations of Computing||8070560|
|3||Design of Parallel Algorithms||8070538|
|3||Pattern Recognition and Analysis||8070502||AI & Pattern Recognition||4|
|3||Design of Programming Languages (Req)||8070565||Other Subjects||5|
|3||Social, Ethical, and Professional Issues||8070588|
1. Mandatory Courses:
8070512 – Distributed systems – (3 Lecture/Recitation/Discussion Credit Hours)
Parallel and distributed operating systems. Load sharing, scheduling, reliability, recovery, memory management. Distributed file systems, distributed agreement, and object-oriented operating systems.
(Prerequisites: Operating Systems and Computer Architecture)
8070520 – Advanced Computer Architecture – (3 Lecture/Recitation/Discussion Credit Hours)
Instruction set architecture. Pipelining, vector processors, cache memory, high bandwidth memory design, virtual memory, input and output. Benchmarking techniques. New developments related to single CPU systems.
(Prerequisites: Operating Systems, Computer Architecture)
8070530 – Design and Theory of Algorithms (3 Lecture/Recitation/Discussion Credit Hours)
Analysis of algorithms. Algorithm design techniques. Efficient algorithms for classical problems. Intractable problems and techniques to handle them.
(Prerequisites: Algorithms and Data Structures, Computability and Formal Language Theory)
8070565 – Design of Programming Languages – (3 Lecture/Recitation/Discussion Credit Hours)
Syntax and Semantics, Data Types, Control, Object-Oriented Languages, Functional Programming Languages, Logic Programming, Parallel Programming. Applications.
(Prerequisites: Formal languages and Compiler Design)
8070580 – Advanced Database Systems (3 Lecture/Recitation/Discussion Credit Hours)
Distributed and object-oriented databases and knowledgebase systems. Design theory, query optimization, and transaction processing.
(Prerequisites: Database Systems)
2. Elective Courses:
8070502 – Pattern Recognition and Analysis – (3 Lecture/Recitation/Discussion Credit Hours)
Algorithms for classifying and understanding data. Statistical and syntactic methods, supervised and unsupervised machine learning. Cluster analysis and ordination. Exploratory data analysis. Methodology for design of classifiers.
(Prerequisites: Algorithms and Data Structures, Linear Algebra, Probability and Statistics)
8070503 – Computer Vision – (3 Lecture/Recitation/Discussion Credit Hours)
Visual information processing problems. Human and machine vision systems. Image formation and transforms. Encoding, enhancement, edge detection, segmentation. 2D and 3D object description and recognition. Scene analysis. Applications.
(Prerequisite: Algorithms and Data Structures, Linear Algebra and Probability and Statistics)
8070507 – Computer System Performance and Measurement – (3 Lecture/Recitation/Discussion Credit Hours)
Queuing network modeling, general analytic techniques, workload characterization, representing specific subsystems, parameterization. Software and hardware monitors, performance measures. Case studies, software packages.
(Prerequisites: Operating Systems, Probability and Statistics)
8070508 – Modelling and Discrete Simulation – (3 Lecture/Recitation/Discussion Credit Hours)
Simulation examples and languages. Mathematical models, Petri Nets, model validation, random variant generation. Analysis of simulation data. Case studies.
(Prerequisites: Algorithms and Data Structures, Probability and Statistics)
8070509 – Neural Networks – (3 Lecture/Recitation/Discussion Credit Hours)
Neuron models: McCulloch-Pitts model, nearest neighbor model. Neural network models: multilayer perception, nearest neighbor based multilayer perception, associative memory. Learning algorithms: the back propagation algorithm, self-organization learning, winner-take-all competitive learning, and evolutionary learning. Applications: character recognition, signal restoration.
8070514 – Formal Methods in Software Development – (3 Lecture/Recitation/Discussion Credit Hours)
Formal specification languages, integrating verification with development. Design and implementation of term project.
(Prerequisites: Mathematical Logic)
8070516 – Genetic Algorithms – (3 Lecture/Recitation/Discussion Credit Hours)
Biological Background, Search Space, Genetic Algorithms: Operators, Parameters, Selection, Encoding, Crossover and Mutation. GA Examples and Applications.
8070522 – Parallel Processing Computer Systems – (3 Lecture/Recitation/Discussion Credit Hours)
Massively parallel SIMD processors, multiprocessor architectures, interconnection networks, synchronization and co. Memory and address space management, process management and scheduling. Parallel compilers, languages, performance evaluation.
8070524 – Advanced Computer Networks and Communications – (3 Lecture/Recitation/Discussion Credit Hours)
Advanced topics in emerging computer networking technologies, including high-speed wide area networks and local area networks, wireless and mobile computing networks, optical networks, and multimedia networking.
(Prerequisites: Computer Networks)
8070526 – Agents Technology – (3 Lecture/Recitation/Discussion Credit Hours)
Action selection and planning, Collaboration between people and agents, Communication between people and agents, Expert assistants. Agent architectures, Interacting with stochastic environments, Reinforcement learning, Multi-agent systems, Game theory and auctions.
8070535 – Algorithmic Graph Theory – (3 Lecture/Recitation/Discussion Credit Hours)
Classical concepts in Graph Theory. Algorithmic aspects of graphs such as finding paths, network flow, spanning trees and matching.
(Prerequisites: Algorithms and Data Structures, Computability and Formal Language Theory, Linear Algebra)
8070538 – Design of Parallel Algorithms – (3 Lecture/Recitation/Discussion Credit Hours)
Current research topics and issues. Models of parallel computation. Implementation of algorithms on SIMD and MIMD machines. Relationship to VLSI.
(Prerequisites: Computer Architecture, 8070530)
8070541 – Artificial Intelligence – (3 Lecture/Recitation/Discussion Credit Hours)
Types of intelligence, knowledge representation, cognitive models. Goal-based systems, heuristic search and games, expert systems. Language understanding, robotics and computer vision, theorem proving and deductive systems, and learning.
(Prerequisites: Artificial Intelligence and Symbolic Programming)
8070543 – Virtual Reality – (3 Lecture/Recitation/Discussion Credit Hours)
Stereoscopic display, Force feedback simulation, haptic devices, viewer tracking, collision detection, visibility computation, time-critical rendering, multiple levels of details (LOD), Image-base VR system, Distributed VR, collaboration over computer network, Interactive modeling, User interface issues, Applications in medicine, simulation, and training.
(Prerequisites: Computer Graphics)
8070545 – Introduction and Laboratory in Knowledge-Based Systems – (3 Lecture/Recitation/Discussion Credit Hours, 3 Lab Hours)
Principled development and deployment of knowledge-based systems. Extensive reading in the historical literature of rule-based systems and approaches to task specific architectures for problem solving. Issues in knowledge acquisition, design problem solving, and qualitative modeling.
(Prerequisites: 8070541 or equivalent)
8070547 – Machine Learning – (3 Lecture/Recitation/Discussion Credit Hours)
Computational study of learning and data mining. Strengths and limitations of various learning paradigms, including supervised learning, learning from scalar reward, unsupervised learning, and learning with domain knowledge.
(Prerequisites: 8070541, Artificial Intelligence, and Symbolic Programming)
8070550 – Multimedia – (3 Lecture/Recitation/Discussion Credit Hours)
Multimedia data technologies. Compression and decompression. Multimedia applications and content authoring. Multimedia servers and file systems. Networked and distributed multimedia systems.
(Prerequisites: Computer Graphics)
8070555 – Net-Centric Computing – (3 Lecture/Recitation/Discussion Credit Hours)
Introduction to net-centric computing . The Web as an example of client-server computing. Building Web applications. Communication and networking. Distributed object systems. Collaboration technology and groupware.
(Prerequisites: Computer Networks, Operating Systems)
8070560 – Foundations of Computing – (3 Lecture/Recitation/Discussion Credit Hours)
Models of computation: Partial recursive functions, Turing machines, alternative models of computing. Basic theory and limitations of computability. Undecidability. Resource-bounded computational complexity, non-determinability, NP-completeness.
(Prerequisites: Computability and Formal Language Theory)
8070570 – Software Engineering – (3 Lecture/Recitation/Discussion Credit Hours)
This course explores advanced topics in software engineering and focuses on new trends and emerging technologies in SE with an emphasis on research skills and review of recent published work. The student is assumed to have already taken an introductory course in SE that had covered the software development process. The first half of the course covers Software development lifecycle models, software processes, user requirements, system models, design, development, testing and integration. In the second half, it focuses on (HCI—Human Computer Interaction) & user interface design; where topics include: human-interactive models, usability design patterns and development methods that can be applied to the design and evaluation of interactive systems, including user-centered design, participatory design, usability engineering, task analysis, cognitive models and human perception, internationalization and localization.
8070572 Software Requirements & Construction
The state-of-the-art and state-of-the-practice in software requirements engineering and software construction methods are explained. Topics include how to determine, specify and validate the requirement (both functional and non-functional) of a software system. In-depth coverage of requirement engineering methods, techniques, tools, notations, or validation techniques for the analysis and specification of software requirements. On the software construction part; the course covers: software construction fundamentals (minimizing complexity, anticipating change, constructing for verification and standards in construction), managing construction (construction models, construction planning and construction measurement) and practical considerations (construction design, construction languages, coding, construction testing, reuse, construction quality, configuration management, automation, and integration).
management tools and conventions through a team project work.
8070574 Software Engineering Management
The course gives in-depth presentation and analysis of the software project management principles, methods, and techniques. It covers: process metrics, planning for a software project, mechanisms for monitoring and controlling schedule, budget, quality, productivity, leadership, motivation, and team building. It also covers: quantitative models of the software lifecycle, cost-effectiveness analysis in software engineering, uncertainty and risk analysis, software cost estimation, and software engineering metrics. Professional skills (like professional, ethical, and legal aspects within individual and team contexts are also explored).
The course is aims to provide students with a comprehensive understanding and analysis of the concepts and techniques for project management, risk assessment and effort estimations, and apply project management techniques and tools through case studies and team project work.
8070575 – Human Computer Interaction – (3 Lecture/Recitation/Discussion Credit Hours)
Principles of HCI. Modeling the user. Interaction. Window management system design. Help systems. Evaluation techniques. Computer-supported collaborative work.
8070585 – Artificial Neural Networks – (3 Lecture/Recitation/Discussion Credit Hours)
Overview of neuro-engineering technology. Basic neural network architectures. Feed forward and feedback networks. Temporal modeling. Supervised and unsupervised learning. Implementation. Basic applications to pattern recognition.
8070588 – Social, Ethical, and Professional Issues – (3 Lecture/Recitation/Discussion Credit Hours)
Short introductory of each of the topics: History of computing; Social context of computing; Methods and tools of analysis; Professional and ethical responsibilities; Risks and liabilities of safety-critical systems; Intellectual property; Privacy and civil liberties; Social implications of the Internet; Computer crime; Economic issues in computing; Philosophical foundations of ethics.
8070590 – Independent Study – (Variable from 1 to 3 Credit Hours)
Independent study of some topic, system, or language not covered in a regular course.
(Prerequisite: Consent of Department)
8070591 – Selected Topics – (Variable from 1 to 3 Credit Hours)
Selected topics in computer science of current interest and importance but not covered in a regular course.
(Prerequisite: Consent of Department)
8070599 – Master’s Thesis Research – (Variable from 1 to 6 Credit Hours-Reenrollment)
Master’s degree Plan A: individual student original research that will lead to an MS Thesis.
(Prerequisite: Consent of Department)
8070598 – Master’s Project Research – (Variable from 1 to 6 Credit Hours-Reenrollment)
Master’s degree Plan B: individual student project; original research, research replication, or survey and reporting on a topic such as system design and development, or system conversion or installation.
Internet of Things (8070601) (3 Credits Hours):
This course gives a foundation in the Internet of Things, including Introduction to IoT, the components, tools, and analysis by teaching the concepts behind the IoT and a look at real-world solutions, its applications, architectures, and technologies, logical Design of IoT, physical design of IoT, IoT Enabling Technologies, IoT & deployment templates, IoT and M2M, Big Data in IoT Systems, IoT Security Techniques, Domain Specific IoTs (Home Automation – Cities – Environment Energy – Retail – Logistics – Agriculture – Industry – Health & Lifestyle)
Security & Privacy in CPS (8070603) (3 Credits Hours):
As specialized computing devices and applications rapidly proliferate into many aspects of everyday life, including: automotive, household automation, computerized manufacturing, and medicine. This course covers modern security and privacy aspects in Cyber-Physical Systems (CPSs). Therefore, the main objective is for students to identify when security (confidentiality, availability and integrity) is required and to be able to choose and implement right solution in CPSs. The course includes overview of terminology and basic concepts in security and privacy, attaining familiarity with range of CPS security threats, examples of concrete attacks, risk management, security technologies and tools, cryptography, security protocols involving CPS components, security policies and standards, wireless security, intrusion detection and prevention, and selected security topics. The essence of the course concentrates on recent developments in security and privacy in CPSs. As a result of rapid development in this field, the exact list of topics is expected to change every few years.
Embedded Systems ( 8070601) (3 Credits Hours):
This course is structured to combine lectures, case studies and tutorials for the students to gain an in-depth understanding of fundamental concepts and knowledge in embedded/cyber-physical systems. This course presents an overview of: design flow, special characteristics with respect to specification techniques and modeling, embedded hardware, standard software, evaluation and validation, mapping of applications to execution platforms, optimizations and testing of embedded/cyber-physical systems
Research Methods (8070501) (3 Credits Hours):
This course provides a general Introduction to scientific research and specific introduction to computer science research, research methods applied to computer science (Feasibility study, Pilot Case, Comparative study, Observational Study, Literature survey, Formal Model, Simulation), and a survey of those methods applied in various subfields of Computer Science, experimental computer science i.e., mathematical modeling of the behavior of computer systems. Topics also include effective reading, effective writing research papers and effective writing thesis proposals. Analysis tools will be introduced, mainly descriptive and inferential statistics, probability, curve fitting and experimental design, data characterizations techniques, and explanation of results will be introduced