Computer Studies Graduate Program Objectives

The primary mission of the Faculty of Computer Science and Information Technology is the advancement of the field of computing through teaching, research, and service. To remain actively engaged in this mission, our graduate programs objectives are:

  1. Graduates will be ready to accept expected research and development responsibilities upon employment and be able to independently design and develop computer software systems and products based on sound theoretical principles and solid software development skills.
  2. Graduates will be aware of and adapt to technological advances through active participation in life-long learning.
  3. Graduates will exhibit technical communication, collaboration and mentoring skills and assume roles both as team members and as team leaders in research and development in the computing field.
  4. Graduates will exhibit a reasoned understanding of professional ethics and the roles of regulations and guidelines in the profession, including global cultural awareness and environmental impacts.
  5. Graduates will be able to generate knowledge in at least one computer science sub-discipline and be ready to pursue academic and research careers at colleges and universities, as well as with national and international industries and laboratories.

The Language of Instruction

All our graduate programs will be instructed in English Language. This is because almost all of knowledge in the computing field is produced in English, in addition, the majority of the Internet content and materials are in English, also most of the successful tech companies often employ staff worldwide, and they must communicate using a common language.

To fully access these resources and to collaborate with others, we will need to make our graduates proficient in reading and writing in English. Hence in-class teaching, exams, projects, textbooks and courses readings all will be delivered in English Language.

 

 

 

 

                                                            

Master of Science in Computer Science and Postgraduate Diploma in Computer Science

 

 

 

 

 

 

Regulations and Curriculum

 

 

 

 

Faculty of Computer Science and Information

Technology

 

University of Science and Technology

 

 

 

 

 

NOV 14, 2007

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Table of Content

 

 

 

  1. Introduction

 

  1. Graduate Programs

 

2.1 Post Graduate Diploma in Computer Science (PGDCS)

 

2.1.1 Program Objectives and structure

2.1.2 Admission Requirements

2.1.3 Requirements for the PGDCS Degree

 

2.2 Master of Science in Computer Science (MSCS)

 

2.2.1 Program Objectives and structure

2.2.2 Admission Requirements

2.2.3 Requirements for the MSCS Degree

                                    2.2.3.1 Required Core Courses

2.2.3.2 Required Courses for Master of Science in  

            Computer Science (MSCS)

 

  1. Credit Requirement

 

  1. Examinations and Grading

 

4.1 Passing Grade

4.2 Grading System

 

Appendix (A) Course Description for PGDCS Degree Course work

Appendix (B) Course Description for MSCS Degree Coursework

 

 

 

 

  1. Introduction

The Faculty of Computer Sciences and Information Technology offers graduate programs leading to both Post Graduate Diploma (PGDCS) and Master of Science (M.Sc.) in Computer Science (MSCCS). The graduate programs provide a foundation in the advanced areas of computer science. Course work includes the theory, design, analysis, and application of computer systems.

In both programs, the coursework is counted in credit hours. In general, a credit hour represents a one-hour class period and at least two hours of individual study each week for one semester. Thus a course of three credit hours would meet for three hours a week and the student would be expected to study for at least six hours outside of class.

  1. Graduate Programs

2.1 Post Graduate Diploma in Computer Science (PGDCS)

2.1.1 Program Objectives and Structure

The Postgraduate Diploma in Computer Science (PGDCS) degree program is specifically designed to prepare candidates to join the Master of Science in the computer science program. The PGDCS program aims to develop in its students:

  • a working foundation of computer science concepts;
  • the basic skills in analysis and design of algorithms and information systems;
  • the ability to implement IT solutions.

Duration of the course:      One year
Number of semesters:        Two semesters
Number of courses:           8 Courses (4 courses per semester)
Credit hours per course:    Three                                                                               Student Project:     6 credit hour’s                                                                             Total Credit hours:            30

 

 

 

2.1.2 Admission Requirements

The Department of Computer Science requires the following minimum standards in admitting to PGDCS. Prospective students for this program are:

(a)  Students with a general B.Sc. in Computer Science graduated from the computer science department or equivalents.

(b) Students with a B.Sc. in a related field such as Information Technology, Information Systems, Computer Engineering, and Mathematics.

2.1.3 Requirements for PGDCS Degree

 (a) PGDCS Degree Course work:

A student has to complete 8 courses of 3 credit hours each as part of the course work for the graduate program. The courses offered are categorized as core courses. The list of core courses is:

 

CS 109   Object-Oriented Programming
CS 110   Data Structures and Algorithms

CS 115   Discrete Mathematics

CS 131   Internet Technologies

CS 230   Computer Networks

CS 222   Computer Organizations and Assembly Programming

CS 225   Operating Systems

CS 270   Database Management Systems
CS 261   Artificial Intelligence
CS 291   Software Engineering
CS 292   System Analysis and Design

The course description is found in appendix (A).

 

(b) Student Project

After successful completion of the course work, students should carry out a project report under the supervision of a department member. An oral exam will be held for the student to defend his/her project report.

2.2 Master of Science in Computer Science Program (MSCS)

2.2.1 Program Objectives and Structure

 

The Master of Science program provides intensive preparation in the concepts and techniques related to the design, programming, and application of computing systems. The program requires the student to take a broad spectrum of courses.

 

 

 

The Master of Science program is designed to provide students with greater skills in the computer science area. In addition to at least 30 credit hours of graduate course work, the student is expected to complete a research project in the form of a thesis or a software program. The M.Sc. program comprises of 2 regular semesters for course work and 1 semester for research work.

The following list outlines the distribution of credits for courses and thesis.

  • Total number of credits 36
  • Course work credits 30
  • Thesis/Project credits 6
  • Graduate Seminar 0 credits

2.2.2 Admission Requirements

Admission requirements to this program are:

  • (a) Applicants with a B.Sc. Honor degree (First class or Second Upper) in computer science or equivalents from computer science department or other equivalent faculty.
  • (b) Applicants with a B.Sc. in computer science or equivalents and obtained at least a CGPA 3.0 from the computer science department or other equivalent faculty.
  • (C) Applicants with a B.Sc. in computer science and a Post Graduate Diploma in computer science (PGDCS) from the computer science department or from any other equivalent faculty with a grade point average of at least 3.00 (B).
    • For those applying with less than the standard preparation, the quality and adequacy of the admissions record will be evaluated by the Graduate Affairs Committee of the Faculty of Computer Science after reviewing the application for admission.

 

2.4.3 Requirements for the M.Sc. in Computer Science Degree

The degree requirements include course work and a research thesis/project, and a graduate seminar.

(a) Course work

A student has to complete 10 courses each as part of the course work for the graduate program. The courses offered are categorized as core courses, specialization courses, and department electives. An M.Sc. student will be required to take five core courses followed by 3 required courses, and two elective courses. The 10 courses should be taken in the first two semesters. The course description is found in appendix (B).

(b) Thesis

After successful completion of the course work, students will conduct a research thesis or a project report under the supervision of a department member. The project is a body of work similar to a thesis in quality but of more limited scope and/or degree of originality. Project topics may include implementation and evaluation of recently published ideas, development of novel software/hardware applications, or improvements of algorithms. The student will state his area of interest for a thesis or a project along with his research plan. Students are encouraged to select a research area of their own interest (but subject to the availability of relevant equipment and department member to supervise the topic).

An oral exam will be held for the student to defend his/her thesis; the Graduate Committee of the Faculty of Computer Science will suggest two department members for the examining committee. One member of the committee could be from outside the department, from another accredited institution, or from the industry. In the case of industry, the member must hold at least a Master’s degree in the relevant field. Upon successful defense, the student will submit his/her thesis for the award of a degree.

(c) Graduate Seminar

This required 0-credits course provides a capstone experience for graduate computer science candidates. Candidates select a topic for independent research during the second semester. The candidate submits a final written report and presents his/her research during a 60-minute seminar. Each candidate presents his/her research once but is required to attend all seminar sessions. The candidate receives a pass/fail grade which appears on the official transcript.

2.2.3.1 Required Core Courses

 

The core course requirements for the Master of Science in Computer Science (MSCS) are the following five 3credits courses:

 

CS341 Concepts of programming language

CS210 Design and Analysis of Algorithms

CS330 Advanced Topics in Computer Networks

CS323 Advanced Topics in Operating Systems

CS344 Advance Topics in Object-Oriented Programming and Concepts

 

2.2.3.2 Required Courses for MSCS

 

Students in the MSCS program must satisfy the current core requirements, plus three of the following required courses

 

CS342 Theory of Automata

CS331 Cryptography & Network Security

CS345 Compiler Design

CS363 Knowledge Engineering and Expert Systems

 

The remaining credits can be accomplished by taking any two elective computer science courses from the following list:

 

CS332 Unix/Linux System Programming

CS255 Computer Graphics

CS371 Advanced Database Management Systems

CS324 Computer Architecture

CS307 Simulation and Modeling

CS382 Parallel Algorithms

CS390 Software System Architecture

CS391Software Project Management

CS334 Wireless Networking

CSxxx  Issues in Computer Science

CSxxx  Issues in Computer Science

 

 

 

  1. Credit Requirement

Students must achieve a grade point average of at least 3.00 (B) to be graduated. The grade point average (GPA) is calculated by the following formula:

GPA = ∑ (obtained course points * course credit hours) / ∑ courses credit hours

A student who fails to meet academic standards, or whose dissertation, thesis, or project is not progressing satisfactorily, may be required to withdraw from the Graduate Studies with the advice and consent of the department.

