Skip Ribbon Commands
Skip to main content
Use SHIFT+ENTER to open the menu (new window).
  
  
Edit
  
Body
2 
  

 

Software engineering is the discipline of developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them.

More recently it has evolved in response to factors such as the growing impact of large and expensive software systems in a wide range of situations and the increased importance of software in safety-critical applications. Software engineering is different in character from other engineering disciplines, due to both the intangible nature of software and to the discontinuous nature of software operation.

It seeks to integrate the principles of mathematics and computer science with the engineering practices developed for tangible, physical artifacts. Prospective students can expect to see software engineering presented in two contexts:

  • Degree programs in computer science offer one or more software engineering courses as elements of the CS curriculum. Some offer a multi-course concentration in software engineering within CS.
  • A number of institutions offer a software engineering degree program.

Degree programs in computer science and in software engineering have many courses in common. Software engineering students learn more about software reliability and maintenance and focus more on techniques for developing and maintaining software that is correct from its inception.

 

 

 

While CS students are likely to have heard of the importance of such techniques, the engineering knowledge and experience provided in SWE programs goes beyond what CS programs can provide. Such is the importance of this that one of the recommendations of the SWE report is that during their program of study students of SWE should participate in the development of software to be used in earnest by others.

SWE students learn how to assess customer needs and develop usable software that meets those needs. Knowing how to provide genuinely useful and usable software is of paramount importance. In the workplace, the term “software engineer” is a job label. There is no standard definition for this term when used in a job description. Its meaning varies widely among employers. It can be a title equivalent to “computer programmer” or a title for someone who manages a large, complex, and/or safety-critical software project.

The public must be mindful not confuse the discipline of software engineering with the ambiguous use of the term ‘software engineer” as used in employment advertisements and job titles.​

3 
  
Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List

 

SWE Program Goals

Our goal has been, and continues to be, a high quality degree program in Software Engineering that prepares students for lifelong learning as they undertake professional careers in computing. The program prepares students to work as requirements engineer, software architect, software design engineer, software quality engineer, software developer, software test engineer, or software engineering project manager.

SWE Program Mission

To bring forth competent Software Engineers with a strong understanding of computer science bodies of knowledge and theories, who can apply sound engineering principles and methods to the cost-effective creation, development, operation, and maintenance of high-quality software and are prepared for lifelong learning.​

 

Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List
​​​​
4 
  

 

Program Educational Objectives


 

The Software Engineering faculty has identified a set of Program Educational Objectives that describe the expected accomplishments of graduates in the first several years after graduation. The SWE program prepares graduates to:

  • Be successful in performing the duties of a software engineering related position.
  • Be successful in completing an advanced degree program.
  • Work as individuals with minimum guidance and as leaders or members in teams.
  • Follow appropriate practices within a profession​al, legal, and ethical framework.
  • Maintain currency through self-learning or other professional development.

Student Outcomes


 

The department has identified the following student outcomes for the graduating students. Graduates will be able to:

  • An ability to apply knowledge of mathematics, science and engineering.
  • An ability to design and conduct experiments, as well as to analyze and interpret data.
  • An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environment, social, political, ethical, health and safety, manufacturability and sustainability.
  • An ability to function on multidisciplinary teams.
  • An ability to identify, formulate and solve engineering problems.
  • An understanding of professional and ethical responsibility.
  • Ability to communicate effectively.
  • The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental and societal context.
  • A recognition of the need for, and an ability to engage in life-long learning.
  • A knowledge of contemporary issues.
  • An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List
​​​​​​​​
6 
  
8 
  
9 
  
Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List

 

Program Requirements

 

A. General Education Requirements (52 Credits)

Category CR Courses
Basic Science 12 CHEM 101(4), PHYS 101(4), PHYS 102(4)
Mathematics and Statistics 17 MATH 101(4), MATH 102(4), MATH 201(3), STAT 319(3)
English 9 ENGL 101(3), ENGL 102(3), ENGL 214(3)
System Engineering 3 ISE 307(3)
Physical Education 2 PE 101(1), PE 102(1)
Isl. & Arab. Studies 12 IAS 101(2), IAS 111(2), IAS 201(2), IAS 212(2), IAS 301(2), IAS 322(2)

 

B. Core Requirements (65Credits)

Category CR Courses
SWE required 44 SWE 205 (3), SWE 215 (3), SWE 312 (3), SWE 316 (3), SWE 326(3), SWE 363 (3), SWE 387 (3), SWE 417 (3), SWE 418 (2)
ICS required 4 CS 102(3), ICS 201(4), ICS 202(4), ICS 233(4), ICS 253(3), ICS 254(3), ICS 324(4), ICS 343(4), ICS 353(3), ICS 431(4)
COE required 4 COE 202(3)

 

C. Electives (15 Credits)

Category CR Courses
SWE/ICS Electives 12 3  SWE/ICS XXX(3)
Electives 6 6 credit-hours of approved technical electives

 

D. Summer Training (Pass/Fail Grade; No Credits)

Every student is required to participate in a summer training program of genuine practical experience and submit a formal written report.

 

E. Total Requirements

The total required credits for the BS degree in Software Engineering are 132 semester-credit-hours.

 

The Software Engineering with summer training degree plan

 

Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List
​​​​
10 
  
Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List

 

Degree Plan

 

First Year (Preparatory)

Course
#
Title
LT
LB
CR
Course
#
Title
LT
LB
CR
ENGL
001
Preparatory English I

15

5

8

  ENGL
002
Preparatory English II
15
5
8
MATH
001
Preparatory Math I
3
1
4
  MATH
002
Preparatory Math II
3
1
4
ME
003
Preparatory Engg. Tech.
0
2
1
  PYP
001
Prep Physical Science
2
0
2
PYP
002
Prep Computer Science
0
2
1
  PYP
003
University Study Skill
0
2
1
PE
001
Prep Physical Educ I
0
2
1
  PE
002
Prep Physical Educ II
0
2
1

18
12
15
 
20
10
16

 

Second Year (Freshman)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
MATH 101 Calculus I 4 0 4   MATH 102 Calculus II 4 0 4
PHYS 101 General Physics 3 3 4   PHYS 102 General Physics II 3 3 4
ENGL 101 An Introduction to Academic Discourse 3 0 3   ENGL 102 Introduction to Report Writing 3 0 3
CHEM 101 General Chemistry I 3 4 4   ICS 102 Intro. To Computing I 2 3 3
IAS 101 Practical Grammar 2 0 2   IAS 111 Belief & its Effects 2 0 2
PE 101 Physical Education I 0 2 1   PE 101 Physical Education II 0 2 1

15 9 18  
14 8 17

 

Third Year (Sophomore)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
SWE 205 Intro. To SW Engineering. 3 0 3   ICS 202 Data Structures 3 3 4
ICS 201 Intro. To Computing II 3 3 4   SWE 215 SW Requirements Eng. 2 3 3
COE 202 Digital Logic Design 3 0 3   ICS 233 Com. Arch. & As. Lang 3 3 4
MATH 201 Calculus III 3 0 3   ICS 254 Discrete Structures II 3 0 3
ICS 253 Discrete Structures I 3 0 3   IAS 201 Writing for Prof. Needs 2 0 2

15 3 16  
13 9 16

 

Fourth Year (Junior)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
SWE 312 User Interface Design 3 0 3   SWE 326 SW Testing & QA . 3 0 3
SWE 316 SW Design and Arch. 3 0 3   SWE 363 Web Eng. & Development. 3 0 3
ICS 324 Database Systems 3 3 4   SWE 387 Software Project mgt. 3 0 3
STAT 319 Prob.& Statistics for Engrs 2 3 3   ICS 343 Fund. of Comp. Networks. 3 3 4
IAS 212 Professional Ethics 2 0 2   IAS 322 Human Rights in Islam 2 0 2
              ENGL 214 Academic & Prof Comm 3 0 3

13 6 15  
17 3 18

 

Summer Session

Course
#
Title
LT
LB
CR
ICS

399

Summer Training 0 0 0

 

Fifth Year (Senior)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
SWE
417
SWE Project I

1

6

3

  SWE
418
SWE Project II

0

6

2

XE
xxx
(Free Elective I)
3
0
3
  ICS
431
Operating Systems
3
3
4
ICS
353
Design and Anal. of Algo.
3
0
3
  SWE
xxx
(SWE/ICS Elective II)
3
0
3
ISE
307
Eng. Economics Analysis
3
0
3
  SWE
xxx
(SWE/ICS Elective III)
3
0
3
SWE
xxx
(SWE/ICS Elective I)
3
0
3
  IAS
301
Oral Comm. Skills
2
0
2
              XE
xxx
(Free Elective II)
3
0
3

13
6
15
 
14
9
17

 

Total credits required in Degree Program: 132​

 

Goal and Mission Objectives and Student
Outcomes
SWE with Summer Training Student Guide Prerequisite Diagram Course List
​​​​
11 
  
Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List

 

Program Requirements

 

A. General Education Requirements (52 Credits)

Category CR Courses
Basic Science 12 CHEM 101(4), PHYS 101(4), PHYS 102(4)
Mathematics and Statistics 17 MATH 101(4), MATH 102(4), MATH 201(3), MATH 260(3), STAT 319(3)
English 9 ENGL 101(3), ENGL 102(3), ENGL 214(3)
Physical Education 2 PE 101(1), PE 102(1)
Isl. & Arab. Studies 12 IAS 101(2), IAS 111(2), IAS 201(2), IAS 212(2), IAS 301(2), IAS 322(2)

 

B. Core Requirements (55 Credits)

Category CR Courses
ICS required 44 ICS 102(3), ICS 201(4), ICS 202(4), ICS 233(4), ICS 253(3), ICS 254(3), ICS 309(2) ICS 324(4), ICS 343(4), ICS 353(3), ICS 381(3),ICS 410(3), ICS 411(3)ICS 431(4)
COE required 4 COE 202(3), COE 203(1)
SWE required 4 SWE 311 (4)

 

C. Electives (24 Credits)

Category CR Courses
ICS Electives 12 4  ICS/SWE XXX(3)
Electives 12 12 credit-hours of approved technical electives

 

D. Summer Training (Pass/Fail Grade; No Credits)

Every student is required to participate in a summer training program of genuine practical experience and submit a formal written report.

 

E. Total Requirements

The total required credits for the BS degree in Computer Science are 131 semester-credit-hours.

 

The Computer Science with summer training degree plan

 

Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List
​​​
12 
  

ICS 399: Summer Training

 
Course Information
Class/Laboratory Schedule: 

(0-0-0)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Software design
  • Using APIs
  • Software tools and environments
  • Software processes
  • Software requirements and specifications
  • Software validation
  • Software evolution
  • Software project management
  • Information models and systems
  • Database systems
  • Data modeling
  • Relational databases
  • Database query languages
  • Relational database design
  • Distributed databases
  • Communication skills
Catalog Description: 

A summer period of 8 weeks spent as a trainee in industry, business, or government agencies for the purpose of familiarizing the student with the real job world and enabling him to apply and relate his academic knowledge to a real work environment.

Eligibility Requirements: Departmental Approval.

Course Outcomes: 

After completion of this course, the student shall be able to:

  • Work with a company or organization with self confidence and exercise his skills safely and in a professional manner.
  • Practice an acceptable level of attendance and credibility to gain and maintain employment in a chosen occupation.
  • Exercise negotiating skills and learn how to seek and provide information and discuss problems in a constructive way.
  • Learn what is required to perform a specific task or series of tasks that meet the requirements of a company or organization.
  • Have a working knowledge of the career he has chosen based on his training experience.
  • Practice the application of theory in real life work
  • Increase business contact.
  • Write reports according to predetermined guidelines and make oral presentations in English to convey in a limited time, the range of experience obtained and outline the most important skills learned.​
13 
  

ENGL 214: Academic & Professional Communication

 
Course Information
Designation: 
 Other
Course Level: 
 Undergraduate
Catalog Description: 

The purpose of Academic & Professional Communication is to enhance students’ reading, writing, oral, and electronic skills to enable them to communicate effectively in English not only during their university careers but also beyond in their professional lives.

This course is offered by the English Language Department. More information about the course can be obtained from their website​

14 
  

ICS 324: Database Systems

 
Course Information
Class/Laboratory Schedule: 

