Within the context of the faculty interest in post graduate studies, the Master in Computer Sciences program was approved in 2008 and in 2010 the Master degree in Information Systems by courses and supplementary research was approved. First batch for Master in Computer Sciences program was accepted in the academic year 2008-2009, and the first batch for Master degree in Information Systems in 2010-2011. In 2013 the Master of Information Technology program was approved and the Master of Information Security by courses and supplementary research was approved in 2016. These programs graduated hundreds of students in the past years.
Registration for master and Ph. D. degrees by research has started since 2013 in the faculty.
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
- Introduction
- 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)
- Credit Requirement
- 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
- 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.
- 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
- 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
- Introduction
- 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)
- Credit Requirement
- 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
- 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.
- 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
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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).
- Assessment
- 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.
- 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 |
- 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.
- 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.
- Academic Support 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.
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.
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:
- Joseph Davies, Understanding Ipv6, second edition,2011
- 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 Name: Advanced 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:
- Data Mining Concepts and Techniques (Second Edition), Jiawe Han & Micheline Kamber, Morgan Kaufman Publishers, 2005, ISBN 1558609016.
- Mining of Massive Datasets by Anand Rajaraman and Jeff Ullman, Cambridge University Press, 2011
- 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:
- Software Engineering, Ian Sommerville, 2004, 7th edition
- Programming Microsoft Windows Forms by Charles Petzold (2006). ISBN: 0735621535
- GUI Bloopers: Don’ts and Do’s for Software Developers and Web Designers by Jeff Johnson (2000). ISBN: 1558605827
- The Windows Interface Guidelines — A Guide for Designing Software
- People and Computers XIX – The Bigger Picture, Tom McEwan, Jan Gulliksen, and David Benyon (Eds)
- 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:
- Aware with basic knowledge about the key algorithms and theory that form the foundation of machine learning and computational intelligence
- 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:
- Machine learning and Data mining, Introduction to Principles and Algorithms, Igor Kononenko, Matjaž Kukar, Horwood Publishing Limited, 2007, ISBN 978-1904275-21-3
- Machine Learning, Tom M. Mitchell, Publisher: McGraw-Hill, ISBN: 0070428077
- Foundations of Machine Learning, Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalker, MIT Press, Cambridge, MA, 2012.
- 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:
- Elmasri, r. 2008. Fundamentals of database systems, 5/e, Pearson education India.
- Tamer eozsu, m. & valduriez, p. 2011. Principles of distributed database systems, springer.
- Kumar, v. 2006. Mobile database systems, John Wiley & sons.
- Coronel, c. & morris, s. A. 2012. Database systems: design, implementation, and management [with access code], cengagebrain. Com.
Required Further Readings:
- 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.
- SSharma, s. D. & kasana, d. R. 2010. Mobile database system: role of mobility on the query processing. Arxiv preprint arxiv:1004.1747.
- 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
- Familiar with Computer vision, Natural language processing and Robotics.
- 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:
- RUSSELL, S. 2009. Artificial Intelligence: A Modern Approach Author: Stuart Russell, Peter Norvig, Publisher: Prentice-Hall.
- POOLE, D. L. & MACKWORTH, A. K. 2010. Artificial Intelligence: foundations of computational agents, Cambridge University Press
Required Further Readings:
- ABRAHAM, A., GUO, H. & LIU, H. 2006. Swarm intelligence: foundations, perspectives, and applications. Swarm Intelligent Systems,3-25.
- YANG, X. S. 2008. Firefly algorithm. Nature-Inspired Metaheuristic Algorithms, 79-90.
- 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:
- Joshi, a. K. 2013. Security in mobile ad hoc networks. Rochester institute of technology.
Required Further Readings
- Carvalho, m. 2008. Security in Mobile Ad hoc Networks. Security & privacy, IEEE, 6, 72-75.
- Datta, r. & marching, n. 2012. Security for Mobile Ad hoc Networks. Handbook on securing cyber-physical critical infrastructure, 147-190.
- 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:
- Michael E Whitman and Herbert J Mattord, “Principles of Information Security”, Fourth Edition, Cengage Learning, 2012
- Micki Krause, Harold F. Tipton, “Handbook of Information Security Management”, Vol 1-3 CRC Press LLC, 2004.
- 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,
- 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)