4. Examinations and Grading

4.1 Passing Grade

Graduate students must maintain a minimum grade of 60 percent (C) in each course exam. A student who fails a course at the graduate level must either repeat it or take another course specified by the Graduate Affairs Committee of the Faculty of Computer Science. A student who has two failures (equivalent to six credits) on his record of diploma or master’s program must withdraw.

4.2 Grading System

At the close of the semester, students receive a final grade in each course. The grade is the professor’s official estimate of the student’s achievement as reflected in examinations, assignments, and class participation. Grades are awarded according to the following scale:

A 85 -100% 4 points Excellent
B+ 75 – 79% 3.5 points Very Good (High)
B 70 – 74% 3 points Very Good (Low)
C+ 66 – 69% 2.5 points Good
C 60 – 65% 2 points  Pass (Fair)
F 0 – 59% 0 points Fail

 

 

Appendix (A)

Course Description for PGDCS

Coursework

Course Numbering Scheme

 

The courses have the following general numbering scheme:

 

CS level Area Identifier

Where

Level

1 = Introductory

2 = Intermediate

3 = Advance

 

Subject Area

0 = Mathematics/Applications

1 = Algorithms

2 = Architecture/OS

3 = Networking

4 = Programming Languages

5 = HCI/Graphics/Multimedia

6 = Intelligent Systems

7 = Information Management

8 = Distributed Systems/Parallel Processing

9 = Software Engineering

             Identifier

             A unique number identify the course within its area.

CS141 Object-Oriented Programming (3)

This course teaches object-oriented programming using the powerful object-oriented language, C++. An in-depth presentation of the syntax, semantics, and pragmatics of C++ is augmented by several modest programming assignments and one major project.

CS111 Data Structures and Algorithms (3)

 

This course provides a study of algorithms and their related data structures, including linear lists, linked lists, trees, graphs, sorting techniques, and dynamic storage allocation. Applications are implemented using an appropriate programming language.

 

 

CS112 Discrete Mathematics (3)

 

Basic counting techniques, graph theory; mathematical logic and Boolean algebra; sets, relations, and functions; mathematical logic, method of proof, permutations, and combinations; inclusion principle; recurrence relations. Petri Nets, Grammars, Languages, Finite State Machines, and Finite State Automata.

 

CS131 Internet Technologies (3)

This course focuses on the technologies and protocols used by the Internet, WAN, and LANs. The fundamental architecture, organization, and routing principles of the Internet are described. Part of the course will focus on emerging Internet technologies.

CS230Computer Networks (3)

This course provides an introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and their applications. Topics to be covered include layered network architectures, applications, network programming interfaces (e.g., sockets), transport, congestion, routing, and data link protocols, local area networks, emerging high-speed networks, network management, and network security. Examples will be drawn primarily from the Internet (e.g., TCP, UDP, and IP) protocol suite.

CS 221 Computer Organizations and Assembly Language Programming (3)

This assembly language programming class includes the architecture and organization of microcomputer systems, fundamentals of assemblers, DOS interrupt-based assembly language programming, and advanced topics in the Intel 80X86 family of microprocessors. Students write several significant programs, assembled and run on Intel 80X86-based microcomputers. The course covers keyboard, screen, disk I/O, character manipulation, and screen graphics. The course also builds a solid foundation in the internal functions and features of the MS-DOS operating system

CS222 Operating Systems (3)

This course provides an introduction to the basic functions of modern operating systems. These include multi-tasking, process synchronization, deadlocks, memory management, virtual memory, file systems, protection, and security. The course also includes a comparative analysis of several popular operating systems such as Windows 98, Windows NT, OS/2, and Linux.

CS270 Database Management Systems (3)

Comparison of various database techniques, Data model, Theory of relation databases, SQL, Query optimization, File allocation, Indexing methods, Transaction processing, Recovery Techniques, Principle of distributed database, the concept of object-oriented database.

 

CS261Artificial Intelligence (3)

Introduction to AI, AI problems and applications, Human Intelligence Vs Machine Intelligence, State-Space search problem, Heuristic search techniques, problem reduction representation, problem reduction search, Knowledge representation techniques, Concept of reasoning in AI, Predicate logic.

CS291 Software Engineering (3)

The Software Development Process Models; Software Requirement Analysis; Design Process; Implementation issues; Software Testing; Project Planning and Scheduling; Development Methodologies; Software configuration Management; Software Metrics; Software Quality Management; Software Standards; CASE tools.

CS 292 System Analyses and Design (3)

Systems development life cycle; analysis and design techniques; information

planning and project identification and selection, requirements collection and structuring, process modeling, data modeling, design of interface and data management, system implementation and operation, system maintenance, and change management implications of systems. Globalization issues in systems. Students will use current methods and tools such as rapid application development, prototyping, and visual development.

 

 

 

 

 

 

 

 

 

 

Appendix (B)

Course Description for MSCS Degree Course work

 

 

Course Numbering Scheme

 

The courses have the following general numbering scheme:

 

CS level Area Identifier

Where

Level

1 = Introductory

2 = Intermediate

3 = Advance

 

Subject Area

0 = Mathematics/Applications

1 = Algorithms

2 = Architecture/OS

3 = Networking

4 = Programming Languages

5 = HCI/Graphics/Multimedia

6 = Intelligent Systems

7 = Information Management

8 = Distributed Systems/Parallel Processing

9 = Software Engineering

             Identifier

             A unique number identify the course within its area.

CS241Concepts of Programming Languages (3)

Programming practices: Program Analysis and construction practices, Programming language classification, data types, structured data types, subprograms, control statements scooping, storage management, Case studies of various language paradigms like Functional PLS, Logical PLS, OOP, Concurrent languages & Structured languages.

CS210 Design and Analysis of Algorithms (3)

The complexity of Algorithms, Space and time analysis, Big O notation Polynomial Reducibility, Divided-and-conquer strategy, the greedy approaches, NP-Complete, NP-hard problems, Dynamic programming, graph algorithms. Emerging issues in algorithms.

CS 330 Advanced Topics in Computer Networks

Introduces the student to advanced computer networking through research, combining lectures and discussion on current computer network topics with student research in a focused area. The focus will change each time the course is offered, thus keeping current with advances in computer networking. Quantitative methods will be emphasized. The successful student will emerge from this course as a minor expert in a specific networking area.

CS323 Advanced Operating Systems (3)

Distributed operating system, parallel operating system, an overview of the operating systems: UNIX, DOS, VMS, Windows NT, Novel Netware 4. xx, LINUX, memory managements, multi-programming, virtual paging, segmentation, the principle of DOP, advanced features of DOP and parallel operating systems.

CS 431 Advance topics in Object Oriented Programming  and concepts

Introduces the student to advance topics in object-oriented concepts and programming techniques. The focus will change each time the course is offered, thus keeping current with advances in object-oriented concepts.

 

CS342Theory of Automata (3)

Formal grammars, Finite state Automata and regular languages, Deterministic and non-deterministic finite automata, Top-down and Bottom-Up approaches, Turning machines.

CS363 Knowledge Engineering and Expert Systems (3)

Knowledge representation models for understanding & problem solving, knowledge organization, representation of episodes, question answering, reconstruction memory, planning, inference mechanisms, and knowledge acquisition models.

CS345 Compiler Design (3)

Classification of languages and grammars, lexical analysis, deterministic, parsing techniques, symbol table processing, code generation, syntax-directed compiling & global optimization.

 

CS331 Cryptography & Network Security

This course provides an introduction to the principles and practice of system and network security. A focus on both fundamentals and practical information will be stressed. The three key topics of this course are cryptography, system security, and network security. Subtopics include ciphers, hashes, key exchange, security services (integrity, availability, confidentiality, etc.), security attacks, vulnerabilities, exploits, and countermeasures.

 

CS324 Computer Architecture (3)

Von Neumann Architecture Instruction set Design, memory design & management methods: Bank switching, indexed mapping, virtual memory, cache memory, RISC and CISC architectures, Device and Logical level I/O handling, multiprocessors, vector, and array processors.

CS255 Computer Graphics (3)

Graphics Systems, Line Algorithms, Polygon Structures, 2D viewing & Projection, 3D viewing & Projection, Clipping, Optimizing with Polygons, Ray tracing, shading, animation, graphic interfaces.

CS 307 Simulation and Modeling

Pseudorandom number generation and testing. Monte Carlo methods. Introduction to distribution functions, Simulation modeling, Discrete-event simulation, Continuous simulation Verification and validation of simulation models, Input analysis, Output analysis, Queuing theory models, Sample applications

 

 

 

CS332 Unix/Linux System Programming

 

This course provides students with a hands-on introduction to UNIX programming topics such as standard application programmer interfaces, concurrent programming, UNIX processes and threads, shell programming, UNIX interprocess communications, client-server designs, and application portability.

 

CS334 Wireless Networking

This course introduces cellular/PCS systems, short-range mobile wireless systems, fixed wireless systems, satellites, and ad hoc wireless systems. It explains in detail the underlying technology as well regulations, politics, and business of these wireless communications systems. It looks beyond the hype, examining just what is and isn’t possible with present-day and future wireless systems. As an advanced graduate course, it will combine extensive reading and in-class discussion of the research literature with in-depth independent research projects of the students’ own choosing.

 

CS382 Parallel Algorithms

