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.