3 lectures per week, 50 minutes each, and one 3 hours lab per week (3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Fundamental Programming Constructs
  • Algorithms and Problem-Solving
  • Fundamental Data Structures.
Prerequisite Courses: 
Catalog Description: 

Basic database concepts, conceptual data modeling, relational data model, relational theory and languages, database design, SQL, introduction to query processing and optimization, and introduction to concurrency and recovery.

Textbook(s): 

Fundamentals of Database Systems, R. Elmasri and S. B. Navathe, 5th edition, Addison-Wesley, 2006.

Reference(s) and Other Material: 
  • Database System Concepts, by Abraham Silberschatz, Henry F. Korth, S. Sudarshan McGraw Hill, 5th
    Edition, 2006
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Explain the basic database concepts and relational theory.
  • Understand and develop relational / conceptual data model.
  • Use and apply database programming languages and physical database design.
  • Understand the basics of query processing and optimization, concurrency controls and database recovery.
  • Gain work experience in a lab project as a team member or leader.
Topics Covered: 
  • Information models and systems
  • The relational data model
  • Relational languages
  • SQL
  • Conceptual modeling and mapping
  • Functional dependency and normalization
  • Practical and Physical database design Concepts
  • Database processing issues like query processing and optimization, concurrency controls, security, and database recovery​
15 
  

ICS 202: Data Structures

 
Course Information
Class/Laboratory Schedule: 

Class/Laboratory Schedule: Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Algorithms and Problem-Solving
  • Recursion
  • Fundamental Computing Algorithms
  • Virtual Machines
  • Declarations and types
  • Abstraction Mechanisms
  • Object-Oriented Programming Paradigm
  • Using APIs
Catalog Description: 

Review of object-oriented concepts; Introduction to design patterns; Basic algorithms analysis; Fundamental data structures - implementation strategies for stacks, queues and linked lists; Recursion; Implementation strategies for tree and graph algorithms; Hash tables; Applications of data structures (e.g. data compression and memory management).

Textbook(s): 

Data Structures and Algorithms in Java, 2nd Edition, Adam Drozdek, Thomson Learning, 2005

Reference(s) and Other Material: 

Data Structures and Algorithms with Object Oriented Design Patterns in Java, Bruno R. Preiss, John Wiley & Sons, Inc., 2000.

Course Outcomes: 
  • Apply object oriented concepts (inheritance, polymorphism, design patterns, etc.) in software design.
  • Implement various data structures and their algorithms, and apply them in implementing simple applications.
  • Analyze simple algorithms and determine their efficiency using big-O notation.
  • Apply the knowledge of data structures to other application domains like data compression and memory management.
Topics Covered: 
  • Review of Object-Oriented Concepts & Introduction to Design Patterns
  • Introduction to Algorithm Analysis.
  • Linked Lists.
  • Stacks & Queues.
  • Recursion.
  • Binary Trees, Binary Search Trees & Tree Traversal Algorithms.
  • Binary Heaps.
  • AVL Trees, B-Trees, B+-Trees.
  • Graphs, Graph Traversal Algorithms & Graph Implementations.
  • Graph Algorithms (Connectedness, Cycle detection & Topological sort).
  • More Graph Algorithms (Shortest path & Minimum Spanning Trees).
  • Hashing Techniques.
  • Application of Data Structures: Data Compression.
  • Application of Data Structures: Memory Management.​
16 
  

ICS 201: Introduction To Computing II

 
Course Information
Class/Laboratory Schedule: 

Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Fundamental programming constructs.
  • Algorithms and problem-solving.
  • Fundamental data structures.
  • Declarations and types.
  • Object-oriented programming.
Prerequisite Courses: 
Catalog Description: 

Advanced object-oriented programming; inheritance; polymorphism; abstract classes and interfaces, container and collection classes, packages, object-oriented design, software modeling, event-driven programming, recursion, use of stacks, queues and lists from API, searching and sorting.

Textbook(s): 

Absolute Java, 2nd Edition, Walter Savitch, Addison-Wesley, 2006.

Course Outcomes: 
  • Develop solutions for a range of problems using object-oriented programming
  • Apply divide and conquer strategy to searching and sorting problems using iterative and/or recursive solutions.
  • Design and implement simple GUI applications
  • Write simple multi threaded applications.
  • Use API in writing applications.
Topics Covered: 
  • Inheritance and Polymorphism
  • Abstract Classes and Interfaces
  • Nested Classes
  • Java Virtual Machine
  • Algorithms, Problem Solving and Recursion
  • Searching and Sorting
  • Collections
  • Computer Graphics and Event Driven Programming
  • Multithreading​
17 
  

ICS 102: Introduction To Computing I

 
Course Information
Class/Laboratory Schedule: 

Two 50 minutes lectures, One 180 minutes lab per week (2-3- 3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • No programming or computer science experience is required.
  • Good prep-year mathematics should be sufficient to appreciate the software solutions of basic mathematical problems.
Catalog Description: 

Overview of computers and computing. Introduction to a typical object-oriented programming language. Basic data types and operators. Basic object-oriented concepts. Wrapper classes. Console input/output. Logical expressions and control structures. Classes and methods. Arrays and strings.
Co-requisite: MATH: 101 Calculus I or MATH 132: Applied Calculus

Textbook(s): 

Absolute Java, 2nd Edition, Walter Savitch, Addison-Wesley, 2006.

Reference(s) and Other Material: 
  • Eric Jendrock, Jennifer Ball, Debbie Carson, Ian Evans, Scott Fordin, and Kim Haase. The Java™ EE 5 Tutorial. Addison Wesley Professional, 2007.
  • Elliot B. Koffman and Ursula Wolz, Problem Solving with Java, Update, 2/E. Addison-Wesley, 2002.
Course Outcomes: 
  • Write programs using basic data types and strings,
  • Design and implement programming problems using selection,
  • Design and implement programming problems using loops,
  • Use and implement classes as data abstractions in an object-oriented approach,
  • Implement simple exception handling in programs,
  • Develop programs with input/output from text files,
  • Design and implement programming problems involving arrays.
Topics Covered: 
  • Introduction to Computer Systems and Computing.
  • Object-Oriented Programming Basics.
  • User Input Handling and Decisions.
  • Input/Outputs Using Text Files.
  • Objects.
  • String Objects.
  • Class Design.
  • Data Encapsulation in Object-Oriented Programming.
  • Input/Output Arguments in Methods.
  • String Tokenization.
  • Arrays and Multidimensional Arrays.
  • Exception Handling.​
18 
  

MATH 101: Calculus I

 
Course Information
Designation: 
 Other
Course Level: 
 Undergraduate
Catalog Description: 

Limits and continuity of functions of a single variable. Differentiability. Techniques of differentiation. Implicit differentiation. Local extrema, first and second derivative tests for local extrema. Concavity and inflection points. Curve sketching. Applied extrema problems. The Mean Value Theorem and applications.

This course is offered by the Department of Mathematics and Statistics more information can be found on their website.​

19 
  

MATH 132: Applied Calculus

 
Course Information
Designation: 
 Required Course
Course Level: 
 Preparatory Year
Catalog Description: 

The derivative. Rules for differentiation. Derivative of logarithmic, exponential, and trigonometric functions. Differentials. Growth and decay models. Definite and indefinite integrals. Techniques of integration. Integrals involving logarithmic, exponential and trigonometric functions. Integration by tables. Area under a curve and between curves. Functions of several variables. Partial derivatives and their applications to optimization. 
  
This course is offered by the Department of Mathematics and Statistics more information can be found on their website.​

20 
  

Junior Standing

 
Course Information
Designation: 
 Other
Course Level: 
 Undergraduate
Catalog Description: 

According to KFUPM academic regulations a Computer Science or Software Engineering major student is considered as "Junior Standing" if the student has successfully passed and completed between 65 to 100 credit hours in his specialized major. More information about classifications can be obtained from the KFUPM Registrar's Website.​

21 
  

SWE 311: Principles Of Software Engineering

 
Course Information
Class/Laboratory Schedule: 

Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Fundamental programming constructs
  • Fundamental data structures
Prerequisite Courses: 
Catalog Description: 

History and overview of software engineering. Software processes. Software project management. Software requirements and specification. Software design. Software testing and validation. Software metrics. Software quality assurance. Software evolution. Using APIs. Software tools and environments.

Textbook(s): 

Somerville, Ian. Software Engineering, 8th Edition, Addison-Wesley, 2006.

Reference(s) and Other Material: 
  • Pressman, R. S. Software Engineering: A Practitioner's Approach, 6th Ed., McGraw- Hill Companies, Inc., 2005.
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Select an appropriate and effective software process of a given project.
  • Develop clear, concise, and sufficiently formal software requirements specification (SRS) based on the true needs of users and other stakeholders.
  • Apply design principles and architectures in designing software.
  • Create a number of different UML models such as class model, use-cases, sequence diagram, activity diagram, and state charts.
  • Develop a project plan for software development project and apply management techniques and work as a team leader and a member of a team
Topics Covered: 
  • Software design
  • Software tools and environments
  • Software processes
  • Software requirements and specifications
  • Software Validation
  • Software Evolution
  • Software project management
  • Component-based Computing
  • Foundations of human-computer interaction​
22 
  

ICS 233: Computer Architecture & Assembly Language

 
Course Information
Class/Laboratory Schedule: 

Class/Laboratory Schedule: Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Fundamental programming constructs
  • Digital logic and digital systems
  • Machine level representation
Catalog Description: 

Machine organization; Assembly language: addressing, stacks, argument passing, arithmetic operations, decisions, modularization; Input/Output Operations and Interrupts; Memory Hierarchy and Cache memory; Pipeline Design Techniques; Super-scalar architecture; Parallel Architectures.

Textbook(s): 

Computer Organization and Design: The Hardware / Software Interface. Third Edition. David A. Patterson and John L. Hennessy. Morgan Kaufmann, 2004.

MIPS Assembly Language Programming. Robert L. Britton. Pearson Prentice Hall, 2004. (Laboratory textbook)

Course Outcomes: 
  • Analyze, write, and test MIPS assembly language programs.
  • Describe the organization and operation of integer and floating-point arithmetic units.
  • Apply knowledge of mathematics in CPU performance and in speedup computation.
  • Design the datapath and control of a processor.
  • Use simulator tools in the analysis of assembly language programs and in CPU design.
Topics Covered: 
  • Data Representation
  • Instruction Set Architecture
  • MIPS Assembly Language Programming
  • Procedures and the Runtime Stack
  • Integer and Floating-point Arithmetic and ALU design
  • MIPS floating-point coprocessor and instructions
  • CPU Performance
  • Single-Cycle Datapath and Control Design
  • Pipelined Datapath and Control
  • Memory System Design​
23 
  

COE 202: Digital Logic Design

 
Course Information
Designation: 
 Required Course
Course Level: 
 Undergraduate
Catalog Description: 

Introduction to information representation and number systems. Boolean algebra and switching theory. Manipulation and minimization of completely and incompletely specifiedBoolean functions. Physical properties of gates: fan-in, fan-out, propagation delay, timing diagrams and tri-state drivers. Combinational circuits design using multiplexers, decoders, comparators and adders. Sequential circuit analysis and design, basic flip-flops, clocking and timing diagrams. Registers, counters, RAMs, ROMs, PLAs, PLDs, and FPGA's.

This course is offered by our sister Department, the Computer Engineering Department. More information about this course can be obtained from their website.​

24 
  

ICS 253: Discrete Structures I

 
Course Information
Class/Laboratory Schedule: 

Class/Laboratory Schedule: Three 50-minute lectures per week. No lab (3-0-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Introduction to Computing.
  • Algorithms and problem solving
Prerequisite Courses: 
Catalog Description: 

Propositional Logic, Propositional Equivalence, Predicates and Quantifiers, Nested Quantifiers, Rules of Inference, Introduction to Proofs; Sets, Set Operations, Functions, Sequences and Summations; Mathematical Induction, Strong Induction, Recursive Definitions and Structural Induction; The Basics of Counting, The Pigeonhole Principle, Permutations and Combinations, Binomial Coefficients, Generalized Permutations and Combinations; Discrete Probability, Probability Theory; Recurrence Relations, Solving Linear Recurrence Relations, Generating Functions, Inclusion-Exclusion; Graphs and graph Models, Graph Terminology and Graph Isomorphism, Connectivity, Euler and Hamilton Paths, Planar Graphs, Graph Coloring; Introduction to Trees, Applications of Trees, Spanning Trees.

Textbook(s): 

Rosen, Kenneth H. Discrete Mathematics and Its Applications, 6th Edition. New Your, McGraw Hill, 2007.

Course Outcomes: 
  • Formulate and derive propositional/predicate logic expressions, and apply proving methods.
  • Apply counting techniques to solve combinatorial problems.
  • Comprehend graphs and trees and their mathematical properties.
Topics Covered: 
  • Functions, relations, and sets
  • Basic logic
  • Proof techniques
  • Basics of counting
  • Graphs and Trees​
25 
  

ICS 254: Discrete Structures II

 
Course Information
Class/Laboratory Schedule: 

Class/Laboratory Schedule: Three 50 minutes lectures per week. No lab (3-0-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Functions, Relations and Sets
  • Proof Techniques
  • Counting Techniques
Prerequisite Courses: 
Catalog Description: 

Number Theory: Modular Arithmetic, Integer Representation, Fermat’s Little Theorem. Chinese Remainder Theorem, RSA., Applications from Number Theory; Recursive Definitions; Algorithm Correctness; Relations: Closures and Equivalence Relations, Partial Orderings and Lattices, Hasse Diagrams; Automata Theory: Finite State Machines, Regular Expressions, DFA, NFA and their equivalence, Grammars and Chomsky Hierarchy; Abstract Algebra: Groups, Homomorphism and Lagrange's Theorem, Applications.

Reference(s) and Other Material: 
  • N. L. Biggs, Discrete Mathematics (revised edition), Clarendon Press, 1989.
  • Crisler, N., Fisher, P. and Froelich, Discrete Mathematics through Applications, 2nd Ed., W. H. Freeman Co., 2000.
  • R. P. Grimaldi, Discrete and Combinatorial Mathematics: An Applied Introduction, 4th Ed., Addison Wesley, 1998.
Course Outcomes: 
  • Explain basic concepts in number theory and apply them in problem-solving.
  • Understand relations and their graphical representation
  • Understand foundational knowledge of group theory and automata theory
Topics Covered: 
  • Number Theory
  • Induction & Recursion
  • Relations
  • Group Theory
  • Languages, Grammars and Finite State Machines​
26 
  

ICS 309: Computing And Society

 
Course Information
Class/Laboratory Schedule: 

2 lectures per week, 50 minutes each (2-0-2).

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • No programming or computer science experience is required.
  • Good background in high-school and prep-year English should be sufficient to appreciate the solutions of basic ethical problems.
Prerequisite Courses: 
Catalog Description: 

Impact of Computing on Society; Ethical Foundations; Governance and Regulation; Freedom of Speech; Intellectual Property; Privacy; Security; Professional Responsibility; Leadership challenge.

Textbook(s): 

Ethics in Information Technology by George Reynolds, 2nd Edition, Thomson Course Technology, 2007.

Reference(s) and Other Material: 
  • A Gift of Fire by Sara Baase. 2nd Edition. Pearson Education Inc., 2003.
  • Morality and Machines by Stacy Edgar. 2nd Edition. Jones and Bartlett, 2003.
  • The Leadership Challenge by James Kouzes, and Barry Posner. 3rd Edition. Wiley (Jossey-Bass), 2002.
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Describe and evaluate consequences of computing on individuals, organizations, and society.
  • Critically analyze situations of computer use and technology and policy proposals, identifying the salient issues and evaluating the reasoning about them.
  • Understand philosophical frameworks of ethics.
  • Communicate clearly with others, in writing and in speech, about computing impacts.
  • Describe the characteristics of a good leader.
Topics Covered: 
  • Ethics for IT professionals and IT Users
  • Computer and Internet Crime
  • Privacy
  • Freedom of Expression
  • Intellectual Property
  • Computers and Work
  • Employer Employee Issues
  • Impact of IT on quality of life​
27 
  

ICS 343: Fundamentals Of Computer Networks

 
Course Information
Class/Laboratory Schedule: 

Three 50 minutes lectures, One 180 minutes lab per week(3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Algorithms and Problem-Solving
  • Recursion
  • Fundamental Computing Algorithms
  • Multithreading Programming
  • Abstraction Mechanisms
  • Object-Oriented Programming Paradigm
  • Using APIs

Note: This course cannot be taken for credit with COE 344.

Catalog Description: 

This course provides a comprehensive and current introduction to computer networks with focus on the functions performed at each layer of the network architecture and common layer protocol standards.

Note: This course cannot be taken for credit with COE 344.

Reference(s) and Other Material: 
  • Computer Networking: A Top Down Approach Featuring the Internet, 4/e, J. Kurose & Keith Ross, Addison Wesley, 2008.
  • Computer Networks: A Systems Approach, 3/e, Larry L. Peterson, Bruce S. Davie, Morgan Kaufmann Publishers, 2003.
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Identify various network services, characteristics, elements, standards and technologies.
  • Describe the layered architecture of computer networks and the operation of main protocols in the TCP/IP model.
  • Identify, compare and contrast different techniques and design issues of core functions such as addressing, routing, internetworking, switching, multiplexing, error and flow control, medium access and coding.
  • Implement simple client-server applications using socket programming.
  • Effectively use commonly used network-related commands, monitoring tools, traffic analyzers and network simulators.
  • Demonstrate the ability to setup a small network and properly configure network components including switches, routers and services (such as RAS, FTP, DNS, Web, DHCP, POP3).
  • Explain potential threats to network resources and various security mechanisms.
Topics Covered: 
  • Introduction to computer networks and layered architectures, connectivity, topology, circuit and packet switching
  • TCP/IP and ISO models
  • Application layer: C/S model, DNS, SMTP, FTP, WWW,
  • Socket programming and network security;
  • Transport layer: TCP and UDP, congestion control;
  • Network layer: internetworking, addressing and routing algorithms and protocols
  • Data link layer: framing, flow and error control protocols, PPP, MAC and LANs;
  • Physical layer: principles of data communications, circuit switching, coding, multiplexing and transmission media.​
28 
  

ICS 353: Design And Analysis Of Algorithms

 
Course Information
Class/Laboratory Schedule: 

Three 50-minute lectures per week. No lab (3-0-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Basic Algorithmic Analysis
  • Fundamental Data Structures and Algorithms
  • Recursion
  • Proof Techniques
  • Basic of Counting
Catalog Description: 

Algorithms and Problem Solving Basic Algorithmic Analysis; Advanced Algorithmic Analysis; Advanced Data Structures Algorithms Strategies & Analysis of Fundamental Computing Algorithms; Basic Computability; The Complexity Classes P and NP.

Textbook(s): 

M. Alsuwaiyel, Algorithms, Design Techniques and Analysis, World Scientific, 1999.

Reference(s) and Other Material: 
  • N/A
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Analyze the complexity of a given algorithm.
  • Apply classical sorting, searching, optimization and graph algorithms.
  • Compare, contrast, and choose appropriate algorithmic design techniques to present an algorithm that solves a given problem.
  • Able to explain NP-Completeness and deal with NP-complete problems.
Topics Covered: 
  • Basic Concepts in Algorithmic Analysis
  • Heaps and Disjoint-Sets Data Structures
  • Solving Recurrence Relations: Expanding the recurrence, Change of Variable, and the Master Theorem.
  • Divide and Conquer: Recursive Algorithms for Sorting, selection, Multiplication of Large Numbers and Matrices, Closest Pair Problem.
  • The Greedy Approach: Fractional Knapsack, Activity Selection, Money Change, Longest Common Subsequence, Matrix-Chain Multiplication, all-Pair Shortest Paths.
  • NP-Complete Problems.​
29 
  

ICS 381: Principles Of Artificial Intelligence

 
Course Information
Class/Laboratory Schedule: 

3 * 50-minute lectures per week. No lab. (3-0-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Basic concepts in discrete structures, probability, calculus, and linear algebra.
  • Programming Fundamentals.
Prerequisite Courses: 
Catalog Description: 

Introduction to Artificial Intelligence (AI) history and applications; First order logic; State space representation; Blind and heuristic search; Constraint satisfaction and planning; Knowledge representation; Reasoning in uncertain situations; Machine learning; Prolog programming; Natural language processing, Advanced AI applications.

Textbook(s): 

Artificial Intelligence: A Modern Approach, Stuart Russell and Peter Norvig, Prentice Hall, (Second Edition) 2003.

Reference(s) and Other Material: 
  • Artificial Intelligence: Structures and Strategies for Complex Problem Solving, George F. Luger, Addison Wesley Publisher, (Fifth Edition) 2005.
  • Prolog Programming for Artificial Intelligence, Ivan Bratko, Addison Wesley, (Third Edition) 2001.
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Understand the meaning of AI, its alternative approaches and the implications of AI for cognitive science more broadly.
  • Expand their knowledge about mechanisms, semantic networks, frame systems, heuristic search, genetic algorithm, planning, and symbolic learning algorithms.
  • Understand the basic methods in planning and reasoning using both logic and uncertain inference.
  • Know a variety of ways to represent and retrieve knowledge and information [Expert
    systems, Agents].
  • Know the fundamentals of AI programming techniques and advanced machine learning in a modern programming language.
Topics Covered: 
  • AI history and applications.
  • Intelligent Agents.
  • Problem Solving by Searching.
  • Constraint Satisfaction Problems.
  • Informed Search and Exploration.
  • Adversarial Search
  • First Order Logic.
  • Inference in First Order Logic.
  • Knowledge Representation and Knowledge-Base System.
  • Planning Systems.
  • Reasoning in Uncertain Situations.
  • Machine Learning.
  • Languages and Programming Techniques for AI (Prolog, Lisp).
  • Natural Language Processing.
  • Communicating, Perceiving, and Acting.
  • Advanced Applications of AI.​
30 
  

ICS 410: Programming Languages

 
Course Information
Class/Laboratory Schedule: 

Three 50 minutes lectures per week (3-0-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Fundamental Programming Constructs
  • Fundamental Data Structures
Prerequisite Courses: 
Catalog Description: 

Programming Paradigms: Object-oriented, imperative, functional, and logic. Application development in these paradigms. Fundamentals of Language Design: Syntax and Semantics. Language implementation: virtual machines; compilation, interpretation, and hybrid.

Textbook(s): 

Concepts of Programming Languages, R. Sebesta, 7th Edition, Addison Wesley, 2006.

Reference(s) and Other Material: 
  • N/A
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Identify various design issues in programming languages and illustrate with examples how the design issues have been handled in various popular programming languages.
  • Understand and use formal tools like BNF/EBNF, attribute grammars, operational semantics, etc. to model syntax and semantics of programming languages.
  • Understand various design tradeoffs like cost and reliability, efficiency and flexibility,etc. needed to develop a programming languages.
  • Show basic program development skill in four programming paradigms: object-oriented,
    imperative, functional, and logic.
Topics Covered: 
  • Basic concepts for programming language design: Quality factors of programming languages like readability, writability, and reliability; factors that affect the design of
    programming languages; design trade-offs
  • Programming language implementation and virtual machines
  • Evolution of the Major Programming languages
  • Describing Syntax and Semantics
  • Introduction to C
  • Object-Oriented Programming
  • Functional Programming
  • Logic Programming
  • Names, Bindings, Type Checking and Scopes
  • Data Types
  • Expressions and the Assignment Statements
  • Statement-Level Control Structure
  • Subprograms
  • Implementing Subprograms
  • Abstract Data Types
  • Concurrency
  • Exception Handling​
31 
  

ICS 411: Senior Project

 

The student will work on an applied project designed to develop his interest in some application of computer technology to a real life problem. Student is expected to submit a written report at the end of the project.

Course Information
Class/Laboratory Schedule: 

One 50 minutes lecture, open lab per week (1-6-3)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • As required by the project
  • Algorithms and problem-solving
  • Data structures
  • Information models and database systems and modeling
  • Software Engineering and the software development life cycle
Catalog Description: 

Project-oriented course in which students work in teams on an applied real-world problem of their interest, go through its software development lifecycle in order to develop a prototype software solution for the problem at hand. The senior project offers the opportunity to integrate the knowledge acquired in preceding courses, as well as promote and instill communication skills, writing skills, and lifelong self-learning.

Reference(s) and Other Material: 
  • Ian Sommerville, Software Engineering, 7th Edition, Addison-Wesley, 2004, ISBN: 0-321-21026-3.
  • Pressman, R. S. Software Engineering: A Practitioner's Approach, 6th Ed., McGraw-Hill Companies, Inc., 2005.
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Formulate a real-world problem and develop its requirements.
  • Develop a design solution for a set of requirements.
  • Test and validate the conformance of the developed prototype against the original requirements of the problem.
  • Work as a responsible member, and possibly a leader, of a team in developing software solutions. Also, participate in, and possibly moderate, discussions that lead to making decisions.
  • Express technical ideas, strategies and methodologies in written form.
  • Express technical and behavioral ideas and thought in oral settings and prepare and conduct oral presentations.
  • Self-learn new tools, algorithms, and/or techniques that contribute to the software solution of the project.
Topics Covered: 
  • Team Formation and Project Management.
  • Risk Assessment and Management.
  • Software Requirements and Specifications.
  • Technical Writing Skills.
  • Software Design.
  • Graphical User Interface Design.
  • Technical Presentation Skills.
  • Software Validation.​
32 
  

Senior Standing

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Undergraduate
Catalog Description: 

According to KFUPM academic regulations a Computer Science or Software Engineering major student is considered as "Senior Standing" if the student has successfully passed and completed 101 credit hours or more in his specialized major. More information about classifications can be obtained from the KFUPM Registrar's Website.​

33 
  

ICS 431: Operating Systems

 
Course Information
Class/Laboratory Schedule: 

Three 50-minute lectures per week. One 3-hour lab per week.(3-3-4)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Algorithms and problem-solving.
  • Fundamentals data structure.
  • Assembly level machine organization.
  • Memory system organization and architecture.
Catalog Description: 

This course introduces the fundamentals of operating systems design and implementation. Topics include history and evolution of operating systems; Types of operating systems; Operating system structures; Process management: processes, threads, CPU scheduling, process synchronization; Memory management and virtual memory; File systems; I/O systems; Security and protection; Distributed systems; Case studies.

Textbook(s): 

Operating System Concepts, 7th Ed. by Siblerschatz and Galvin, Addison Wesley, Inc, 2005.

Reference(s) and Other Material: 
  • Modern Operating Systems by Andrew S. Tanenbaum; 2nd Ed, 2003, Prentice Hall, Inc.
  • Operating Systems by William Stallings. 3rd Ed. 1998. Prentice-Hall, Inc.
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Recognize operating system types and structure.
  • Describe OS support for processes and threads.
  • Recognize CPU Scheduling, synchronization, and deadlock.
  • Describe algorithms for handling synchronization, deadlock, and failure related to distributed systems.
  • Explain OS support for virtual memory, disk scheduling, I/O, and file systems.
  • Identify security and protection issues in computer systems.
  • Use C and Unix commands, examine behavior and performance of Linux, and develop various system programs under Linux to make use of OS concepts related to process synchronization, shared memory, mailboxes, file systems, etc.
Topics Covered: 
  • Introduction.
  • Operating System Structure.
  • Processes.
  • Threads.
  • CPU Scheduling.
  • Process Synchronization.
  • Deadlocks.
  • Distributed Systems.
  • Memory Management.
  • Virtual Memory.
  • File System Interface and Implementation.
  • I/O Systems and Mass Storage Structure.
  • Security and Protection​
34 
  
Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List

 

Program Requirements

 

A. General Education Requirements (52 Credits)

Category CR Courses
Basic Science 12 CHEM 101(4), PHYS 101(4), PHYS 102(4)
Mathematics and Statistics 17 MATH 101(4), MATH 102(4), MATH 201(3), MATH 260(3), STAT 319(3)
English 9 ENGL 101(3), ENGL 102(3), ENGL 214(3)
Physical Education 2 PE 101(1), PE 102(1)
Isl. & Arab. Studies 12 IAS 101(2), IAS 111(2), IAS 201(2), IAS 212(2), IAS 301(2), IAS 322(2)

 

B. Core Requirements (52 Credits)

Category CR Courses
ICS required 44 ICS 102(3), ICS 201(4), ICS 202(4), ICS 233(4), ICS 253(3), ICS 254(3), ICS 309(2) ICS 324(4), ICS 343(4), ICS 353(3), ICS 381(3),ICS 410(3), ICS 431(4)
COE required 4 COE 202(3), COE 203(1)
SWE required 4 SWE 311 (4)

 

C. Electives (18 Credits)

Category CR Courses
ICS Electives 12 4  ICS/SWE XXX(3)
Electives 6 6 credit-hours of approved technical electives

 

D. ICS 351Cooperative Work (9 Credits)

A summer and a regular semester.

 

E. Total Requirements

The total required credits for the BS degree in Computer Science are 131 semester-credit-hours.

 

The Computer Science with summer training Coop degree plan

 

Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List
​​​
35 
  

ICS 350: Cooperative Work

 
Course Information
Class/Laboratory Schedule: 

(0-0-9)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Catalog Description: 

Beginning of Coop in summer. See course syllabus of ICS 351 for complete information.​

36 
  

ICS 351: Cooperative Work

 
Course Information
Class/Laboratory Schedule: 

(0-0-9)

Designation: 
 Required Course
Course Level: 
 Undergraduate
Prerequisites
Prerequisite(s) by Topic: 
  • Software design
  • Using APIs
  • Software tools and environments
  • Software processes
  • Software requirements and specifications
  • Software validation
  • Software evolution
  • Software project management
  • Information models and systems
  • Database systems
  • Data modeling
  • Relational databases
  • Database query languages
  • Relational database design
  • Distributed databases
Catalog Description: 

A continuous period of 28 weeks spent as a normal employee in industry, business, or government agencies with the purpose of familiarizing students with the real world of work and enabling them to integrate their classroom learning to a real work environment. During this period, a student is exposed to a real-life work in the field. Each student is required to participate with at least one project. Students are required to submit progress reports during the work period. Students are also required to give a presentation and submit a final report on their experience and the knowledge they gained during their cooperative

Eligibility Requirements: GPA above 2.0, Completion of at least 85 credit hours, Departmental Approval.

Textbook(s): 

N/A

Reference(s) and Other Material: 
  • N/A
Course Outcomes: 

After completion of this course, the student shall be able to:

  • Work with a company or organization with self confidence and exercise his skills safely and in a professional manner.
  • Practice an acceptable level of attendance and credibility to gain and maintain employment in a chosen occupation.
  • Exercise negotiating skills and learn how to seek and provide information and discuss problems in a constructive way.
  • Learn what is required to perform a specific task or series of tasks that meet the requirements of a company or organization.
  • Have a working knowledge of the career he has chosen based on his cooperative work experience.
  • Increase business contact
  • Write reports according to predetermined guidelines and make oral presentations in English to convey in a limited time, the range of experience obtained and outline the most important skills learned.
Topics Covered: 
  • Individual breakdown for each student. Plan oriented. As agreed with the work supervisor and approved by course instructor.
  • Activity Schedule
  • 3 Months before coop period: Registration for Coop-Meeting prerequisites.
  • 2 Months before coop period: Applying/ selecting work entity with the help of the University coop office.
  • 2 Weeks before Coop period: Common Meeting with the Instructor-Coop Guidelines and Expectations.
  • 1st-3rd Week of Coop Period: receiving and approving coop plans
  • 6th Week of Coop Period: Instructor Calls and/ or visits
  • 7th-8th Week of Coop Period: Progress report 1
  • 8th Week of Coop Period: Receiving First Employer's Evaluation of the student's work performance.
  • 10th Week of Coop Period: Instructor Calls and/ or visits
  • 14th-15th Week of Coop Period: Progress report 2
  • 19th Week of Coop Period: Instructor Calls and/ or visits
  • 21st-22nd Week of Coop Period: Progress report 3
  • 25th Week of Coop Period: Instructor Calls and/ or visits
  • Last Week of Coop Period: Receiving Second Employer's Evaluation of the student's work performance
  • 1st-2nd Week of Returning Semester: Common Meeting with the Instructor-How to give good presentation? Final Report format.
  • 2nd-3rd Week of Returning semester: Final Report submission
  • 3rd-4th week of Returning semester: Final Presentation​
37 
  
Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List

 

Degree Plan

 

First Year (Preparatory)

Course
#
Title
LT
LB
CR
Course
#
Title
LT
LB
CR
ENGL
001
Preparatory English I

15

5

8

  ENGL
002
Preparatory English II
15
5
8
MATH
001
Preparatory Math I
3
1
4
  MATH
002
Preparatory Math II
3
1
4
ME
003
Preparatory Engg. Tech.
0
2
1
  PYP
001
Prep Physical Science
2
0
2
PYP
002
Prep Computer Science
0
2
1
  PYP
003
University Study Skill
0
2
1
PE
001
Prep Physical Educ I
0
2
1
  PE
002
Prep Physical Educ II
0
2
1

18
12
15
 
20
10
16

 

Second Year (Freshman)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
MATH 101 Calculus I 4 0 4   MATH 102 Calculus II 4 0 4
PHYS 101 General Physics 3 3 4   PHYS 102 General Physics II 3 3 4
ENGL 101 An Introduction to Academic Discourse 3 0 3   ENGL 102 Introduction to Report Writing 3 0 3
CHEM 101 General Chemistry I 3 4 4   ICS 102 Intro. To Computing I 2 3 3
IAS 101 Practical Grammar 2 0 2   IAS 111 Belief & its Effects 2 0 2
PE 101 Physical Education I 0 2 1   PE 101 Physical Education II 0 2 1

15 9 18  
14 8 17

 

Third Year (Sophomore)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
ICS 201 Intro. To Computing II 3 3 4   ICS 202 Data Structures 3 3 4
ICS 253 Discrete Structures I 3 0 3   ICS 233 Com. Arch. & As. Lang 3 3 4
COE 202 Digital Logic Design 3 0 3 ICS 254 Discrete Structures II 3 0 3
MATH 201 Calculus III 3 0 3   MATH 260 Lin. Alg. & Diff. Equat. 3 0 3
PE 102 Physical Education II 0 2 1   COE 203 Digital Logic Lab 0 3 1
IAS 212 Professional Ethics 2 0 2   ENGL 214 Acad. & Prof. Communication 3 0 3

14 5 16  
15 9 18

 

Fourth Year (Junior)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
ICS 309 Computing and Society 3 0 3   ICS 343 Fund. of Comp. Networks. 3 3 4
ICS 324 Database Systems 3 3 4   ICS 381 Principles of Artificial Intell. 3 0 3
ICS 353 Des. & Analysis of Algorithms 3 0 3   ICS xxx (ICS Elective I) 3 0 3
SWE 311 Principles of Software Eng. 3 3 4   IAS 322 Human Rights in Islam 2 0 2
IAS 201 Objective Writing 2 0 2   XE xxx (Free Elective I) 3 0 3
STAT 319 Prob.& Statistics for Engrs 2 2 3              

15 9 18  
14 3 15

 

Summer Session

Course
#
Title
LT
LB
CR
ICS

399

Summer Training 0 0 0

 

Fifth Year (Senior)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
ICS
410
Programming Languages

3

0

3

  ICS
411
Senior Project
1
6
3
ICS
431
Operating Systems
3
3
4
  ICS
xxx
(ICS Elective III)
3
0
3
ICS
xxx
(ICS Elective II)
3
0
3
  ICS
xxx
(ICS Elective IV)
3
0
3
XE
xxx
(Free Elective II)
3
0
3
  IAS
301
Language Comm. Skills
2
0
2
XE
xxx
(Free Elective III)
3
0
3
XE
xxx
(Free Elective IV)
3
0
3

15
3
16
 
12
6
14

 

Total credits required in Degree Program: 131​

 

Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List
​​​
38 
  
Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List

 

Degree Plan

 

First Year (Preparatory)

Course
#
Title
LT
LB
CR
Course
#
Title
LT
LB
CR
ENGL
001
Preparatory English I

15

5

8

  ENGL
002
Preparatory English II
15
5
8
MATH
001
Preparatory Math I
3
1
4
  MATH
002
Preparatory Math II
3
1
4
ME
003
Preparatory Engg. Tech.
0
2
1
  PYP
001
Prep Physical Science
2
0
2
PYP
002
Prep Computer Science
0
2
1
  PYP
003
University Study Skill
0
2
1
PE
001
Prep Physical Educ I
0
2
1
  PE
002
Prep Physical Educ II
0
2
1

18
12
15
 
20
10
16

 

Second Year (Freshman)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
MATH 101 Calculus I 4 0 4   MATH 102 Calculus II 4 0 4
PHYS 101 General Physics 3 3 4   PHYS 102 General Physics II 3 3 4
ENGL 101 An Introduction to Academic Discourse 3 0 3   ENGL 102 Introduction to Report Writing 3 0 3
CHEM 101 General Chemistry I 3 4 4   ICS 102 Intro. To Computing I 2 3 3
IAS 101 Practical Grammar 2 0 2   IAS 111 Belief & its Effects 2 0 2
              PE 101 Physical Education I 0 2 1

15 7 17  
14 8 17

 

Third Year (Sophomore)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
ICS 201 Intro. To Computing II 3 3 4   ICS 202 Data Structures 3 3 4
ICS 253 Discrete Structures I 3 0 3   ICS 233 Com. Arch. & As. Lang 3 3 4
COE 202 Digital Logic Design 3 0 3 ICS 254 Discrete Structures II 3 0 3
MATH 201 Calculus III 3 0 3   MATH 260 Lin. Alg. & Diff. Equat. 3 0 3
PE 102 Physical Education II 0 2 1   COE 203 Digital Logic Lab 0 3 1
IAS 212 Professional Ethics 2 0 2   ENGL 214 Acad. & Prof. Communication 3 0 3

14 5 16  
15 9 18

 

Fourth Year (Junior)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
ICS 309 Computing and Society 3 0 3   ICS 343 Fund. of Comp. Networks. 3 3 4
ICS 324 Database Systems 3 3 4   ICS 381 Principles of Artificial Intell. 3 0 3
ICS 353 Des. & Analysis of Algorithms 3 0 3   ICS
431
Operating Systems
3
3
4
SWE 311 Principles of Software Eng. 3 3 4   ICS xxx (ICS Elective I) 3 0 3
IAS 201 Objective Writing 2 0 2   ICS
xxx
(ICS Elective II)
3
0
3
STAT 319 Prob.& Statistics for Engrs 2 2 3   IAS 322 Human Rights in Islam 2 0 2

15 9 18  
17 6 19

 

Summer Session

Course
#
Title
LT
LB
CR
ICS

350

Cooperative Work 0 0 0

 

Fifth Year (Senior)

Course
#
Title
LT
LB
CR
 
Course
#
Title
LT
LB
CR
ICS 351 Cooperative Work 0 0 9   ICS
410
Programming Languages

3

0

3

              ICS
xxx
(ICS Elective III)
3
0
3
              ICS
xxx
(ICS Elective IV)
3
0
3
              IAS
301
Language Comm. Skills
2
0
2
            XE
xxx
(Free Elective I)
3
0
3
              XE
xxx
(Free Elective II)
3
0
3

0
0
9
 
17
0
17

 

Total credits required in Degree Program: 131​

 

Vision and Mission Objectives and Student
Outcomes
CS with Summer Training CS with Coop Student Guide Prerequisite Diagram Course List
​​​
40 
  
 
Program Features Course and Admission Requirements Program Objectives and Student Outcomes Degree Plan Course List
 

 

 

The revised MSCS program is designed with the objective of providing a well-balanced breadth and depth knowledge at the graduate level. The program is designed such that students graduate with adequate advanced breadth in the discipline, while simultaneously allowing for emphasis in a desired area of specialization.

 

All students enrolled in the revised MSCS program are required to complete 24-credit hours of coursework, 6-credit hours of thesis, and a seminar course.

 

The full details of the MSCS program requirements can be found in Part II of this document.

 

The coursework requirements are broken down into core coursework requirements and elective coursework requirements. In order to determine the requirement for the core coursework, we reviewed a number of MSCS programs at reputable universities in North America. We found out that three different philosophies were adopted in regards to core coursework. Please refer to Section 5 and Table 7. The philosophies are as follows:

 
 
 
 

​I No-Core Requirements. All courses are elective.

 

II Fixed-Core Requirements. The program has a certain number of fixed or compulsory core courses that must be taken by all students. These courses are considered as a must-have competence, and would equip students to embark on a more in-depth study of a specific topic in the discipline.

 

III Selective-Core Requirements. Students must complete a breadth requirement by taking three or four courses from either a list of courses, or from courses within a set of subject areas.

 
 
 
 

Our revised MSCS program has adopted a combination of Philosophies II and III, with more weight on Philosophy III. It is to be noted that Philosophy III is the most common and is the current trend. Philosophy I is too loose, lacking depth, and does not guarantee breadth.

 


 

Admission requirements

 

 

 

The admission process starts with an application to the Deanship of Graduate Studies. The applicant must fill all related forms which can be obtained from the Deanship of Graduate Studies office or website. The applicant must also submit the following:

 

 

 
  • A letter of intent
  •  
  • Graduation certificates
  •  
  • Transcripts
  •  
  • At least three reference letters
  •  
  • Official TOEFL scores report
  •  
  • General GRE scores report
 

 

 

An MS applicant must have a BS in engineering or science from an institution whose undergraduate programs are at least comparable to those of KFUPM in both content and quality. All applicants must have a cumulative GPA of at least 3.0 out of 4.​

 


 

 

Core Background Requirements

 

 

In order for an applicant to be admitted to the MSCS program, he must have a strong background in the following core areas of computer science:

 

 

 
  • Data Structures
  •  
  • Computer Architecture
  •  
  • Algorithms
  •  
  • Programming Languages
  •  
  • Database Systems
  •  
  • Computer Networks
  •  
  • Operating Systems
 

 

 

Unsatisfactory background in any of these areas is considered a deficiency. Conditional admission may be granted to otherwise qualified students with some core background deficiencies. Students with deficiencies must take the corresponding

 

 

 

appropriate course(s) at KFUPM. Any deficiency must be completed with a grade of B or better before a change of status to regular is realized.

 


 

 

Breadth Requirement

 

 


 

As recognized, the computer science discipline is diverse in nature. It is important to provide MS students with an advanced holistic view of the discipline of important and popular topics, with some degree of flexibility that matches the interest of the individual student. It is worth noting here though that the ICS department has started offering two specialized master programs in Software Engineering and Computer Security. This gives a room for the revised MSCS to be more focused and specialized. Accordingly, we undertook the following steps: 

 
 
 
 

i Classify courses into a number of subject areas

 

ii Identify subject areas which are core to computer science and popular

 

iii Identify the most important course or courses from each core subject area that would constitute the most adequate representation of the area. These courses were chosen to be the core courses.

 
 
 
 

 

 

It is to be noted that the identification of subject areas and core subject areas has been debated several times and voted on in the ICS departmental council meetings. However, the identification of core courses from each core subject area has been agreed upon by the experts in the area. As will be noted later in Section 5, our selection of core subject areas is very much in-line with reputable universities in North America.​

 


 
 

 

 
​A​rea No. ​Subject ​Core Subject Area ​​Core Course
Area A​ Algorithms and Applications​ Yes​ ​ICS 553
​Area B System and Languages​ Yes​ ​ICS 535
​Area ​C Security and Net-centric Computing​ ​No (there is an MS program in Security and Information Assurance SIA)
​Area D Software Engineering​ ​No (there is an MS program in Software Engi-neering SWE)
 
Table 3: Subject Area and Core Courses
 


Table 3 shows the core subject areas and their representative core courses. In addition to the above two courses, a third core course, ICS 500 (Research Methods and Experiment Design in Computing), must be taken by all students. The revised MSCS program includes some degree of flexibility in meeting the program’s breadth requirement through electives. In addition, there will be some degree of flexibility in offering a variety of courses from the same area, as opposed to having always fixed core courses that must be offered once per academic year.​

 

 

Overall Requirements

 


 
Table 4 below shows the overall course requirements:
 

 
Min. Requirements​ ​Notes
​CS Core ​2 Courses ​ICS 553 and ICS 535
​Major Area Elective ​2 Courses​ ​Must be taken from the student’s selected major area. (Either Area A or Area B)
​Research Methods 1 Course (ICS 500) ​“Research Methods and Experiment Design in Computing”​
​General Area Electives ​​3 Courses
  • Can be taken from courses listed in Table 6.
  • Elective courses can also be taken from outside the list, for example, COE, EE, SE and MATH ... etc, subject to approval from the ICS Department.
  • At least one course should be from outside of Area A and Area B.
  • At least one course should be from Area C or Area D.
​Seminar ​ICS 599: Seminar
  • Zero credit hour (P/F)
  • Has ICS 500 as a Pre-requisite
​Thesis ​ICS 610: Master Thesis ​6 credit hours
 Table 4: Overall Degree Requirements
 


 

The revised MSCS program gives students the freedom to have adequate in-depth study of a certain major area by allowing them to possibly take four courses, including the core course, from one area. This option is attractive for students who conduct in-depth research of a certain topic. On the other hand, the program allows students to have a wide advanced knowledge of the discipline by having them take three elective courses from other subject areas or other departments. The second option is attractive for those who pursue research topics that are multidisciplinary in nature, and for those who would like to have advanced wide scope of computer science skills and topics, in order to meet job market demands in the Kingdom.​

 
 
​​​
​​​
​​
​​​​
41 
  

ICS 511: Principles Of Software Engineering

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

Software Requirements: Modern SRS for Enterprise Application and Performance-
Critical Systems. Software Process: Personal Software Process, Team Software
Process. Software Design: Architecture Tradeoff Analysis, Enterprise Architecture,
COTS Architecture, Service Oriented Architecture, RAD. Software Planning: Software
Acquisition, Software Engineering Measurement and Analysis (SEMA). Software
Quality Assurance: 6-Sigma. Software Integration: Enterprise Application Integration,
COTS Integration.​

42 
  

ICS 512: Software Requirements Engineering

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

The course gives state of the art and state of the practice in software requirements
engineering. In-depth research-oriented study of methods, tools, notations, and
validation techniques for the analysis, specification, prototyping, and maintenance of
software requirements. Topics include study of object-oriented requirements modeling,
using state of the art modeling techniques such as the Unified Modeling Language
(UML). The course work includes a project investigating or applying approaches to
requirements engineering.​

43 
  

ICS 513: Software Design

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared. In-depth research-oriented study of objectoriented analysis and design modeling using state of the art modeling techniques such as Unified Modeling Language (UML). Students participate in a group project on object-oriented software design.​

44 
  

ICS 514: Software Validation, Verification, And Quality Assurance

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

In-depth research-oriented study of Verification and Validation throughout the
development lifecycle. Techniques for validation and verification. Quality assurance at
the requirements and design phases. Software testing at the unit, module, subsystem,
and system levels. Automatic and manual techniques for generating and validating test data. Testing process: static vs. dynamic analysis, functional testing, inspections, and
reliability assessment.​

45 
  

ICS 515: Software Project Management

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

Lifecycle and process models; process metrics; planning for a software project;
mechanisms for monitoring and controlling schedule, budget, quality, and productivity;
and leadership, motivation, and team building. Topics cover quantitative models of
the software lifecycle, process improvement techniques, cost-effectiveness analysis in
software engineering, multiple-goal decision analysis, uncertainty and risk analysis,
software cost estimation, software engineering metrics; and quantitative lifecycle
management techniques.​

46 
  

ICS 531: Advanced Operating Systems

 
Course Information
Designation: 
 Required Course
Course Level: 
 Graduate
Prerequisites
Prerequisite Courses: 
Catalog Description: 

Structural design aspects of an operating system: process model, inter-process
communication, synchronization mechanisms, resource management, and scheduling.
Protection issues. Implementation issues of modern operating systems. Distributed
operating systems. Deadlock detection, recovery, and avoidance. Case studies.
Project(s).​

47 
  

ICS 532: Performance Analysis & Evaluation

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: STAT 319 or Equivalent

Catalog Description: 

Performance measures. Modeling methodologies: queuing models, graph models,
dataflow models, and Petrinet models. Mathematical models of computer systems: CPU
and computer subsystems such as memory and disks. Bottleneck analysis. Modeling
multi-server systems. Model validation methods. Case studies. Project(s).​

48 
  

ICS 533: Modeling And Simulation Of Computing Systems

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: STAT 319 or Equivalent

Catalog Description: 

Basic probability and statistics. Review of discrete-event simulation tools and
methodologies. Simulation languages. Random Number generation. Developing
Simulation Models. Simulation Validation. Output Data Analysis. Applications to
computer systems. Project(s).​

49 
  

ICS 535: Design And Implementation Of Programming Languages

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite Courses: 
Catalog Description: 

Principles of functional, imperative, object-oriented and logic programming languages.
Semantic specification including axiomatic, operational and denotational semantics.
Fundamentals of type systems such as abstract data types, polymorphism, and inference.
Concurrent systems. Case studies of contemporary programming languages.​

50 
  

ICS 536: Real-Time Systems

 
Course Information
Class/Laboratory Schedule: 

Real-Time Systems

Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite Courses: 
Catalog Description: 

Overview of real-time systems. Design and implementation issues. System interfacing
basics. Embedded software design constraints under size, performance, and reliability.
Software timing and functional validation. Applications and case studies of real-time
hardware and software systems.​

51 
  

ICS 570: Advanced Computer Networking

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

Examination of modern computer networking and data communications. Contemporary
concepts, facilities, practices, implementations, and issues. Data Link and media access
layer protocols. Introduction to Gigabit Ethernet, ATM and Frame Relay. Protocols of
TCP/IP suite. IP routing, flow and congestion control. Application Layer. Introduction
to modeling and analysis of data networks: Queueing theory, Little’s Law, Single
Queues, and Jackson Networks.

52 
  

ICS 581: Advanced Artificial Intelligence

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: ICS 381 or Consent of Instructor

Catalog Description: 

This course introduces advanced issues and approaches of artificial intelligence
topics, including logic programming, computational learning theory, machine learning
(supervised, unsupervised, and reinforcement learning), search-oriented problem solving
techniques, computer perception and robotics, speech understanding, knowledgebase
systems and reasoning about Knowledge, planning and temporal reasoning, inference and theorem proving, reasoning under uncertainty, principles of intelligent agents,
reactive, goal-based, and utility-based agents.​

53 
  

ICS 583: Pattern Recognition

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: Consent of the Instructor

Catalog Description: 

Introduction to pattern recognition, feature extraction, and classification. Bayesian
decision theory, maximum likelihood and Bayesian parameter estimation, Nonparametric
pattern classification techniques, density estimation. Pattern Classification using linear
discriminant functions. Unsupervised machine learning, clustering, vector quantization,
K-means. Various methods of pattern recognition, extraction methods, statistical
classification, various classifiers and case studies.​

54 
  

ICS 584: Automated Theorem Proving

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: Consent of the Instructor

Catalog Description: 

Survey of proof theory and model theory of first-order predicate calculus, natural
deduction, Herbrand’s procedure, resolution methods, induction principles, rewrite
rules, theorem-provers for algebraic systems.​

55 
  
Program Features Course and Admission Requirements Program Objectives and Student Outcomes Degree Plan Course List



Course 

Description

​Credit Hours

 

First Semester  

ICS 553

Algorithms and Complexity

3

9

ICS xxx

Major Area Elective I

 3 

 

ICS 500 

Research Methods and Experiment Design in Computing

3

Second Semester

ICS 535

Theory and Design of Programming Languages

3

 

 ​9

ICS xxx

Major Area Elective II

3

XXX xxx

General Elective I

3

 

Third Semester

ICS 599

Seminar

0

 

6

XXX xxx 

General Elective II

3

 

XXX xxx 

General Elective II​I

3

 

​Thesis Proposal ​0​
 

Fourth Semester 

ICS 610

Master Thesis

 6  

 6  

Sample Degree Plan


 

Program Features Course and Admission Requirements Program Objectives and Student Outcomes Degree Plan Course List
​​​
56 
  
Program Features Course and Admission Requirements Program Objectives and Learning Outcomes Degree Plan Course List

 

 

Area A: Algorithms and Applications​

 

Algorithms and Complexity

 

Computational complexity: P-space and EXP classes, R​eduction, NP-complete problems, Cook’s theorem, Randomized algorithms, Approximation algorithms, Branch-and-Bound, Amortized analysis; Max flow, Bipartite matching; Geometric algorithms: Convex hull, Closest pairs; Computability: Turing machines, Church-Turing thesis, ​Rice’s theorem, Undecidability.

 

Prerequisite: ICS 353 or Equivalent

 

Arabic Computing


Contemporary concepts and research in the field of Arabic Computing. Arabic characteristics and standardization. Arabic systems and tools. Arabic programming languages. Arabic character recognition. Arabic speech synthesis and recognition. Natural Arabic processing.

 

Prerequisite: Consent of Instructor 

 

Multimedia Information Management

 

 

Catalog Description

 

Multimedia data representation and management in the context of contentbased retrieval, audio, image and video data representation, Information retrieval from text. Content based retrieval of audio, image and video data, Similarity measures. Query formulation and evaluation, Multi-dimensional indexing algorithms and data structures. ​Multimedia compression. Multimedia data mining.

 

Prerequisite: Consent of Instructor 

 

Digital Image Processing

 

 

Catalog Description

 

Continuous Image. Mathematical Characterization. Psychovisual Properties. Photometry and Colorimetry. Superposition and Convolution. Image Transforms. Linear Processing Techniques. Image Enhancement. Morphological Image Processing. Edge Detection. Image Feature Extraction. Image Segmentation. Shape Analysis.

 

Prerequisite: Consent of Instructor 

                   Not to be taken for credit with EE 663 or SE 662

 


Advanced Machine Learning

 

 

Catalog Description

 

Linear and logistic regression. Regularization. Generalized linear models. Learning theory. Support vector machines. Kernel methods. Principal component analysis. Independent component analysis. Hidden Markov models. Random forests. Design of learning systems. Recommender systems. Online Learning. Ensemble learning models. Bootstrapping techniques.

 

Prerequisite: ICS 485 or Consent of Instructor 

 

Introduction to Bioinformatics and Biomedicine

 

 

Catalog Description

 

This course offers an introduction to bioinformatics with an emphasis on biomedical aspects. Topics include bioinformatics databases, sequence alignments, protein domains, protein-protein interaction, gene expression, gene ontology, pathways, disease state analysis, and computational methods in biomedicine.​  


Prerequisite: Consent of Instructor 

 ​ 

Natural Language Processing

 

 

Catalog Description

 

Components of a natural languages processing system. Natural language models:  Mathematical, psychological. Lexical, syntactic, and semantic analysis. Phrase-structured grammars. Transformational grammars. Transition networks. Semantic networks. Conceptual parsing Conceptual dependency. Systemic and case grammars. Scripts, plans and goals. Knowledge representation. Sentence generation. Recent trends.​

 

Prerequisite: ICS 381 or Equivalent 

 ​​

Pattern Recognition

 

 

Catalog Description

 

Various methods of pattern recognition, extraction methods, statistical classification, minmax procedures, maximum likelihood decisions, data structures for pattern recognition, case studies.  


Prerequisite: Consent of Instructor 

 

Combinatorial, Approximation, and Probabilistic Algorithms

 

 

Catalog Description

 

Representation and generation of combinatorial objects, Graph algorithms, Greedy method and the theory of matroids. Graph matching and applications. Network flows and applications. Approximation algorithms to combinatorial problems like scheduling, bin-packing, knapsack, vertex cover, TSP, clique partitioning, graph compression, Steiner problem on networks. Randomized algorithms: Monte-Carlo, Las-Vegas, algorithms, occupancy problems, randomized sorting and pattern matching, Markov chains and random walks.

 

Prerequisite: ICS 553 or Consent of Instructor 

 


Advanced Pattern Recognition

 

 

Catalog Description

 

The course covers advanced topics in pattern recognition and machine learning. Recent conference and journal papers will be discussed in depth. Tentative topics: Classification and discriminant analysis, feature generation using transformations. Feature selection, data transformation and dimensionality reduction, Classifier evaluation, Kernel methods, error rate estimation techniques and performance evaluation. Actual topics covered will depend on time available and students’ interests.

 

Prerequisite: ICS 583 or equivalent

 


Advanced Computer Vision

 

 

Catalog Description

 

This course intends to provide an in-depth overview of the current state-ofthe-art of computer vision by covering a set of advanced topics that are actively investigated. Recent conference and journal papers will be discussed in depth. Tentative topics: Low level vision: Image Segmentation, Stereo, Optical flow, de-noising and texture analysis; Higher level vision: Object Detection and Recognition/Pose Estimation; geometrical and 3D vision, stereo, 3D scene reconstruction, motion analysis, visual tracking, object recognition and human motion analysis, capturing and recognition. Actual topics covered will depend on time available and students’ interests.

 

Prerequisite: ICS 547 or Consent of Instructor 

 

AREA B: SYSTEMS AND LANGUAGES​​



Advanced Operating Systems

 

 

Catalog Description

 

Advanced concepts in operating systems design; multiprocessing model, interprocess communication; synchronization mechanisms; resource management and sharing; scheduling in multiprocessor system; Process migration; Operating system-level virtualization; Special-purpose operating systems: Real-time, Distributed and network operating systems; Distributed deadlock handelling; Distributed file system; Distributed shared memory; Replication & consistency; In addition, students will be exposed to recent developments in operating systems through research projects and papers.

 

 

Prerequisite: Consent of Instructor

 


Performance Analysis & Evaluation

 

 

Catalog Description

 

Performance measures. Modeling methodologies: queuing models, graph models, dataflow models, and Petrinet models. Mathematical models of computer systems: CPU and computer subsystems such as memory and disks. Bottleneck analysis. Modeling multi-server systems. Model validation methods. Case studies. Project(s).

 

Note: This course is equivalent to: COE 587
Prerequisite: STAT 319 or Equivalent

 

Modeling and Simulation of Computing Systems

 

 

Catalog Description

 

Basic probability and statistics. Review of discrete-event simulation tools and methodologies. Simulation languages. Random Number generation. Developing Simulation Models. Simulation Validation. Output Data Analysis. Applications to computer systems. Project(s).

 

Note: This course is equivalent to: COE 588
Prerequisite: STAT 319 or Equivalent

 

Theory and Design of Programming Languages

 

 

Catalog Description

 

Fundamentals of type systems, type inference, control structures, and storage management. Formal syntax specification. Semantic specification models: axiomatic, operational and denotational. Project(s) to design a programming language.

 

Prerequisite: ICS 410 or Equivalent

 


Database Design and Implementation

 

 

Catalog Description

 

Database development life cycle. Data modeling. Database design theory. Query processing. Concurrency control and transaction management. Recovery. Security. Database applications: data warehousing, data mining, web pages, and others. Various types of database systems: object relational, object-oriented, distributed, client/server, and others. Current trends in database research. Project(s).

 

Prerequisite: ICS 334 or Equivalent 

 


Distributed Systems

 

 

Catalog Description

 

Taxonomy of distributed systems: Client-server, cluster systems, Grid systems, P2P systems, cloud systems, volunteer-based systems. Distributed systems service models. Modeling, performance, scalability, elasticity and trust/reputation issues in distributed systems. Project(s).

 

Prerequisite: ICS 531 or Consent of Instructor

 


Semantics of Programming Languages

 

 

Catalog Description

 

Formal methods for the description of programming languages. Advanced semantics models, attribute grammar, two-level grammars, fixed-point theory of computation, Program verification techniques.

 

Prerequisite: ICS 535 or Consent of Instructor 

 ​

AREA C: SECURITY AND NET-CENTRIC COMPUTING​​



Cryptography and Data Security

 

 

Catalog Description

 

Mathematical principles of cryptography and data security. A detailed study of conventional and modern cryptosystems. Zero knowledge protocols. Information theory, Number theory, complexity theory concepts and their applications to cryptography.

 

Prerequisite: Consent of Instructor 

 


Computer Communication Network

 

 

Catalog Description

 

Examination of modern computer networking and data communications. Contemporary concepts, facilities, practices, implementations, and issues. Data Link and media access layer protocols. Introduction to Gigabit Ethernet, ATM and Frame Relay. Protocols of TCP/IP suite. IP routing, flow and congestion control. Application Layer. Introduction to modeling and analysis of data networks: Queueing theory, Little's Law, Single Queues, and Jackson Networks.

 

Note: This course is equivalent to: COE 540 or EE 674
Prerequisite: ICS 432 or Equivalent 

 

Client Server Programming

 

 

Catalog Description

 

Introduction to Clients, Servers, and Protocols. Client-Server Architectures. Software Architectures for Clients and Servers. Network and Operating System Support for Client-Server Applications. Programming language support. Standard interfaces and API. Examples of clients and servers for several popular protocols such as X, POP3, news, ftp, and http. Project(s).

 

Prerequisite: (ICS 570 and ICS 431) or Consent of Instructor 

 

Distributed Computing

 

 

Catalog Description

 

Introduction to parallel and distributed computation models. Mapping a parallel solution to a distributed computing platform. Programming issues. Operating system support for distributed computing. Message passing environments such as PVM and MPI. Load balancing. Migration. Agent architectures. Performance and complexity measures. Services. Service driven design of distributed applications. Timing and Synchronization. Remote procedure invocation. Project(s).

 

Prerequisite: (ICS 570 and ICS 431) or Consent of Instructor 

 

High-Performance Computing

 

 

Catalog Description

 

Theory and practice of parallel computing. Analytical models of parallelism and performance evaluation. Parallel architectures. Software tools for parallel programming. Design and implementation methodologies for parallel high performance applications. Design, analysis, and implementation of parallel solutions for various scientific problems such as linear algebraic problems, fast Fourier transform, Monte Carlo techniques, boundary value problems, finite element techniques, and iterative systems. Project(s).

 

Prerequisite: (ICS 353 or Equivalent) or Consent of Instructor  


Application Development for Internet Based Services

 

 

Catalog Description

 

Application Development for Deployment over the WWW. Application protocols. Connection and Session Objects. Authentication Services. Integrating Database Services. Component Architectures. Scripting Languages. Modern applications and application architectures such as Digital Cash and E-Commerce. Making use of the state-of-art tools, a major project will be developed by the students.

 

Prerequisite: ICS 571 

 

Concurrent and Parallel processing

 

 

Catalog Description

 

Concepts and foundation of parallel processing. Computational models. Parallel algorithms. parallelization techniques. Parallel software characteristics and requirements: languages, compilers, operating systems, and inter-process communication support. Parallel computer architectures. Case studies. Project(s). 

 

Prerequisite: ICS 431 or Equivalent


Local and Metropolitan Area Networks

 

 

Catalog Description

 

Protocols and Network Architectures. Various Technologies for Local and Metropolitan Area Networks (LANs and MANs). Classes of LANs and MANs. LAN and MAN design issues and Standards. LAN and MAN performance modeling and analysis. Internetworking. Examples of LANs and MANs. Case studies. Emerging LAN/MAN technologies.

 

Prerequisite: COE 540 or Consent of Instructor 

 

High-Speed Networks

 

 

Catalog Description

 

Protocols and Network Architecture. Local high speed networks. Broadband Metropolitan and Wide Area Networks. Impact of high speed on communication protocols and networks. Fiber optic networks. Design and performance issues of high speed networks. Standard high speed protocols and networks. Examples of high speed networks.  Case studies. Emerging technologies for high speed networks.

 

Prerequisite: COE 540 or Consent of Instructor 

 

Mobile Computing and Wireless Networks

 

 

Catalog Description

 

Introduction to mobile computing and wireless networks. Designing computer networks to support computer mobility. Wireless network architecture and ad-hoc networks. Mobility standards, e.g. mobile IP. Mobility systems issues (e.g. performance &bandwidth). Quality of Service guarantees, reliability, and security in mobile computing environment. Access protocols for wireless networks.

 

Prerequisite: COE 540 or Consent of Instructor ​

 

Computer Network Design

 

 

Catalog Description

 

Types of computer networks: LANs, VLANs, and WANs. Routing algorithms and routing protocols. The network development life cycle. Network analysis and design methodology. Network design issues: Manageability; Node placement and sizing; Link topology and sizing; Routing; Reliability. Data in support of network design. Structured enterprise network design. Hierarchical tree network design: Terminal assignment; Concentrator location. Mesh topology optimization. Traffic flow analysis. Analysis of loss and delay in networks. Network reliability issues.​

 

Prerequisite: (COE 540 and (ICS 353 or Equivalent)) or Consent of Instructor.​

 

Modeling and Analysis of Computer Networks

 

 

Catalog Description

 

Modeling. General concepts. Performance measures. Performance evaluation techniques. Model Validation. Introduction to Queuing Networks and StochasticProcesses. Simulation. The modeling cycle. Queuing network modeling. Flow analysis. Bottleneck analysis. Hierarchical modeling. Introduction to Analysis driven Design. Case studies with applications to different aspects of computer network systems.​

 

Prerequisite: COE 540 or Consent of Instructor.​

 

Protocol Engineering

 

 

Catalog Description

 

Protocols and languages. Protocol structure. Structured protocol design. Fundamentals of Protocol Engineering. Specification and modeling. State Machines and Reachability Analysis. Formulation of desirable properties of protocols. Formal Logic and Deduction. Verification techniques. Formal description languages. Protocol synthesis.
Protocol Design. Validation and conformance testing. Computer aided design tools for protocol engineering (simulation and validation tools). A major project involving comprehensive design and verification of a non-trivial protocol.​

 

Prerequisite: (COE 540 and (ICS 252 or Equivalent)) or Consent of Instructor. 

 ​​

Principles of Information Assurance and Security

 

 

Catalog Description

 

Introduction to security and information assurance. Information confidentiality, availability, protection, and integrity. Security systems lifecycle. Risks, attacks, and the need for security. Legal, ethical, and professional issues in information security. Risk management including identification and assessment. Security technologies and tools. Security laws, audit and control. Cryptography foundations, algorithms and applications. Physical security, security and personnel, security implementation and management. Securing critical infrastructure. Trust and security in collaborative environments.

 

 

Prerequisite: Graduate Standing

 

Network Security

 

 

Catalog Description

 

Network infrastructure security issues, including perimeter security defences, firewalls, virtual private networks, intrusion detection systems, wireless security, and network security auditing tools. Secure network applications. Network security protocols such as SSL, SSL/TLS, SSH, Kerberos, IPSec, IKE. Network threats and countermeasures. Network auditing and scanning. VoIP Security. Remote exploitation and penetration techniques. Network support for securing critical infrastructure. Design and development of software-based network security modules and tools based on hands-on experiences and state-of-the-art technologies.

 

Note: SEC 521 cannot be taken for credit with CSE 551


Prerequisite: ICS 555

 

Computer and Network Forensics

 

 

Catalog Description

 

Methodical approaches for collecting and preserving evidence of computer crimes, laws/regulation, and industry standards. Hands-on experience on identifying, analyzing, recreating, and addressing cyber based crimes. Ethical issues associated with information systems security. Foundational concepts such as file system structures, MAC times, and network protocols. Use of tools for evidence recovery. Use of established forensic methods in the handling of electronic evidence. Rigorous audit/logging and date archival practices. Prevention, detection, apprehension, and prosecution of security violators and cyber criminals, and general legal issues.

 

Prerequisite: SEC 521

 

Security in Wireless Networks

 

 

Catalog Description

 

Security of wireless networks such as cellular networks, wireless LANs, mobile ad hoc networks, wireless mesh networks, and sensor networks. Overview of wireless networks. Study of threats and types of attacks, including attacks on MAC protocols. Selfish and malicious behavior in wireless routing protocols. Countermeasures/solutions and their limitations. Encryption and authentication. Secure hand-off techniques. Energy-aware security mechanisms. Secure multicasting. Key pre-distribution and management in wireless networks.

 

Prerequisite: SEC 521

 

Secure Software

 

 

Catalog Description

 

Software security development lifecycle including security requirements analysis, design, coding, review, and testing. Construction of secure and safe C/Unix programs. Vulnerabilities in C source code. Stack and heap buffer overflows. Overview of secure web application development with consideration for SQL injection, cookies, and forceful browsing. Techniques for software protection, such as code obfuscation, tamper-proofing, and water-marking. Analysis of software based attacks and defenses, timing attacks and leakage of information. Type safety and capability systems. Numerous hands-on exercises and projects on writing secure code and unbreakable code and other related topics.

 

Note: Equivalent to SWE 531


Prerequisite: Graduate standing

 ​

Database Security

 

 

Catalog Description

 

Study of database security and auditing issues, challenges and protection methods. A review of relational and object database concepts. Database security and auditing issues. Authentication methods. Authorization based on privileges, roles, profiles, and resource limitations, and role-based authorization constraints. A study of access control mechanisms for current DBMSs, content-based and fine-grained access control, access control systems for object-based design and XML. Data confidentiality and privacy for databases. Secure statistical databases. Integrating databases and applications security. Database security protection via inference detection. Security implementation and administration, with applications to ecommerce, and emerging research in database security.

 

Prerequisite: SEC 511

 

Web Application Security

 

 

Catalog Description

 

Web applications security requirements, threats and countermeasures. Contemporary web application vulnerabilities and exploitation techniques, based on the Open Web Application Security Project (OWASP). Web defacement and server penetration techniques. Content-based attacks and effective countermeasures. Intellectual property protection and watermarking. Auditing and scanning Web applications and infrastructure for security weaknesses. Analysis of Web applications for key vulnerabilities and attacks. Security mechanisms and protocols and their roles in securing Web applications. Secure Web programming mechanisms in ASP.NET, Java, PHP, XML and SQL. Secure Web applications for e-commerce, e-banking and e-government transactions. Numerous hands-on exercises and projects on using tools and writing secure Web applications.

 

Prerequisite: SEC 511

 

Trusted Computing

 

 

Catalog Description

 

A comprehensive overview of trusted computing technology and its applications, TPM chips, secure boot, attestation, DRM, sealed storage, nature of trust, methods for characterizing, establishing, and attesting trust of a system. Trusted Virtualization. Operating system and hardware support for TC. Key management. Code signing. Identity management. Implications of certification. Trusted Mobile Platforms. Trust negotiation, transitive trust, trust evaluation and reputation systems. Trust computing architectures and modeling. Trust computing in P2P and cloud computing paradigms. Design and development of software applications and components to utilize trust computing for protecting information providers and end users.

 

Prerequisite: SEC 511 and ICS 555

 

Biometric Systems

 

 

Catalog Description

 

Theory of signal processing, especially image and sound processing, for purposes of biometric system design. An introduction to basic methods and techniques for the study of authentication based on static biometric features such as fingerprints, hand geometry, facial features, thermograms, iris and retina, voice, and handwriting. Study of recognition based on dynamic features including lip movements, typing, and gait, study of standards and applications of biometry.​

 

Prerequisite: Graduate standing

 

Embedded Systems Security

 

 

Catalog Description

 

Study of various security models and techniques for embedded systems both from a hardware as well as a software perspective. Smart card security. RFID attack models (including power analysis, side channel, and timing attacks), and security techniques. Security in wireless sensor networks (key management techniques, attack models, detection and prevention techniques). eHealth (embedded medical systems) security. Cryptographic hardware. Industrial control systems (SCADA). Physical hardware. Security for System-on-chip, and Internet-devices such as Internet thermostats and automated doors.

 

Prerequisite: Graduate standing

 

Watermarking and Steganography

 

 

Catalog Description

 

Study of enabling technologies for digital watermarking and steganography including the history of information hiding, basic principles and techniques such as still images, video, and 3-D video objects, and their applicability to owner authentication, content authentication, information embedding and communication with side information. Evaluation and benchmarking of watermarking and steganography mechanisms. Study of malicious attacks inclusive of bit rate limitation, counterfeiting marks and removal attacks. Overview of attempts to formalize watermarking. Steganography vs. watermarking. Applications of steganography. software for steganography, and steganalysis techniques.

 

Prerequisite: Graduate standing

  

Special Topics in Information Assurance and Security

 

 

Catalog Description

 

Advanced topics selected from current journals of Information Assurance & Security and that deal with theoretical development or applications in the field.

 

Prerequisite: Graduate standing

  

Cryptographic Computations
 

 

Catalog Description

 

Review of number theory, set algebra and finite fields. Computations in finite fields using standard and non-standard bases. High performance algorithms and architectures for cryptographic applications. Side channel analysis attack resistant computations.

 

Prerequisite: ICS 555

  

Advanced Network Security
 

 

Catalog Description

 

Intrusion detection and prevention systems. Security engineering processes. Advanced firewall considerations. Honeynets. Network forensics. Distributed denial of service attacks (Botnet, Rootkits, Zero-Day Exploits). Cyber crime and cyber war. Enterprise security policy development. Complex enterprise security infrastructure design and integration. Web and email security. P2P network security, and trust management.

 

Prerequisite: SEC 521

  

Security in Operating Systems and Cloud Computing
 

 

Catalog Description

 

Advanced security research topics in operating systems and emerging computing paradigm such as grid and cloud computing. Secure operating system requirements, fundamentals and definitions. Security in traditional and popular operating systems such as Unix, Linux, OpenBS,D and Windows. Security kernels. Verifiable security goals, trusted processes, and information flow integrity. Secure capability systems. Security in virtualization and secure virtual machine systems. Security issues and countermeasures in cloud computing. Data security and storage in the Cloud. Security management in the cloud services: PaaS, SaaS, and IaaS. Case Studies of secure systems, design, and evaluation: SELinux and Solaris.

 

Prerequisite: SEC 521

  ​

Advanced Topics in Computer Networking

 

 

Catalog Description

 

This course explores recent research trends and developments in computer networks

and their applications covering state-of-the-art topics and case studies.

 

Prerequisite: ICS 570 or equivalent

 

AREA D: SOFTWARE ENGINEERING

   

Software Requirements Engineering

 

 

Catalog Description

 

The course gives state of the art and state of the practice in software requirements engineering.  In-depth research-oriented study of methods, tools, notations, and validation techniques for the analysis, specification, prototyping, and maintenance of software requirements. Topics include study of object-oriented requirements modeling, using state of the art modeling techniques such as the Unified Modeling Language (UML). The course work includes a project investigating or applying approaches to requirements engineering.

 

Note: SWE 515 cannot be taken for credit with ICS 512​

    

Software Design

 

 

Catalog Description

 

Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared. In-depth research-oriented study of object-oriented analysis and design modeling using state of the art modeling techniques such as Unified Modeling Language (UML). Students participate in a group project on object-oriented software design.

 

Note: SWE 516 cannot be taken for credit with ICS 513

    

Software Testing and Quality Assurance

 

 

Catalog Description

 

In-depth research-oriented study of verification and validation throughout the development lifecycle.  Techniques for validation and verification, quality assurance at the requirements and design phases, software testing at the unit, module, subsystem, and system levels. Automatic and manual techniques for generating and validating test data.  Testing process: static vs. dynamic analysis, functional testing, inspections, and reliability assessment.

 

Note: SWE 526 cannot be taken for credit with ICS 514

    

Secure Software

 

 

Catalog Description

 

Software security development lifecycle including security requirements analysis, design, coding, review, and testing. Construction of secure and safe C/Unix programs. Vulnerabilities in C source code. Stack and heap buffer overflows. Overview of secure web application development with consideration for SQL injection, cookies, and forceful browsing. Techniques for software protection, such as code obfuscation, tamper-proofing, and water-marking. Analysis of software based attacks and defenses, timing attacks and leakage of information. Type safety and capability systems.

 

Note: Equivalent to SEC 531

    

Web Application Security

 

 

Catalog Description

 

Study of contemporary web application vulnerabilities, based on the OWASP (Open Web Application Security Project). Study of exploitation techniques for server and client web applications, and techniques that lead to web defacement and server penetration. Auditing and scanning web applications and servers for security weaknesses and vulnerabilities. Contemporary attack scenarios exploiting web vulnerabilities such as cross-site scripting, SQL injection, cookies, and forceful browsing. Content-based attacks and effective countermeasures. Secure programming for the following technologies: .NET, ASP.NET, ActiveX, JAVA, Secure Sockets, and XML, and a study of web security protocols such as SSL and HTTPS.

 


    

Software Architecture

 

 

Catalog Description

 

Advanced principles, methods and best practices in building software architecture and the architecture design process are discussed. Architectural styles and patterns are presented and compared. Software architecture analysis and evaluation methods such as ATAM and CBAM, tradeoffs among conflicting constraints in building high quality architecture are also discussed. Architecture documentation is also presented. 

 


    

Software Metrics

 

 

Catalog Description

 

Software metrics history and current practice, basics of measurement theory for software metrics, framework for software measurement, product, application, and process metrics. The course includes introduction to foundations of measurement theory, models of software engineering measurement, software products metrics, software process metrics and measuring management.

 


    

Software Agents

 

 

Catalog Description

 

Agent-based programming; elements of distributed artificial intelligence; beliefs, desires and intentions; component based technology; languages for agent implementations; interface agents; information sharing and coordination; KIF; collaboration; communication; ontologies; KQML; autonomy; adaptability; security issues; mobility; standards; agent design issues and frameworks; applications in telecommunications.

 

Prerequisite: Consent of Instructor

    

Empirical Software Engineering

 

 

Catalog Description

 

The course discusses how empirical studies are carried out in software engineering. The distinction between analytical techniques and empirical techniques is reviewed. Other topics include empirical studies required in software engineering, kinds of problems that can be solved empirically, methods used to control variables and eliminate bias in empirical studies, and analysis and presentation of empirical data for decision making.

 


    

Software Project Management

 

 

Catalog Description

 

Lifecycle and process models; process metrics; planning for a software project; mechanisms for monitoring and controlling schedule, budget, quality, and productivity; and leadership, motivation, and team building.  Topics cover quantitative models of the software lifecycle, process improvement techniques, cost-effectiveness analysis in software engineering, multiple-goal decision analysis, uncertainty and risk analysis, software cost estimation, software engineering metrics; and quantitative lifecycle management techniques.

 

Note: SWE 587 cannot be taken for credit with ICS 515

    

Special Topics in Software Engineering

 

 

Catalog Description

 

Advanced topics selected from current journals of software engineering that deal with theoretical development or applications in the field. Topic include:  Reusable Software Architectures, Software Engineering, Experimentation, Concurrent Software Systems, Software Metrics, Web Engineering or Formal Methods and Models in Software Engineering, etc.​

 

Prerequisite: Consent of Instructor

  ​   

Software Reuse

 

 

Catalog Description

 

Advanced object-oriented design and programming of real-time and distributed systems using C++ and/or Java. Object-oriented features: inheritance, polymorphism, templates, exception handling and Concurrency issues. Design patterns and frameworks for distributed systems, with examples from communication applications. Design issues for reusable software.

 

Prerequisite: Consent of Instructor

  ​   

Software Maintenance & Re-Engineering​

 

 

Catalog Description

 

Software evolution and reengineering approaches and abstraction techniques to extract specifications and design from existing code are discussed. Major maintenance activities are presented including estimating maintenance costs, managing change and predicting maintainability with software quality metrics. Organizational issues relative to product maintenance are discussed. Principles of reverse engineering techniques are also presented. 

 

Prerequisite: Consent of Instructor

  ​    ​   

Formal Methods and Models in Software Engineering​

 

 

Catalog Description

 

In-depth advanced formal mechanisms for specifying, validating, and verifying software systems. Program verification. Formal specification via algebraic specifications and abstract model specifications, including initial specification and refinement toward implementation. Integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches. Model-driven architectures. Formal methods using the Object Constraint Language (OCL).

 

Prerequisite: Consent of Instructor

  ​   

  ​   

Global Software Engineering​

 

 

Catalog Description

 

Topics include: Essentials of global software engineering, Software engineering outsourcing (Onshore outsourcing, Nearshore Outsourcing, Offshore outsourcing), Outsourcing models (Simple Dyadic Outsourcing, Multi-Vendors Outsourcing, Co-Sourcing and Complex Outsourcing), Global software project management concepts, tools, and techniques, Managing virtual teams, Crosscultural collaboration, Global project leadership, Measuring organizations readiness for global software development, Software quality in global software development (CMMI, ISO 9001:2000), Global software engineering challenges, Professional practices for global software engineering Intellectual Property Rights, Group working, conflict and negotiations management, Presentations, writing and referencing)

 

Prerequisite: Consent of Instructor​

  ​   

 

COMMON

  
Research Methods and Experiment Design in Computing

Catalog Description

 

Integrated treatment to the models and practices of experimental computer science. Topics include scientific methods applied to computing, computational problem/solution characterization, quality metrics and performance estimation of computation systems, uses of analytic and simulation models, design of experiments, interpretation and presentation of experimental results, hypothesis testing, and statistical analyses of data.

 

Prerequisite: STAT 319 or equivalent

 
Special Topic in Computer Science I

Catalog Description

 

Advanced topics selected from current literature that deals with theoretical foundations and advances in computer science. The specific content of an offering of the course should focus on a specific area of computer science.

 

Prerequisite: Consent of instructor

 ​   ​  

Special Topic in Computer Science II

Catalog Description

 

Advanced topics selected from current literature that deals with theoretical foundations and advances in computer science. The specific content of an offering of the course should focus on a specific area of computer science. 

 

Prerequisite: Consent of instructor​

 ​   ​  ​

Seminar

 

 

Catalog Description

 

Graduate students are required to attend the seminars given by faculty members, visiting scholars, and fellow graduate students. Additionally, each student must give at least presentation on a timely research topic. Among other things, this course is designed to give the student an overview of research, research methodology, journals and professional societies. Graded on a Pass or Fail basis.

 

Prerequisite: Graduate standing 

 

I​ndependent Research

 

 

Catalog Description

 

This course is intended to allow the student to conduct research in advanced problems in his MS research area. The faculty offering the course should submit a research plan to be approved by the Graduate Program Committee at the academic department. The student is expected to deliver a public seminar and a report on his research outcomes at the end of the course. Graded on a Pass or Fail basis.​

 

Prerequisite: Consent of Instructor

 

Master Thesis

 

 

Catalog Description

 

The student has to undertake and complete a research topic under the supervision of a faculty member in order to probe in depth a specific problem in Computer Science.​

 

Prerequisite: ICS 599 or Consent of Instructor

 ​

Program Features Course and Admission Requirements Program Objectives and Learning Outcomes Degree Plan Course List
​​
57 
  

ICS 519: Special Topics In Software Engineering

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Consent of Instructor

Catalog Description: 

Advanced topics selected from current journals of Software Engineering that deal with
theoretical development or applications in the field. Topic include: Reusable Software
Architectures, Software Engineering, Experimentation, Concurrent Software Systems,
Software Metrics Software Engineering for the World Wide Web, Formal Methods and
Models in Software Engineering, etc.​

58 
  

ICS 539: Special Topics In Systems

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: Consent of Instructor

Catalog Description: 

Advanced topics selected from current journals in the field that deal with theoretical
development and applications of computer systems.​

59 
  

ICS 541: Database Design And Implementation

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite Courses: 
Catalog Description: 

Database development life cycle. Data modeling. Database design theory. Query
processing. Concurrency control and transaction management. Recovery. Security.
Database applications: data warehousing, data mining, web pages, and others. Various
types of database systems: object relational, object-oriented, distributed, client/server,
and others. Current trends in database research. Project(s).​

60 
  

ICS 545: Arabic Computing

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: Consent of Instructor

Catalog Description: 

Contemporary concepts and research in the field of Arabic Computing. Arabic
characteristics and standardization. Arabic systems and tools. Arabic programming
languages. Arabic character recognition. Arabic speech synthesis and recognition.
Natural Arabic processing.​

61 
  

ICS 549: Special Topics In Applied Computing

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: Consent of Instructor

Catalog Description: 

Advanced topics selected from current journals on various IT and CS applications that
deal with theoretical and practical development in various enterprises.​

62 
  

ICS 552: Theory Of Computation

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

Introduction to various models of computation. Machines, languages and grammars.
Turing-computability. Universal Turing Machines. Recursive functions. Church’s thesis.
Godel’s completeness and incompleteness theorems. Closure properties and complexity
classes of languages. Decidability, undecidability and partial decidability.​

64 
  

ICS 554: Applied Combinatorics And Graph Theory

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Catalog Description: 

A study of combinatorial and graphical techniques for complexity analysis including
generating functions, recurrence relations, Polya’s theory of counting, planar directed
and undirected graphs, NP complete problems. Application of these techniques to
analysis of algorithms in graph theory.​

65 
  

ICS 555: Data Security And Encryption

 
Course Information
Designation: 
 Elective Course
Course Level: 
 Graduate
Prerequisites
Prerequisite(s) by Topic: 

Prerequisite: Consent of Instructor

Catalog Description: 

Mathematical principles of cryptography and data security. A detailed study of
conventional and modern cryptosystems. Zero knowledge protocols. Information
theory, Number theory, complexity theory concepts and their applications to
cryptography.​

1 - 60Next