This course discusses the recent advances in parallel computations. The course will begin with classification and analysis of parallel models of computation including local memory, shared memory, data flow, and systolic arrays. The focus of the course will be on the design of parallel algorithms. Typical examples of parallel algorithms will include: graph algorithms, merging and sorting, and matrix computations. Much of the material will come from recent journal publications on the subject.

CS390 Software Systems Architectures

This course covers the state-of-the-art architectural design of complex software systems. The course considers commonly-used software system architectures, techniques for designing and implementing these architectures, models, and notations for characterizing and reasoning about architectures, and case studies of actual software system architectures.

 

CS391 Software Project Management

Concepts of the software product and process quality. Role of TQM in software project management. Use of metrics, feasibility studies, and cost and effort estimates. Discussion of project planning and scheduling. The project team and leadership issues. The Capability Maturity Model: basic tenets and application of process evaluation.

 

                                                            

Master of Science in Information Systems and Postgraduate Diploma in Information Systems  

 

 

 

 

 

 

Regulations and Curriculum

 

 

 

 

Faculty of Computer Science and Information

Technology

 

University of Science and Technology

 

 

 

 

 

NOV 14, 2007

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Table of Content

 

 

 

  1. Introduction

 

  1. Graduate Programs

 

2.1 Post Graduate Diploma in Computer Science (PGDCS)

 

2.1.1 Program Objectives and structure

2.1.2 Admission Requirements

2.1.3 Requirements for the PGDCS Degree

 

2.2 Master of Science in Computer Science (MSCS)

 

2.2.1 Program Objectives and structure

2.2.2 Admission Requirements

2.2.3 Requirements for the MSCS Degree

                                    2.2.3.1 Required Core Courses

2.2.3.2 Required Courses for Master of Science in  

            Computer Science (MSCS)

 

  1. Credit Requirement

 

  1. Examinations and Grading

 

4.1 Passing Grade

4.2 Grading System

 

Appendix (A) Course Description for PGDCS Degree Course work

Appendix (B) Course Description for MSCS Degree Coursework

 

 

 

 

  1. Introduction

The Faculty of Computer Sciences and Information Technology offers graduate programs leading to both Post Graduate Diploma (PGDCS) and Master of Science (M.Sc.) in Computer Science (MSCCS). The graduate programs provide a foundation in the advanced areas of computer science. Course work includes the theory, design, analysis, and application of computer systems.

In both programs, the coursework is counted in credit hours. In general, a credit hour represents a one-hour class period and at least two hours of individual study each week for one semester. Thus a course of three credit hours would meet for three hours a week and the student would be expected to study for at least six hours outside of class.

  1. Graduate Programs

2.1 Post Graduate Diploma in Computer Science (PGDCS)

2.1.1 Program Objectives and Structure

The Postgraduate Diploma in Computer Science (PGDCS) degree program is specifically designed to prepare candidates to join the Master of Science in the computer science program. The PGDCS program aims to develop in its students:

  • a working foundation of computer science concepts;
  • the basic skills in analysis and design of algorithms and information systems;
  • the ability to implement IT solutions.

Duration of the course:      One year
Number of semesters:        Two semesters
Number of courses:           8 Courses (4 courses per semester)
Credit hours per course:    Three                                                                               Student Project:     6 credit hour’s                                                                             Total Credit hours:            30

 

 

 

2.1.2 Admission Requirements

The Department of Computer Science requires the following minimum standards in admitting to PGDCS. Prospective students for this program are:

(a)  Students with a general B.Sc. in Computer Science graduated from the computer science department or equivalents.

(b) Students with a B.Sc. in a related field such as Information Technology, Information Systems, Computer Engineering, and Mathematics.

2.1.3 Requirements for PGDCS Degree

 (a) PGDCS Degree Course work:

A student has to complete 8 courses of 3 credit hours each as part of the course work for the graduate program. The courses offered are categorized as core courses. The list of core courses is:

 

CS 109   Object-Oriented Programming
CS 110   Data Structures and Algorithms

CS 115   Discrete Mathematics

CS 131   Internet Technologies

CS 230   Computer Networks

CS 222   Computer Organizations and Assembly Programming

CS 225   Operating Systems

CS 270   Database Management Systems
CS 261   Artificial Intelligence
CS 291   Software Engineering
CS 292   System Analysis and Design

The course description is found in appendix (A).

 

(b) Student Project

After successful completion of the course work, students should carry out a project report under the supervision of a department member. An oral exam will be held for the student to defend his/her project report.

2.2 Master of Science in Computer Science Program (MSCS)

2.2.1 Program Objectives and Structure

 

The Master of Science program provides intensive preparation in the concepts and techniques related to the design, programming, and application of computing systems. The program requires the student to take a broad spectrum of courses.

 

 

 

The Master of Science program is designed to provide students with greater skills in the computer science area. In addition to at least 30 credit hours of graduate course work, the student is expected to complete a research project in the form of a thesis or a software program. The M.Sc. program comprises of 2 regular semesters for course work and 1 semester for research work.

The following list outlines the distribution of credits for courses and thesis.

  • Total number of credits 36
  • Course work credits 30
  • Thesis/Project credits 6
  • Graduate Seminar 0 credits

2.2.2 Admission Requirements

Admission requirements to this program are:

  • (a) Applicants with a B.Sc. Honor degree (First class or Second Upper) in computer science or equivalents from computer science department or other equivalent faculty.
  • (b) Applicants with a B.Sc. in computer science or equivalents and obtained at least a CGPA 3.0 from the computer science department or other equivalent faculty.
  • (C) Applicants with a B.Sc. in computer science and a Post Graduate Diploma in computer science (PGDCS) from the computer science department or from any other equivalent faculty with a grade point average of at least 3.00 (B).
    • For those applying with less than the standard preparation, the quality and adequacy of the admissions record will be evaluated by the Graduate Affairs Committee of the Faculty of Computer Science after reviewing the application for admission.

 

2.4.3 Requirements for the M.Sc. in Computer Science Degree

The degree requirements include course work and a research thesis/project, and a graduate seminar.

(a) Course work

A student has to complete 10 courses each as part of the course work for the graduate program. The courses offered are categorized as core courses, specialization courses, and department electives. An M.Sc. student will be required to take five core courses followed by 3 required courses, and two elective courses. The 10 courses should be taken in the first two semesters. The course description is found in appendix (B).

(b) Thesis

After successful completion of the course work, students will conduct a research thesis or a project report under the supervision of a department member. The project is a body of work similar to a thesis in quality but of more limited scope and/or degree of originality. Project topics may include implementation and evaluation of recently published ideas, development of novel software/hardware applications, or improvements of algorithms. The student will state his area of interest for a thesis or a project along with his research plan. Students are encouraged to select a research area of their own interest (but subject to the availability of relevant equipment and department member to supervise the topic).

An oral exam will be held for the student to defend his/her thesis; the Graduate Committee of the Faculty of Computer Science will suggest two department members for the examining committee. One member of the committee could be from outside the department, from another accredited institution, or from the industry. In the case of industry, the member must hold at least a Master’s degree in the relevant field. Upon successful defense, the student will submit his/her thesis for the award of a degree.

(c) Graduate Seminar

This required 0-credits course provides a capstone experience for graduate computer science candidates. Candidates select a topic for independent research during the second semester. The candidate submits a final written report and presents his/her research during a 60-minute seminar. Each candidate presents his/her research once but is required to attend all seminar sessions. The candidate receives a pass/fail grade which appears on the official transcript.

2.2.3.1 Required Core Courses

 

The core course requirements for the Master of Science in Computer Science (MSCS) are the following five 3credits courses:

 

CS341 Concepts of programming language

CS210 Design and Analysis of Algorithms

CS330 Advanced Topics in Computer Networks

CS323 Advanced Topics in Operating Systems

CS344 Advance Topics in Object-Oriented Programming and Concepts

 

2.2.3.2 Required Courses for MSCS

 

Students in the MSCS program must satisfy the current core requirements, plus three of the following required courses

 

CS342 Theory of Automata

CS331 Cryptography & Network Security

CS345 Compiler Design

CS363 Knowledge Engineering and Expert Systems

 

The remaining credits can be accomplished by taking any two elective computer science courses from the following list:

 

CS332 Unix/Linux System Programming

CS255 Computer Graphics

CS371 Advanced Database Management Systems

CS324 Computer Architecture

CS307 Simulation and Modeling

CS382 Parallel Algorithms

CS390 Software System Architecture

CS391Software Project Management

CS334 Wireless Networking

CSxxx  Issues in Computer Science

CSxxx  Issues in Computer Science

 

 

 

  1. Credit Requirement

Students must achieve a grade point average of at least 3.00 (B) to be graduated. The grade point average (GPA) is calculated by the following formula:

GPA = ∑ (obtained course points * course credit hours) / ∑ courses credit hours

A student who fails to meet academic standards, or whose dissertation, thesis, or project is not progressing satisfactorily, may be required to withdraw from the Graduate Studies with the advice and consent of the department.

4. Examinations and Grading

4.1 Passing Grade

Graduate students must maintain a minimum grade of 60 percent (C) in each course exam. A student who fails a course at the graduate level must either repeat it or take another course specified by the Graduate Affairs Committee of the Faculty of Computer Science. A student who has two failures (equivalent to six credits) on his record of diploma or master’s program must withdraw.

4.2 Grading System

At the close of the semester, students receive a final grade in each course. The grade is the professor’s official estimate of the student’s achievement as reflected in examinations, assignments, and class participation. Grades are awarded according to the following scale:

A 85 -100% 4 points Excellent
B+ 75 – 79% 3.5 points Very Good (High)
B 70 – 74% 3 points Very Good (Low)
C+ 66 – 69% 2.5 points Good
C 60 – 65% 2 points  Pass (Fair)
F 0 – 59% 0 points Fail

 

 

Appendix (A)

Course Description for PGDCS

Coursework

Course Numbering Scheme

 

The courses have the following general numbering scheme:

 

CS level Area Identifier

Where

Level

1 = Introductory

2 = Intermediate

3 = Advance

 

Subject Area

0 = Mathematics/Applications

1 = Algorithms

2 = Architecture/OS

3 = Networking

4 = Programming Languages

5 = HCI/Graphics/Multimedia

6 = Intelligent Systems

7 = Information Management

8 = Distributed Systems/Parallel Processing

9 = Software Engineering

             Identifier

             A unique number identify the course within its area.

CS141 Object-Oriented Programming (3)

This course teaches object-oriented programming using the powerful object-oriented language, C++. An in-depth presentation of the syntax, semantics, and pragmatics of C++ is augmented by several modest programming assignments and one major project.

CS111 Data Structures and Algorithms (3)

 

This course provides a study of algorithms and their related data structures, including linear lists, linked lists, trees, graphs, sorting techniques, and dynamic storage allocation. Applications are implemented using an appropriate programming language.

 

 

CS112 Discrete Mathematics (3)

 

Basic counting techniques, graph theory; mathematical logic and Boolean algebra; sets, relations, and functions; mathematical logic, method of proof, permutations, and combinations; inclusion principle; recurrence relations. Petri Nets, Grammars, Languages, Finite State Machines, and Finite State Automata.

 

CS131 Internet Technologies (3)

This course focuses on the technologies and protocols used by the Internet, WAN, and LANs. The fundamental architecture, organization, and routing principles of the Internet are described. Part of the course will focus on emerging Internet technologies.

CS230Computer Networks (3)

This course provides an introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and their applications. Topics to be covered include layered network architectures, applications, network programming interfaces (e.g., sockets), transport, congestion, routing, and data link protocols, local area networks, emerging high-speed networks, network management, and network security. Examples will be drawn primarily from the Internet (e.g., TCP, UDP, and IP) protocol suite.

CS 221 Computer Organizations and Assembly Language Programming (3)

This assembly language programming class includes the architecture and organization of microcomputer systems, fundamentals of assemblers, DOS interrupt-based assembly language programming, and advanced topics in the Intel 80X86 family of microprocessors. Students write several significant programs, assembled and run on Intel 80X86-based microcomputers. The course covers keyboard, screen, disk I/O, character manipulation, and screen graphics. The course also builds a solid foundation in the internal functions and features of the MS-DOS operating system

CS222 Operating Systems (3)

This course provides an introduction to the basic functions of modern operating systems. These include multi-tasking, process synchronization, deadlocks, memory management, virtual memory, file systems, protection, and security. The course also includes a comparative analysis of several popular operating systems such as Windows 98, Windows NT, OS/2, and Linux.

CS270 Database Management Systems (3)

Comparison of various database techniques, Data model, Theory of relation databases, SQL, Query optimization, File allocation, Indexing methods, Transaction processing, Recovery Techniques, Principle of distributed database, the concept of object-oriented database.

 

CS261Artificial Intelligence (3)

Introduction to AI, AI problems and applications, Human Intelligence Vs Machine Intelligence, State-Space search problem, Heuristic search techniques, problem reduction representation, problem reduction search, Knowledge representation techniques, Concept of reasoning in AI, Predicate logic.

CS291 Software Engineering (3)

The Software Development Process Models; Software Requirement Analysis; Design Process; Implementation issues; Software Testing; Project Planning and Scheduling; Development Methodologies; Software configuration Management; Software Metrics; Software Quality Management; Software Standards; CASE tools.

CS 292 System Analyses and Design (3)

Systems development life cycle; analysis and design techniques; information

planning and project identification and selection, requirements collection and structuring, process modeling, data modeling, design of interface and data management, system implementation and operation, system maintenance, and change management implications of systems. Globalization issues in systems. Students will use current methods and tools such as rapid application development, prototyping, and visual development.

 

 

 

 

 

 

 

 

 

 

Appendix (B)

Course Description for MSCS Degree Course work

 

 

Course Numbering Scheme

 

The courses have the following general numbering scheme:

 

CS level Area Identifier

Where

Level

1 = Introductory

2 = Intermediate

3 = Advance

 

Subject Area

0 = Mathematics/Applications

1 = Algorithms

2 = Architecture/OS

3 = Networking

4 = Programming Languages

5 = HCI/Graphics/Multimedia

6 = Intelligent Systems

7 = Information Management

8 = Distributed Systems/Parallel Processing

9 = Software Engineering

             Identifier

             A unique number identify the course within its area.

CS241Concepts of Programming Languages (3)

Programming practices: Program Analysis and construction practices, Programming language classification, data types, structured data types, subprograms, control statements scooping, storage management, Case studies of various language paradigms like Functional PLS, Logical PLS, OOP, Concurrent languages & Structured languages.

CS210 Design and Analysis of Algorithms (3)

The complexity of Algorithms, Space and time analysis, Big O notation Polynomial Reducibility, Divided-and-conquer strategy, the greedy approaches, NP-Complete, NP-hard problems, Dynamic programming, graph algorithms. Emerging issues in algorithms.

CS 330 Advanced Topics in Computer Networks

Introduces the student to advanced computer networking through research, combining lectures and discussion on current computer network topics with student research in a focused area. The focus will change each time the course is offered, thus keeping current with advances in computer networking. Quantitative methods will be emphasized. The successful student will emerge from this course as a minor expert in a specific networking area.

CS323 Advanced Operating Systems (3)

Distributed operating system, parallel operating system, an overview of the operating systems: UNIX, DOS, VMS, Windows NT, Novel Netware 4. xx, LINUX, memory managements, multi-programming, virtual paging, segmentation, the principle of DOP, advanced features of DOP and parallel operating systems.

CS 431 Advance topics in Object Oriented Programming  and concepts

Introduces the student to advance topics in object-oriented concepts and programming techniques. The focus will change each time the course is offered, thus keeping current with advances in object-oriented concepts.

 

CS342Theory of Automata (3)

Formal grammars, Finite state Automata and regular languages, Deterministic and non-deterministic finite automata, Top-down and Bottom-Up approaches, Turning machines.

CS363 Knowledge Engineering and Expert Systems (3)

Knowledge representation models for understanding & problem solving, knowledge organization, representation of episodes, question answering, reconstruction memory, planning, inference mechanisms, and knowledge acquisition models.

CS345 Compiler Design (3)

Classification of languages and grammars, lexical analysis, deterministic, parsing techniques, symbol table processing, code generation, syntax-directed compiling & global optimization.

 

CS331 Cryptography & Network Security

This course provides an introduction to the principles and practice of system and network security. A focus on both fundamentals and practical information will be stressed. The three key topics of this course are cryptography, system security, and network security. Subtopics include ciphers, hashes, key exchange, security services (integrity, availability, confidentiality, etc.), security attacks, vulnerabilities, exploits, and countermeasures.

 

CS324 Computer Architecture (3)

Von Neumann Architecture Instruction set Design, memory design & management methods: Bank switching, indexed mapping, virtual memory, cache memory, RISC and CISC architectures, Device and Logical level I/O handling, multiprocessors, vector, and array processors.

CS255 Computer Graphics (3)

Graphics Systems, Line Algorithms, Polygon Structures, 2D viewing & Projection, 3D viewing & Projection, Clipping, Optimizing with Polygons, Ray tracing, shading, animation, graphic interfaces.

CS 307 Simulation and Modeling

Pseudorandom number generation and testing. Monte Carlo methods. Introduction to distribution functions, Simulation modeling, Discrete-event simulation, Continuous simulation Verification and validation of simulation models, Input analysis, Output analysis, Queuing theory models, Sample applications

 

 

 

CS332 Unix/Linux System Programming

 

This course provides students with a hands-on introduction to UNIX programming topics such as standard application programmer interfaces, concurrent programming, UNIX processes and threads, shell programming, UNIX interprocess communications, client-server designs, and application portability.

 

CS334 Wireless Networking

This course introduces cellular/PCS systems, short-range mobile wireless systems, fixed wireless systems, satellites, and ad hoc wireless systems. It explains in detail the underlying technology as well regulations, politics, and business of these wireless communications systems. It looks beyond the hype, examining just what is and isn’t possible with present-day and future wireless systems. As an advanced graduate course, it will combine extensive reading and in-class discussion of the research literature with in-depth independent research projects of the students’ own choosing.

 

CS382 Parallel Algorithms

This course discusses the recent advances in parallel computations. The course will begin with classification and analysis of parallel models of computation including local memory, shared memory, data flow, and systolic arrays. The focus of the course will be on the design of parallel algorithms. Typical examples of parallel algorithms will include: graph algorithms, merging and sorting, and matrix computations. Much of the material will come from recent journal publications on the subject.

CS390 Software Systems Architectures

This course covers the state-of-the-art architectural design of complex software systems. The course considers commonly-used software system architectures, techniques for designing and implementing these architectures, models, and notations for characterizing and reasoning about architectures, and case studies of actual software system architectures.

 

CS391 Software Project Management

Concepts of the software product and process quality. Role of TQM in software project management. Use of metrics, feasibility studies, and cost and effort estimates. Discussion of project planning and scheduling. The project team and leadership issues. The Capability Maturity Model: basic tenets and application of process evaluation.

 

