| | 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 | | |
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.
| | | 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 professional, 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.
| | | 6 | | |

| | | 8 | | | | | | 9 | | |
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
| | | 10 | | |
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 |
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
| | | 11 | | |
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
| | | 12 | | |
ICS 399: Summer Training
Course Level:
Undergraduate
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 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 Level:
Undergraduate
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 Level:
Undergraduate
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 Level:
Undergraduate
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 Level:
Undergraduate
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 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 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 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 Level:
Undergraduate
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 Level:
Undergraduate
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 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 Level:
Undergraduate
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 Level:
Undergraduate
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 Level:
Undergraduate
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 Level:
Undergraduate
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.
Textbook(s):
Lab Manual. Available through WebCT.
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 Level:
Undergraduate
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:
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 Level:
Undergraduate
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 Level:
Undergraduate
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:
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 Level:
Undergraduate
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 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 Level:
Undergraduate
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 | | |
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 |
|
| 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
| | | 35 | | |
ICS 350: Cooperative Work
Course Level:
Undergraduate
Catalog Description:
Beginning of Coop in summer. See course syllabus of ICS 351 for complete information. | | | 36 | | |
ICS 351: Cooperative Work
Course Level:
Undergraduate
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.
Reference(s) and Other Material:
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 | | |
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 |
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
| | | 38 | | |
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 |
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
| | | 40 | | |
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.
| 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:
| 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 | | |
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 III
|
3
|
| |
Thesis Proposal |
0 |
| |
Fourth Semester |
ICS 610 |
Master Thesis |
6 |
6 |
Sample Degree Plan
| | | 56 | | | | | | 57 | | |
ICS 519: 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 Software Engineering for the World Wide Web, Formal Methods and Models in Software Engineering, etc. | | | 58 | | |
ICS 539: Special Topics In Systems
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
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
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
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
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
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
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. |
|
Compliance Details javascript:commonShowModalDialog('{SiteUrl}/_layouts/itemexpiration.aspx?ID={ItemId}&List={ListId}', 'center:1;dialogHeight:500px;dialogWidth:500px;resizable:yes;status:no;location:no;menubar:no;help:no', function GotoPageAfterClose(pageid){if(pageid == 'hold') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/hold.aspx?ID={ItemId}&List={ListId}'); return false;} if(pageid == 'audit') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/Reporting.aspx?Category=Auditing&backtype=item&ID={ItemId}&List={ListId}'); return false;} if(pageid == 'config') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/expirationconfig.aspx?ID={ItemId}&List={ListId}'); return false;}}, null); return false; 0x0 0x1 ContentType 0x01 898 |
|