University of Science and Technology

 

Faculty of Computer Science and Information Technology

Master of Science in Information Technology Program

  1. Introduction

Information Technology is now fundamental in every aspect of our daily lives. IT systems and technologies are essential for delivering everyday services such as banking, booking, web-based services, and information systems.

Information Technology is and will remain, central to our technological society. As such, there is a strong demand for IT professionals in all sectors of industry. Graduates of this course are highly employable in a wide range of technical disciplines.

The M.Sc. in Information Technology focuses on programming, software engineering, and development methodologies, but it also provides a broad-based coverage of relevant subjects including networks and the Internet, databases, information security, system and network administration, multimedia, and computer graphics, and user interface design.

  1. Program Objective

The program objectives are:

  • to produce graduates who master top on the shelf methodologies, techniques, and tools in a wide range of emerging IT topics such as application development, networking, data mining, and security.
  • To produce graduates with essential research capabilities that allow them to undergo in-depth research in any IT field.
  1. Learning Outcomes

Our graduates are expected to master the following:

  • Software analysis and design methodologies and implementation technologies.
  • Web-based application development technologies.
  • Networking management and networking security tools.
  • Data mining techniques and tools.
  • Identification of organizational security needs and protection controls.
  1. Career Opportunities

Graduates are expected to be capable of taking up technical or management positions in the IT industry and to be employable in a wide range of technical disciplines such as:

  • Programming
    • Software Engineering
    • Application Development
    • Network Management and Administration
    • Database Development
    • Information Security
  1. Admission Requirement

Admission to this program requires satisfaction of either of the following:

  • Graduates with a first-classSc. degree in Information Technology, Information System, or Computer Science from the University of Science and Technology or any recognized equivalent university.
  • Graduates with a Second upper-classSc. in Information Technology, Information System, or Computer Science from the University of Science and Technology or any recognized equivalent university.
  • Graduates with a Second lower class B.Sc. in Information Technology, Information System, or Computer Science from the University of Science and Technology or any recognized equivalent university with an adequate working experience in a related area.
  • Graduates with a first-class B.Sc. degree in a related discipline to Information Technology, such as software Engineering, Computer Systems, from the University of Science and Technology or any recognized equivalent university.
  1. Awarded Degree

The degree of Master of Science in Information Technology will be awarded in the successful completion of 30 credit hours of course work and 6 credit hours of research or project in IT.

  1. Program Structure

The M.Sc. in Information technology is an 18-month full-time program; it encompasses two semesters of course work and one semester for a research or project dissertation.

7.1 Course work

The program coursework consists of 4 core courses and 6 elective courses. The course work is spread over two semesters. In each semester at least 5 courses are taught. Table (1) shows the core courses and table (2) shows a list of selected elective courses which can be subject to change.

The courses taught to cover the following strands:

  • Object-Oriented Programming: how to analyze, design, and implement systems using Object-Oriented Programming.
  • Networking: Understanding of advanced networking technologies such as wireless networks and mobile Ad-hoc networks.
  • Web-based Applications: How to analyze, design, and implement data-intensive web-based applications using top-of-the-shelf technologies.
  • Data Mining: Understanding of principles of data mining techniques and tools.
  • Information Security: Understanding of information security characteristics, risk management, threats, and countermeasures.

 

Course Code Course Name Credit Hours
ITC01 Advanced Object-Oriented Programming in Java 3
ITC02 Advanced Computer Networking 3
ITC03 Advanced Web-Based Applications 3
ITC04 Advanced-Data Mining Techniques 3

Table (1): Core Courses

 

Course Code Course Name Credit Hours
ITE01 Advanced Multimedia Technologies 3
ITE02 Advanced User Interface Design 3
ITE03 Advanced Web Technologies 3
ITE04 Advanced Machine Learning 3
ITE05 Advanced Databases 3
ITE06 Artificial Intelligence Applications 3
ITE07 Security in Mobile Adhoc Networks 3
ITE08 Advance Network Administration 3
ITE9 Advanced Information Security Issues 3
ITE10 Mobile Applications
ITE11 Object-Oriented Analysis and Design 3
ITE12 Advanced Software Engineering 3

Table (2): Elective Courses

Table (3) shows one possible study plan for the program

Semester 1
Course Code Course Name Credit Hours
ITC01 Advanced Object-Oriented Programming in Java 3
ITC02 Advanced Computer Networking 3
ITE01 Advanced Multimedia Technologies 3
ITE05 Advanced Database 3
ITE03 Advanced Web Technologies 3
ITE12 Advanced Software Engineering 3
Semester 2
ITC03 Advanced Web-Based Applications 3
ITC04 Advanced-Data Mining Techniques 3
ITE04 Advanced  Machine Learning 3
ITE02 Advanced User Interface Design 3
ITE06 Artificial Intelligence Applications 3
ITE9 Advanced Information Security Issues 3
Semester 3
ITC05 Research or Project Dissertation 6

Table (3): Study Plan Example

7.2 Research or Project Dissertation

To complete the M.Sc. degree students must undertake in the third semester:

A research or project in IT emerging topic proposed by a student or staff member and approved by the Program Research and Projects Board (PRPB).

  1. Assessment
  2. Course Assessment

 

Course assessment is based on the following criteria:

 

  • 30% – 40% for coursework, which encompasses quizzes, tests, Laboratory assignments, written assignments, and students’ seminars.
  • 60% – 70% for Exams.
  1. Grading System

Grades will be based on the following scale:

Mark Grade
>= 80 A
75 – 79 B+
70 -74 B
65 – 69 C+
60 – 64 C
< 60 F

 

  1. Student Performance Evaluation

Students’ performance is evaluated per semester out of 5 courses (including all core courses) according to the following rules:

  • Semester 1
  • A student will be withdrawn if he achieves 2 F in core courses or any 3 F.
  • Semester 2
  • A student will be withdrawn if his accumulated achievement in the two semesters is at least 2 F in core courses or any 3 F.
  • A student with one F in a core or elective core or with 2F at most one of them is core has to sit for supplementary exams.
  • A student will be withdrawn if he achieves an F in any supplementary exam.
  • A student will be awarded Postgraduate Diploma in Information Technology if he passed 8 or 9 courses.

– Semester 3

  • A student will resubmit new research or project if he got F in the research or project dissertation.
  1. Research or Project Dissertation Evaluation

The student research or project dissertation is a complementary requirement that students should fulfill. The student must submit a research or project dissertation to the Program Research and Projects Board by the end of the third semester. External and internal examiners will be assigned by the PRPB to evaluate the dissertation and student defense. A Pass or Fail is the only grade for the final evaluation.

  1. Academic Support Services
  • Library Services

The Library, located in the Postgraduate Buildings, provides the program students with a full range of resources including books, online journal databases, and online Internet Services.  Librarians are available to assist in locating information.

  • Tutoring Services

The faculty of Computer Science and Information Technology offers tutoring in various forms at no cost to the program students at the Tutoring and Testing Lab. Tutors are available at convenient times throughout the week.

  • Open Computing Lab      

The Open Computing Lab provides free computing for students at convenient times throughout the week.  The computer lab is staffed by trained Lab Assistants and offers the use of approximately 25 computers, a scanner, and a laser printer.

 

 

 

 

 

Course Description

 

Course Code: ITC01

Course Name: Advanced Object-Oriented Programming in Java

Credit Hours:   3

Course description

This course provides students with advanced java packages that allow them to develop real large-scale applications that implement GUI and manipulate files. Besides advanced database and networking concepts and programming techniques are provided.

Learning Outcomes

At the completion of this course, the student should be able to:

  • Develop file handling, Swing-based GUI programs.
  • Develop client/server and TCP/IP socket applications.
  • Update and retrieve data from databases using SQL
  • Develop distributed applications using RMI and component-based Java software using JavaBeans.
  • Develop server-side programs in the form of Servlets.

Course Outlines

  • Introduction to Swing Components
  • Advanced GUI
  • Layout Managers
  • Events and Event Handling
  • Using Menus
  • Graphics
  • Applets, Images, and Sound
  • Design patterns for large-scale system architecture
  • Java Database Connectivity
  • Network Programming
  • Java Beans
  • Serverlets

Evaluation Methods: Assignments, Tests, Exams.

20 % Coursework Mark.

40%  Laboratory Exam Mark.

40 % Final Exam Mark

Textbooks:

  • Joyce Farrell, Java Programming, Sixth Edition, 2012, Course Technology, Cengage Learning.

Required Further Readings: To be determined by the constructor.

 

Course Code:      ITC02

Course Name:     Advanced Computer Networking

Credit Hours:      3

Course Description

The main goal of this course is to provide a deeper insight into the area of computer networks; the topics include the advanced features of IPv6 protocol, mobile computing, mobile Ad-hoc networks, routing protocols in MANET, and mechanisms for ensuring reliable communication. Performance issues in computer networks. Recent research papers will be assigned, presented, and discussed

Learning Outcomes

At the completion of this course, the student should be able to:

  • Know the features and benefits of the IPv6 network protocol and become able to design and implement an IPv6 network.
  • Compare various routing protocols in terms of efficiency, path selection algorithms, and scalability in mobile ad hoc networks.
  • Understand, evaluate and select appropriate network designs and protocols
  • Know basic principles in the area of mobile networks

Course Outlines

  • IPv6 routing
  • IPv6 Transition Technologies
  • Introduction to mobile computing
  • Mobile Ad Hoc Networks
  • Proactive routing protocols
  • Reactive routing protocols
  • Hybrid routing protocols
  • Multicast routing protocols for MANETs.
  • Performance comparison of routing protocols

Evaluation Method (Assignments/Tests/Exams)

15 % Coursework Mark.

15% Paper Presentation Mark.

70 % final Exam Mark

Textbooks:

  1. Joseph Davies, Understanding Ipv6, second edition,2011
  2. J, Wu, Handbook On Theoretical And Algorithmic Aspects Of Sensor, Ad Hoc Wireless, And Peer-to-Peer Network, CRC Press,2006

Required Further Readings

  • Camp, Tracy, Jeff Boleng, and Vanessa Davies. “A survey of mobility models for ad hoc network research.” Wireless communications and mobile computing 2.5 (2002): 483-502.
  • Gupta, Anuj K., Harsh Sadawarti, and Anil K. Verma. “Performance analysis of AODV, DSR & TORA routing protocols.” IACSIT international journal of Engineering and Technology 2.2 (2010): 226-231.
  • Johnson, David, Charles Perkins, and Jari Arkko. “Mobility Support in IPv6.” (2004).

 

Course Code:      ITC03

Course NameAdvanced Web-Based Applications

Credit Hours:      3

Course Description

Although the World-Wide Web was initially conceived as a vehicle for delivering documents, it is now being used as a platform for sophisticated interactive applications. Web-based applications offer numerous advantages, such as instant access, automatic upgrades, and opportunities for collaboration on a massive scale. This course teaches the student how to develop data-intensive web applications using Web ML.

 

Learning Outcomes

Upon completion of this course the student will be able to:

  • Analyze web-based application requirement
  • Design and implement a data-intensive web-based applications

Course Outlines

  • Technologies for Web Applications
  • Models for Designing Web Applications
  • Data Model
  • Hypertext Model
  • Content Management Model
  • Advanced Hypertext Model
  • Overview of the Development Process
  • Requirements Specifications
  • Data Design
  • Hypertext Design
  • Architecture Design
  • Data Implementation
  • Hypertext Implementation
  • Advanced Hypertext Implementation

Evaluation Method (Assignments/Tests/Exams)

15 % Coursework Mark.

45% Projects Mark.

40 % final Exam Mark

Textbooks

Stefano Seri, et al, Designing Data-Intensive Web Applications, © 2003 by Elsevier Science (USA).

Required Further Readings: To be determined by the Instructor.

 

Course Code: ITC04

Course Name: Advanced Data mining techniques

Credit Hours:     3           

Course Description

Advanced-Data Mining Techniques emphasizes advanced concepts and techniques for data mining and their applications to large-scale data warehouses.  The course discusses basic concepts and principles of data mining, algorithms in classification, and clustering and then covers advanced topics on data mining; mining patterns from temporal data, sequence data, graph data, semi-supervised learning, active learning, learning to learn, boosting and distributed data mining.

The course will also cover the architecture and implementation of data warehouses, data preprocessing (including data cleansing), and the choice of mining algorithms for applications.

In addition to discriminative models such as CRF and SVM models, the course will also introduce generative models such as Bayesian Net.

Learning Outcome

Upon successful completion of this course, students will obtain the following outcomes:

  • Good knowledge of how to find and evaluate relevant technical information on a topic.
  • Gain an understanding of the problems and techniques used for a set of advanced data mining application areas.
  • Learn the detailed concepts of a specific advanced data mining topic.
  • Experience in how to implement data mining algorithms.

Course Outlines

The following schedule is subject to change but gives an idea of how the course will progress:

  • Definition of data mining and DM techniques
  • DM applications
  • Clustering
  • Association rules
  • Fundamentals of model selection.
  • Predictive models for classification.
  • ROC approach to the cost-sensitive analysis of classifiers.
  • Predictive models for regression.
  • Estimation of significance.
  • Associative learning and decision trees.
  • Affinity models.
  • Preprocessing of data. Feature selection and feature reduction.
  • Density estimation and clustering.
  • Overview of mining complex types of data.

Evaluation Method (Assignments/Tests/Exams):

  • 15 % Coursework Mark.
  • 25% Projects Mark.
  • 60 % final Exam Mark

Textbooks:

  1. Data Mining Concepts and Techniques (Second Edition), Jiawe Han & Micheline Kamber, Morgan Kaufman Publishers, 2005, ISBN 1558609016.
  2. Mining of Massive Datasets by Anand Rajaraman and Jeff Ullman, Cambridge University Press, 2011
  3. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations, Ian H. Witten and Eibe Frank, Morgan Kaufmann Publishers

Required Further Readings: To be determined by the Instructor.

 

 

 

Course Code: ITE01

Course Name: Advanced Multimedia Technologies

Credit Hours:     3           

Course Description

Multimedia technology is a topic with a great number of applications. In this course, we study all the three layers that multimedia systems lay on: applications, middleware, and networking. This course has the intention of covering introductory, intermediate, and advanced topics in multimedia technology.

Research and educational activities during the course are based on selected literature from textbooks as well as from research papers from the top-ranked scientific journals and conferences.
Learning Outcome

Upon successful completion of this course, students should have:

  • A deep knowledge of the evolution and convergence of multimedia communications.
  • Updated knowledge concerning the technology framework for multimedia systems, multimedia networking, conferencing, multicasting, as well as e-content and multimedia annotation.

Course Outlines

The following schedule is subject to change but gives an idea of how the course will progress:

  • Encoding Applications (MVC/3DTV, HDTV, HD DVD, Blue-Ray)
  • Multimedia Communications
  • Video transmission
  • Transport Protocols RTP/RTSP/RTCP
  • Streaming Applications (streaming servers, media conferences, web radio, IP TV, P2P TV)
  • IP Telephony (VoIP)
  • 323/SIP
  • VoIP servers
  • Mobile multimedia
  • Wireless multimedia
  • Μοbile TV (DVB, MBMS)
  • IMS
  • Quality Of Service in Multimedia services
  • Multimedia services categorization
  • Network parameters
  • DiffServ
  • RSVP
  • MPLS
  • QoS in mobile and wireless
  • Multimedia application adaptation
  • media transcoding and conversion
  • Multimedia content annotation

Evaluation Method (Assignments/Tests/Exams):

  • 15 % Coursework Mark.
  • 25% Projects Mark.
  • 60 % final Exam Mark

Text books:

“Introduction to Multimedia Communications: Applications, Middleware,  Networking” by Kamisetty Rao, Zoran Bojkovic, and Dragorad Milovanovic (Hardcover – Jan 3, 2006)

Required Further Readings: To be determined by the Instructor.

 

Course Code: ITE02

Course Name:  Advanced User Interface Design

Credit Hours:    3

Course description

ITE02 focuses on building applications with a graphical user interface (GUI) for the Microsoft Windows operating system, other operating systems, mobile devices, and the Web.

ITE02 Topics include the Win32 API, messaging, event-driven programming, window creation and management, dialog boxes, dynamic link libraries, multiple document interfaces, RAD tools, the .NET Framework, and Human-Computer Interaction (HCI).

The VB .NET and Java programming languages will be utilized to build GUI applications.

Learning Outcome

Upon completion of this course, students will obtain the following outcomes:

  • understanding of fundamental graphical user interface concepts
  • understanding of the object-oriented programming paradigm
  • experience writing GUI programs in Java using Swing classes
  • experience writing GUI programs using the .NET framework
  • experience using drag-and-drop GUI design software
  • greater understanding of the software development process

Course Outlines

The following schedule is subject to change but gives an idea of how the course will progress:

  • Creating Applications
  • The Control Cornucopia
  • Common dialog boxes
  • Animation
  • Usability and Universality
  • GUI Component Bloopers
  • Intro to VB.NET & Custom Controls
  • Mobile device interfaces
  • Media Player
  • Layout and Appearance Bloopers
  • Textual Bloopers
  • GUI development with Java
  • Linux GUI interfaces
  • Web interfaces

 

Evaluation Method (Assignments/Tests/Exams):

  • 15 % Coursework Mark.
  • 25% Projects Mark.
  • 60 % final Exam Mark

Textbooks:

  1. Software Engineering, Ian Sommerville, 2004, 7th edition
  2. Programming Microsoft Windows Forms by Charles Petzold (2006). ISBN: 0735621535
  3. GUI Bloopers: Don’ts and Do’s for Software Developers and Web Designers by Jeff Johnson (2000). ISBN: 1558605827
  4. The Windows Interface Guidelines — A Guide for Designing Software
  5. People and Computers XIX – The Bigger Picture, Tom McEwan, Jan Gulliksen, and David Benyon (Eds)
  6. Required Further Readings: To be determined by the Instructor.

Course Code:      ITE03

Course Name:     Advanced Web Technologies

Credit Hours:      3

Course description

This course will introduce concepts in programming web application servers. It covers the study of the fundamental architectural elements of programming websites that produce content dynamically. The primary technology introduced will be Java Servlets and Java Server Pages (JSPs), but we will also cover the related topics as necessary so that students may build significant applications

Learning Outcomes

Upon successful completion of this course, students will be able to:

  • Use Web development technologies such as HTML, XML,AJAX
  • Design and implement Dynamic Web sites

 

Course Outlines

  • JavaBeans
  • Design Patterns (e.g., Abstract Factories and Model-View-Controller)
  • Tag Libraries (JSTL)
  • Relational Databases (MySQL/JDBC)
  • Object-Relation Mapping tools (BeanFactory)
  • Security (including SSL)
  • AJAX (including JavaScript and the DOM)
  • Web Services (SOAP/WSDL/UDDI)
  • Frameworks (Struts)
  • Internationalization
  • Scalability and Performance Issues

Several tools, software packages, and example web applications will be demonstrated

Evaluation Method (Assignments/Tests/Exams):

15 % Coursework Mark.

45%  Projects Mark

40 % final Exam Mark

Textbooks

O’Reilly’s  “Head First Servlets and JSP” by Basham, et al.

Required Further Readings:

To be determined by the Instructor.

 

 

Course Code: ITE04

Course Name: Advanced Machine Learning

Credit Hours:   3

Course description

This course provides a wide discussion of ML topics such as  ML (applications, problems, Probability Theory, basic algorithms), density estimation (estimation, sampling, Exponential Families), Online Learning and Boosting, Kernel machines and Function Spaces, Linear Models, Support Vector Classification, ML methods(Parametric Methods, Multivariate Methods), clustering, Decision Trees, graphical models.

In addition to these topics, the course includes the implementation of some ML algorithms using one of the freely available platforms.

Learning Outcomes

Upon completion of this course, students will obtain the following outcomes:

  1. Aware with basic knowledge about the key algorithms and theory that form the foundation of machine learning and computational intelligence
  2. Aware with practical knowledge of machine learning algorithms and methods so that they will be able to:
    • understand the principles, advantages, limitations, and possible applications of machine learning
    • identify and apply the appropriate machine learning technique to classification, pattern recognition, optimization, and decision problems.

Course Outlines:

The following schedule is subject to change but gives an idea of how the course will progress:

  • The PAC learning model.
  • Some learning algorithms and optimization methods: (perceptrons, neural networks, support vector machines (SVMs)
  • Analysis of SVMs.
  • Kernels and Mercer’s theorem.
  • Multi-class problems, including nearest-neighbor classifiers and decision trees .
  • Dimensionality reduction.
  • Reinforcement Learning.

Evaluation Method (Assignments/Tests/Exams):

15 % Coursework Mark.

45%  Projects Mark

40 % final Exam Mark

Textbooks:

  1. Machine learning and Data mining, Introduction to Principles and Algorithms, Igor Kononenko, Matjaž Kukar, Horwood Publishing Limited, 2007, ISBN 978-1904275-21-3
  2. Machine Learning, Tom M. Mitchell, Publisher: McGraw-Hill, ISBN: 0070428077
  3. Foundations of Machine Learning, Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalker, MIT Press, Cambridge, MA, 2012.
  4. Introduction to Machine Learning, Alex Smola and S.V.N. Vishwanathan, Cambridge University Press 2008, ISBN 0 521 82583 0 hardbacks.

Required Further Readings:

To be determined by the Instructor

 

 

Course Code: ITE05

Course Name: Advanced Database Systems

Credit Hours:     3

Course description

This is an advanced database course; we assume knowledge of the fundamental concepts of relational databases.  This course will cover the core principles and techniques of Transaction Processing, concurrency control, and Database Recovery. Topics will also include Distributed Databases; Databases on the World Wide Web; Multimedia Databases; Mobile Databases; Geographic Information Systems and Database Security and Authorization.

Learning Outcomes

At the completion of this course, the student should be able to:

  • Understand the concepts of database transactions and concurrency
  • Master the distributed databases
  • Has knowledge in the fields of web databases, multimedia databases, and mobile databases.
  • Know how to secure databases.

Course Outlines

  • Transaction Processing Concepts
  • Concurrency Control Techniques.
  • Database Recovery Techniques.
  • Distributed Databases
  • Databases on the World Wide Web.
  • Multimedia Databases.
  •  Mobile Databases.
  • Geographic Information Systems.
  • Database Security and Authorization.

Evaluation Method (Assignments/Tests/Exams):

  • 30% – 40% for course work.
  • 60%-70% for Exams

Textbooks:

  1. Elmasri, r. 2008. Fundamentals of database systems, 5/e, Pearson education India.
  2. Tamer eozsu, m. & valduriez, p. 2011. Principles of distributed database systems, springer.
  3. Kumar, v. 2006. Mobile database systems, John Wiley & sons.
  4. Coronel, c. & morris, s. A. 2012. Database systems: design, implementation, and management [with access code], cengagebrain. Com.

Required Further Readings:

  1. Bose, b. & sane, s. Dtcot: Distributed timeout-based transaction commit protocol for mobile database systems. Proceedings of the international conference and workshop on emerging trends in technology, 2010. Acm, 518-523.
  2. SSharma, s. D. & kasana, d. R. 2010. Mobile database system: role of mobility on the query processing. Arxiv preprint arxiv:1004.1747.
  3. BEIGZADEH, S., ZAMANI, M., IBRAHIM, S. & MASROM, M. Design and Implementation of a Web-Based Database-Centric Management Information System for a Social Community. 2011 International Conference on Information Systems and Computational Intelligence (ICISCI 2011), 2011.

 

 

Course Code: ITE06

Course Name: Artificial Intelligence Applications

Credit Hours:     3

Course description

This course provides theoretical and methodological knowledge and skills in artificial intelligence applications. This course is about using concepts of artificial intelligence to solve current, real-world problems.  This course will give an overview of the models and algorithms used in modern machine learning, including (but not limited to) generalized linear models, multi-layer neural networks, and clustering. .  This course also covers Machine Learning; case-based reasoning; intelligent systems; Optimization methods such as evolutionary algorithm and swarm intelligence; Pattern recognition; Image processing and analysis; Natural language processing; Social intelligence; Control theory; Mathematical tools used in AI; Robotics.

Learning Outcomes:

At the completion of this course, the student should be able to:

  • Understand the concepts of Artificial Intelligence Applications
  • Has the knowledge to build Artificial Intelligence Applications
  1. Familiar with Computer vision, Natural language processing and Robotics.
  2. Understand, evaluate and select the most appropriate technique to build Artificial Intelligence Application

Course Outlines:

  • Pattern recognition
  • Image processing and analysis
  • Natural language processing
  • Global optimization
  • Machine learning
  • Knowledge representation
  • Social intelligence
  • Control theory
  • Uncertain reasoning
  • Mathematical tools used in AI
  • Intelligent User Interfaces
  • Robotics

Evaluation Method (Assignments/Tests/Exams):

  • 30% – 40% for course work
  • 60%-70% for Exams

Textbooks:

  1. RUSSELL, S. 2009. Artificial Intelligence: A Modern Approach Author: Stuart Russell, Peter Norvig, Publisher: Prentice-Hall.
  2. POOLE, D. L. & MACKWORTH, A. K. 2010. Artificial Intelligence: foundations of computational agents, Cambridge University Press

Required Further Readings:

  1. ABRAHAM, A., GUO, H. & LIU, H. 2006. Swarm intelligence: foundations, perspectives, and applications. Swarm Intelligent Systems,3-25.
  2. YANG, X. S. 2008. Firefly algorithm. Nature-Inspired Metaheuristic Algorithms, 79-90.
  3. TEODOROVIC, D., DAVIDOVIC, T. & SELMIC, M. 2011. Bee colony optimization: the applications survey. ACM Transactions on Computational Logic, 1529, 3785.

 

 

Course Code: ITE07

Course Name: Security in Mobile Adhoc Networks

Credit Hours:    3

Course description

This course is concerned with the security issues in Mobile Adhoc Networks; we assume knowledge of the fundamental concepts of Mobile Adhoc Networks.  This course will illustrate the Vulnerabilities of the Mobile Ad Hoc Networks and the Vulnerabilities of the Mobile Ad Hoc Networks Security Requirements in MANETs.  The topic of this course will also include Challenges in securing MANETs; Threats in MANETs; Routing security and IPSec & Multicast. This course will end with describing Ongoing Research on Securing MANETs.

Learning Outcomes

At the completion of this course, the student should be able to:

  • Understand the basic security concepts of Mobile Adhoc Network
  • Has knowledge of MANET vulnerabilities, Threats, and attacks.
  • Aware with the techniques used to secure the MANET Networks.
  • Know the current research in the field of MANET Security.

Course Outlines

  • Challenges in securing MANETs
  • Threats in MANETs
  • Attacks
  • Misbehavior
  • Routing security
  • Data forwarding security
  • Link layer security
  • Key management
  • Intrusion detection systems (IDSs)
  • IPSec & Multicast
  • Risk management
  • Ongoing Research on Securing MANETs

Evaluation Method (Assignments/Tests/Exams):

  • 30% – 40% for course work.
  • 60%-70% for Exams

Textbooks:

  1. Joshi, a. K. 2013. Security in mobile ad hoc networks. Rochester institute of technology.

Required Further Readings

  1. Carvalho, m. 2008. Security in Mobile Ad hoc Networks. Security & privacy, IEEE, 6, 72-75.
  2. Datta, r. & marching, n. 2012. Security for Mobile Ad hoc Networks. Handbook on securing cyber-physical critical infrastructure, 147-190.
  3. WU, B., WU, J., FERNANDEZ, E. B., ILYAS, M. & MAGLIVERAS, S. 2007. Secure and efficient key management in mobile ad hoc networks. Journal of network and computer applications, 30, 937-954.

Course Code:      ITE08

Course Name:    Advanced Network Administration

Credit Hours:      3

Course description

This course covers the essential knowledge and skills required to successfully administer computer networks. Hands-on using Linux OS will be the main part of the course. Topics covered include network servers and workstation installation, server configuration, profiles and logon scripts, user account management, policies, resource sharing and security, disk management, remote access, backup and recovery, performance monitoring, and network optimization.

Learning Outcomes:

At the completion of this course, the student should be able to:

  • Install the Linux operating system, and apply operating system updates, and configuration changes.
  • Install and configure network servers and workstations.
  • Manage domain controllers, users, and workgroups within the network operating system.
  • Perform backups of data
  • Perform troubleshooting and basic security of the network operating system.
  • Manage remote access features, monitor and optimize network performance

Course Outlines:

  • Users account management.
  • Resource sharing
  • Configuration of network Services
  • Manage backup and Recovery Processes.
  • Firewall configuration
  • Performance monitoring and network optimization.
  • Security Concerns and Policy

Evaluation Method (Assignments/Tests/Exams):

30 % Coursework Mark.

70 % final Exam Mark

Textbooks:

  • The Practice of System and Network Administration: ISBN-10: 0-321-49266-8

2- Tony Bautt , Linux Network Administrator’s Guide,  O’Reilly Media,2005

Required Further Readings:

To be determined by the Instructor.

 

 

 

 

 

 

 

Course Code: ITE09

Course Name: Advanced Information Security Issues

Credit Hours:      3

Course description:

This course is intended to help students to gain a fundamental and comprehensive understanding of information security. The course provides an overview of major information security issues, technologies, and approaches. Students who successfully complete this course will have a concept and knowledge of security properties, concerns, policies, models, cryptography, PKI, firewalls, security evaluation, and real-life security cases. Students will also have hands-on experience in selected information security technologies through lab sessions.

Learning Outcomes

At the completion of this course, the student should:

  • Understand principal concepts, major issues, technologies, and basic approaches in information security.
  • Have hands-on experience in the specific topic area.
  • Has the ability to examine and analyze information security problems.

Course Outlines:

  • The Security in SDLC
  • Need for Security, Business Needs
  • Threats and Attacks
  • Legal, Ethical and Professional Issues
  • Risk Management: Identifying and Assessing Risk, Assessing and Controlling Risk
  • Information Security Policy, Standards and Practices
  • Design of Security Architecture, Planning for Continuity
    Security Technology, IDS, Scanning and Analysis Tools.

 

 

Textbooks:

  1. Michael E Whitman and Herbert J Mattord, “Principles of Information Security”, Fourth Edition, Cengage Learning, 2012
  2. Micki Krause, Harold F. Tipton, “Handbook of Information Security Management”, Vol 1-3 CRC Press LLC, 2004.
  3. Stuart Mc Clure, Joel Scrambray, George Kurtz, “Hacking Exposed”, Tata McGraw- Hill, 2003.

4.. Matt Bishop, “Computer Security Art and Science”, Pearson/PHI, 2002

Evaluation Method (Assignments/Tests/Exams):

30 % Coursework Mark.

70 % final Exam Mark

Required Further Readings:

To be set by the Instructor.

Course Code:      ITE10

Course Name:    Mobile Applications

Credit Hours:      3

Course description

This course is concerned with the development of applications on mobile and wireless computing platforms. Android will be used as a basis for teaching programming techniques and design patterns related to the development of mobile applications. Topics will include memory management; user interface design; user interface building; input methods; data handling; network techniques and URL loading; Maps; Sharing data using mobile application; and Publishing mobile applications. Students are expected to work on a project that produces a professional-quality mobile application.

Learning Outcomes

At the completion of this course, the student should be able to:

  • Describe the components and structure of a mobile development frameworks (Android SDK and Eclipse Android Development Tools (ADT)) and learn how and when to apply the different components to develop mobile application.
  • Design, implement and deploy mobile applications using the Android operating system.
  • Performing tasks at all stages of the mobile application development life-cycle.
  • Describe the limitations and challenges of working in a mobile and wireless environment
  • Integrate database and server-side technologies to provide complete mobile development solutions;
  • Understand the impact of user characteristics, device capabilities, networking infrastructure and the deployment environment, on the development of mobile application.

Course Outlines

  • Creating and Using Databases Sqlite Database in mobile applications
  • Sending SMS Messages Programmatically
  • Sending E‑ Mail
  • Displaying Maps in mobile applications.
  • Navigating to a Specific Location
  • Sharing data using mobile application
  • Publishing mobile applications

Evaluation Method (Assignments/Tests/Exams):

30 % Coursework Mark.

70 % final Exam Mark

Textbooks:

  • Wei-Meng Lee, Beginning Android™ Application Development, Wiley Publishing, 2011.
  • M Jones, G Marsden, Mobile interaction design. John Wiley & Sons, 2006

Required Further Readings:

To be determined by the Instructor.

 

 

Course Code: ITE11

Course Name: Object-Oriented Analysis and Design

Credit Hours:   3  

Course description:

Large-scale software development has been described as one of the most difficult human undertakings. This course examines the reasons for the inherent complexity of software construction and presents structured methods to deal effectively with it. The course will focus on the object-oriented approach to analysis and design. Students will gain an appreciation of the difference between writing programs and doing analysis and design. Problem formulation and decomposition (analysis) and solution building (design) will be covered. Students will work in small groups, each group having the responsibility for the analysis, design, and implementation of a software system. Case tools will be used in several stages of the development process.

Learning Outcomes

At the completion of this course, the student should be able to:

  • Develop a working understanding of formal object-oriented analysis and design processes.
  • Develop an appreciation for and understanding of the risks inherent to large-scale software development.
  • Develop the skills to determine which processes and OOAD techniques should be applied to a given project, and
  • Develop an understanding of the application of OOAD practices from a software project management perspective.

Course Outlines

  • Software Development Life Cycle (SDLC)
  • Requirements Analysis
  • Quality Requirements
  • Assignment of Project Teams
  • More on Requirements Analysis
  • Vision and Scope Document
  • A case study
  • Use Cases
  • From Use Cases to Functional Requirements
  • Domain Model
  • Associations

Evaluation Method (Assignments/Tests/Exams):

30 % Coursework Mark.

70 % final Exam Mark

Textbooks:

Mike O’Docherty, “Object-Oriented Analysis and Design – Understanding System Development with UML 2.0”, John Wiley & Sons Ltd, 2005.

Required Further Readings:

To be set by Instructor

 

Course Code: ITE12

Course Name: Advanced Software Engineering

Credit Hours:      3

Course description:

This course is designed to present students with an overview of advanced topics in Software Engineering. Students will be exposed to techniques that are gaining increasing attention in the industrial and research communities. Students will apply the software engineering techniques to homework assignments and mini-projects throughout the course. Both individual and group-oriented exercises will be assigned. Class participation is an essential component of the course. Students will have opportunities to develop and/or improve their technical writing and software development skills during the course of the term.

Learning Outcomes

At the completion of this course, the student should:

  • Understand of principal concepts, major issues, technologies, and advanced approaches in Software engineering.
  • Have hands on experience in specific topic area.

 

Course Outlines:

  • Requirements Engineering
  • Object-oriented modeling
  • Design strategies
  • Design Patterns
  • Object-Oriented Frameworks
  • Aspect Oriented Programming
  • Search-based Software Engineering
  • Software Product Lines
  • Security

 

Textbook:

Design Patterns: Elements of Reusable Object-Oriented Software , E. Gamma, R. Helm,

  1. Johnson, and J. Vlissides, 1995, Addison-Wesley.

 

Evaluation Method (Assignments/Tests/Exams):

30 % Coursework Mark.

70 % final Exam Mark

Required Further Readings:

To be set by the Instructor.

 

 

 

Admission requirements:

1.  Fulfilling the admission requirements according to the Higher Education Regulations, which are as follows:

2.  Obtaining a bachelor’s degree, first or second honors, in Computer Science or any other equivalent discipline from the College of Computer Science, University of Science and Technology, or any other similar university,

3.  or obtaining a Higher Diploma in Computer Science with a cumulative GPA of 3.0 as a minimum College of Computer Science and Information Technology, University of Science and Technology or any other similar university.

The program is held in the City of Knowledge in the Engineering Complex, and the study system is based on courses and supplementary research, in the blended system. The total number of credit hours to complete the program is 36 hours. This program aims to graduate qualified students in information security in both the academic and professional fields, familiar with modern technologies in information security and its applications in the fields of knowledge and life, as well as contribute to the enrichment of scientific research.The program qualifies the graduate to work in: computer training centers, software development houses, educational program development houses, companies, banks, computerized private sector institutions, websites design and management companies, e-commerce fields, and others..

Study plan:

percentage Credit hour Number of courses Program structure
%33 12 4 core courses
%50 18 6 elective
%17 6 Graduation course

 Program courses:

Credit hours Prerequisites for the course Core

Or

elective

Course name

 

Course code

 

Semester
3 Database basics core database security ISecC01  

 

First semester

 

3 Information security basics Core Advanced topics in information security ISecC02
3 core digital analysis ISecE01
3 Core  Attack and moral hack ISecE02
3 core cloud computing security ISecE03
3  computer network basics Core network security ISecC03  

Second semester

 

3 Encryption basics. Core Cryptography ISecC04
3 operating system basics core Operating Systems Security ISecE04
3 Core ISecE06
3 web application basics core Web application security ISecE07

The number of graduates:

Program name 2013 2014 2015 2016 2017 2018 2019
Master of Information  Security 0 0 0 0 0 20 11

 

 

Computer Science Qualification Program

One semester (12 credit hours)