CS 101 COMPUTER PROGRAMMING I
Credits: 4 (4,0,2) Prerequisite: None
This course is an introduction to the craft of programming, techniques, practices and
applications. By the end of the semester, students should have a basic understanding of
programming concepts and constructs such as variables, numbers, strings, assignments, sequential
versus selective execution, nesting loops, functions, arrays, reference parameters, etc.
Furthermore, the student should have understood the importance of a structured approach to
software development. The course includes lab sessions that take place once a week. Lab projects
involve programming exercises that could be typically completed during the lab session.
Additionally students are required to work in team to develop and demonstrate an interactive
program as a class project.
CS 102 COMPUTER PROGRAMMING II
Credits: 3 (3,1,0) Prerequisite: CS 101
The purpose of this course is to develop an intermediate understanding of object-oriented
programming concepts. Some sophisticated uses of object-oriented concepts (inheritance,
polymorphism, encapsulation, multiple inheritance using interfaces, and Java Collection
Frameworks, Generic classes and Recursion) and techniques for building systems of multiple
interacting components. This course teaches students how to develop Java applications. Students
will develop and test Java applications (typically) using Netbeans IDE.
CS 175 COMPUTER ORGANIZATION AND DIGITAL LOGIC
Credits: 3 (3,1,0) Prerequisite: None
This course explores computer organization and digital logic. It covers an introduction to
information representation and number systems. It introduces students to Boolean algebra and its
usage in manipulation and minimization of Boolean functions. It covers combinational circuit
analysis and design, multiplexers, decoders, comparators, and adder, in addition to, basic
topics in computer organization such as CPU, Memory, Cache Memory, and Bus systems.
CS 202 COMPUTER APPLICATIONS FOR BUSINESS (For
non-IS and CS majors)
Credits: 3 (2,0,2). Prerequisite: at least 60 credit hours.
CS 202 introduces computer concepts within the framework of business applications. We will use
integrated software packages “Microsoft Office 2010” (Excel, Project, and Visio) to build a
solid foundation in the use of spreadsheets (decision making), Project Management and Visio for
graphical modeling. The main purpose of this course is to provide students with computer
application skills especially in the areas of accounting, finance and marketing. Applications
covered include electronic spreadsheet and its macros, statistical analysis, graphics and
presentation tools and Project Management. In addition, students must be proficient in using
drawing tool Microsoft Visio.
CS 210 DATA STRUCTURE AND ALGORITHMS
Credits: 3(3,1,0) Prerequisite: CS 102
This course introduces classical data structures and algorithms with emphasis on performance
using asymptotic analysis of algorithms and complexity classes. Fundamental data structure
includes lists, stacks, queues, heaps, trees, and graphs. The student will learn a variety of
algorithms for searching, sorting, traversing and hashing. In addition, the course covers the
application of these data structures and algorithms in real-life problems and implementing them
in modern programming languages.
CS 223 COMPUTATIONAL LINEAR ALGEBRA
Credits: 3(3,1,0) Prerequisite: CS 101, MATH 113
The course introduces the fundamentals of linear algebra in the context of computer science applications. Includes matrices, determinants, systems of linear equations, Euclidean vector spaces, real vector spaces, inner product spaces of linear equations, eigenvalues and eigenvectors, and linear transformation. Principal component analysis. Singular value decomposition. Linear discriminant analysis. Matrix factorization techniques Applications of linear algebra in Data Science, Machine Learning, Computer Graphics and Quantum Computing
CS 285 DISCRETE MATHEMATICS FOR COMPUTING
Credits: 3(3,1,0) Prerequisite: CS 101
The course introduces the students to mathematical logic, fundamental discrete structures, such
as: sets, functions, relations and graphs. Mathematical reasoning and various counting
techniques are also covered in the course. Throughout the course students apply the techniques
they learn to simplified practical problems. This course prepares the students for higher level
computing courses where these concepts are of fundamental importance
CS 311 DESIGN AND ANALYSIS OF ALGORITHMS
Credits: 3(3,1,0) Prerequisite: CS 285,CS210
Introduction to fundamental techniques for designing and analyzing algorithms, including
asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms; data
structures; dynamic programming; graph algorithms; and randomized algorithms. Finally, the
course will introduce the different classes of complexity theory, which explain the
intractability of some problems and a classification of problems by their complexity.
CS 313 INTRODUCTION TO DATA SCIENCE
Credits: 3(3,1,0) Prerequisite: CS210, STAT101
The Introduction to Data Science course will survey the foundational topics in Data science, Data Manipulation, Data Analysis with Statistics and Machine Learning. Students will learn Python, Python data structures including Numpy, Pandas and visualization techniques using Matplotlib and seaborn. Students will learn how to apply basic machine learning concepts for classifications and regression. Student will work on a group project to apply learned concepts on one of the many Data Science applications.
CS 315: PARALLEL AND MULTICORE PROGRAMMING
Credits: 3(3,1,0) Prerequisites: CS175, CS 210
This course is an introduction to parallel programming with a special emphasis on the techniques
appropriate to multicore systems. The topics covered include performance analysis and tuning,
data and task parallelism, synchronization techniques, shared data structures, and load
balancing. The course features many hands-on practice sheets plus a term project.
CS 320 PROGRAMMING LANGUAGES: CONCEPTS AND
PARADIGMS
Credits: 3(3,1,0) Prerequisite: CS210
CS 320 provides undergraduate students with an overview of the theoretical foundations of
programming languages. Topics covered in this course include: introduction to different language
paradigms (functional, logic and object-oriented), the history of programming languages and
language design principles, syntax specification (using BNF, EBNF, and syntax diagrams), central
semantic issues of programming languages (declaration, allocation, evaluation). Major languages
covered include C, C++, Smalltalk, Java, Ada, ML, Haskell, Scheme, and Prolog; many other
languages are discussed more briefly.
CS 330 INTRODUCTION TO OPERATING SYSTEMS
Credits: 3(3,1,0) Prerequisites: CS 210, CS175
This course explores the evolution, services, and structures of operating systems. It covers the
basic concepts of operating system design and implementation and management of system resources
such as Central Processing Unit (CPU), Input/output (I/O) devices, memory, and software.
Examples given from modern operating systems such as Unix and Windows-driven operating systems
are scrutinized.
CS 331 DATA COMMUNICATIONS AND COMPUTER NETWORKS
Credits: 3(3,1,0) Prerequisite: CS 175, CS 210
This course introduces the basic concepts in data communication and computer networks. Topics
covered include the nature of data communication, characteristics of computer networks, the
ISO-OSI network protocol layers, topologies and models, error detection and correction codes,
and network performance considerations.
CS 336 NETWORK OPERATIONS AND ADMINISTRATION
Credits: 3(3,0,1) Prerequisite: CS 331
This course surveys network operations and provides an overview of TCP/IP network management;
network planning, configuring, installing and diagnosing; network monitoring, analysis and
performance tuning; network security; users accounts; and managing system resources.
CS 340 INTRODUCTION TO DATABASE SYSTEMS
Credits: 3(3,1,0) Prerequisite: CS 210
This course provides a solid background in database systems and modeling. Following an overview
of database systems (definitions, evolution, architecture and applications), data models are
examined. Topics discussed include entity-relationship and relational data models; database
query languages and standards; and database design: theory and methodology.
CS 355 COMPUTER ARCHITECTURE
Credits: 3(3,1,0) Prerequisite: CS 175
This course broadly surveys the design of computer systems and components. Topics covered: basic
processor organization, data and control paths of the simple processor, hardwired and
micro-programmed control unit, RISC vs. CISC organization. Abstract views of the computer at
various levels are examined in terms of high-level language, OS, assembly language and internal
register-transfer level (RTL), I/O organization, memory hierarchy, and virtual memory.
CS 360 COMPUTER GRAPHICS
Credits: 3(3,1,0) Prerequisite: CS 210
This course introduces the basic elements and algorithms of computer graphics including design,
creation and manipulation of two and three dimensional graphics. Students will learn about the
different application domains of graphics. Students will produce computer graphics applications,
which represent, manipulate and display geometric information.
CS 370 INTRODUCTION TO ARTIFICIAL INTELLIGENCE
Credits: 3(3,1,0) Prerequisite: CS 210
This course provides an overview of Artificial Intelligence (AI) – definitions, evolutions and
applications. Subject areas looked at include: problem solving; knowledge representation methods
and techniques; structures and strategies for state space search; and heuristic search
techniques.
CS 375 WEB DESIGN
Credits: 3(3,0,1) Prerequisite: SE 371
This course introduces intermediate to advanced web page design techniques. Topics include
effective use of graphics, fonts, colors, navigation tools, advanced markup language elements,
as well as a study of bad design techniques. Upon completion, students are able to employ
advanced design techniques to create functional and high impact web pages.
CS 381 SYSTEMS PROGRAMMING
Credits: 3(2,0,2) Prerequisite: CS 330
The course covers the following topics: systems programming at hardware or OS levels; software
for systems programming (e.g., C++ builder); Shell/ Windows Interface programming; design and
implementation of applications/ system's functions; and debugging tools.
CS 387 MOBILE APPLICATIONS DEVELOPMENT
Credits: 3(3,0,1) Prerequisite: SE 371
This course examines the principles of mobile application design and development. Students will
learn application development on the Android platform. Topics will include characteristics of
Mobile Applications; Designing user interfaces; Displaying multimedia contents such as pictures,
menus, audio and video; data handling; network techniques and location based services. Students
are expected to work on a project that produces a professional-quality mobile application.
Projects will be deployed in real-world applications.
CS 391 COMPUTER AND NETWORK SECURITY
Credits: 3 (3,0,1) Prerequisite: CS 331
This course covers major aspects of computer and network security. It starts with standardized
definition of security, including security services, security attacks, then proceeds to cover
many cryptographic techniques such as ciphers, hash functions, MAC techniques, key management
approaches, digital certificates and digital signatures. The course also covers Network security
domain, where network vulnerabilities are addressed through email security, Secure Socket Layer
(SSL), IP Security (IPsec) and wireless network security topics. Operational security and
policies are introduced by presenting ethical hacking, intrusion detection/prevention systems
and firewalls.
CS 412 THEORY OF COMPUTATION
Credits: 3(3,1,0) Prerequisite: CS 285
This course probes the theory of computation. Topics covered include: foundations – sets,
relations and languages; finite automata, Turing machines; decidability and computability,
computational complexity and NP-completeness.
CS 415 INTERNET OF THINGS (IoT)
Credits: 3(3,0,1) Prerequisites: Senior Level
The course on Internet-of-Things (IoT) aims at preparing students to the IoT market in Saudi
Arabia, given the increasing demand for engineers on this hot emerging area. The course presents
the latest technologies, architecture, communication protocols and trends that are contributing
to the evolution of the Internet-of-Things (IoT). It will provide an overview of IoT
applications and its impact on the world economy. The course will also cover the technologies
and cyber-physical platforms that transform the physical world into digital data thus allowing
to connect physical things to the Internet. We will also cover networking and communication
protocols (LoRa, SigFox, NarrowBand IoT, 5G, IEEE 802.15.4) that represent the major actors in
the IoT ecosystem. IoT streaming applications used in IoT will be reviewed such as Apache Kafka
and MQTT protocol. A major part of the course will deal with developing real-world applications
prototypes for the Internet-of-Things from the sensor design to the end-user applications to
solve existing problems in the society. At the end of this course, the student will be ready to
enter the IoT market or making his own startup.
CS 417 BUSINESS INTELLIGENCE
Credits: 3(3,0,1) Prerequisites: CS 340
This course looks at the theory and practice of data mining applied for business. The course
focuses on practical applications of data mining for business decision making. Generally
available tools (e.g., EXCEL) are used to illustrate the development of decision support
applications for the modern data-centric enterprise. Lessons are given on general theoretical
and implementation principles; specific methods and techniques; and critical reviews of
case-studies. Other topics include: data analysis methods, data mining processes, descriptive
modeling, and predictive modeling for business decision-making.
CS 421 COMPILER CONSTRUCTION
Credits: 3(3,0,1) Prerequisite: CS 320
The course is designed to cover the basic techniques that underlie the practice of Compiler
Construction. Examination of the theory and tools involved includes: lexical analysis and
parsing; syntax-directed translation; intermediate and machine code generation; optimization;
and run- time organization.
CS 425 ADVANCED SOFTWARE ENGINEERING
Credits: 3(3,0,1) Prerequisite: CS 225
This course goes deeper into the ever-expanding realm of Software Engineering (SE). Following a
brief review of SE fundamentals, these software areas are probed: qualities and principles;
verification and validation processes; tools and environments; testing and maintenance;
interactive technology; and project management.
CS 427 NETWORK DESIGN
Credits: 3(3,0,1) Prerequisite: CS 331
The course surveys an extensive range of topics relating to Network Design (ND). Items covered
include: ND basic concepts, terminology and methodology; ND evaluation – characterizing the
existing network, network traffic, and identifying customer needs; logical ND – designing
network topology, models for naming addressing, selecting bridging, switching and routing
protocols, developing network security and network management strategies; physical ND –
selecting technologies and devices for campus networks, selecting technologies and devices for
enterprise networks, testing optimizing and documenting the network design.
CS 430 ADVANCED OPERATING SYSTEMS
Credits: 3(3,0,1) Prerequisite: CS 330
This course takes in-depth looks at advanced concepts in operating systems. Items under
inspection include: management of concurrent processes; security and protection of computer
systems; distributed file systems; and virtual memory. Ample opportunity is provided for hands-
on experiments in programming concurrent applications.
CS 431 EMERGING TOPICS IN NETWORK SECURITY
Credits: 3(3,0,1) Prerequisite: CS 391
This course gives opportunities to cover emerging security topics in different types of
networks. Such networks include the Internet and its related network services such as Interne of
Things (IoTs) and cloud services. Also, the security of Mobile networks (4G & beyond) and
Wireless networks could be studied. Wireless networks whether infrastructure-based such as WLAN
(IEEE802.11), WiMax (IEEE802.16) or infrastructure less networks such as Mobile Ad hoc Networks
(MANET) could be also considered. Moreover, security protocols of Wireless Sensor Network (WSN)
could be investigated, threats and hacking methodologies, recent security challenges and
solutions will be discussed and critically analysed. Students are expected to gain practical
experience and skills through the use of several security tools/simulators.
CS 435 DISTRIBUTED SYSTEMS
Credits: 3(3,1,0) Prerequisites: CS 330, CS 331
This course introduces students to distributed and parallel systems. It covers process
distribution and communication, data distribution, scheduling, concurrency, resource sharing, synchronization, naming, abstraction and modularity, failure handling, distributed programming models, distributed file systems, virtualization, and the use of instrumentation, monitoring and debugging tools in problem solving. Students will learn the design and implementation of today’s popular distributed system paradigms, such as Google File System and MapReduce.
CS 437 INTRODUCTION TO PARALLEL COMPUTING
Credits: 3(3,0,1) Prerequisite: CS 311
This is an introductory course on Parallel Computing – definitions, evolutions, applications,
and issues. Items of interest are: models of parallel computers – parallel architectures,
idealized parallel computer, and interconnection networks; basic Communications operations;
performance and scalability of parallel systems; MPI/PVM standard; and parallel applications and
programming.
CS 439 SEARCH ENGINES AND INFORMATION RETRIEVAL
Credits: 3(3,0,1) Prerequisite: CS 340
The course explores the basic and advanced techniques for extraction of information from search
engines. Items of interest relating to information retrieval examined in the course include: web
search engines; dictionaries and tolerant retrieval; indexing and invert indexing algorithms;
index construction and compressions; handling imprecise matching, ranking and relevance; and
machine learning and numerical methods in information retrieval, classification, clustering, web
search and challenges.
CS 440 DATABASE MANAGEMENT SYSTEMS: DESIGN AND
IMPLEMENTATION
Credits: 3(3,0,1) Prerequisite: CS 340
The course presents an overview of database management systems. Subject areas discussed feature:
logical data models - relational, hierarchical, network and object-oriented; architectures and
components of relational database management systems.
CS 447 BUILDING E-COMMERCE SYSTEM
Credits: 3(3,0,1) Prerequisite: SE 371
This course looks at building E-Commerce (EC) systems. After defining the nature of e-commerce
systems, the following topics are investigated: EC systems architecture – technical and logistic
requirements; user interactions – shopping cart model, handling orders and payments; deploying,
marketing and managing e-shops; and security issues.
CS 451 ENTERPRISE RESOURCE PLANNING
Credits: 3(3,0,1) Prerequisites: CS 340,
This course introduces the major techniques relating to Enterprise Resource Planning (ERP)
systems. ERP software systems provide comprehensive management of financial, manufacturing,
sales, distribution and human resources across the enterprise. The course starts by showing how
ERP systems provide the foundation for a wide range of e-commerce based processes including
web-based ordering and order tracing, inventory management, and built-to-order goods. It
explains how ERP systems work, and highlights their role. CS 451 is a useful course for business
students interested in information systems management.
CS 455 COMPUTATIONAL BIOINFORMATICS
Credits: 3(3,0,1) Prerequisite: CS 311
This course presents an overview of important applications of computers to solve problems in
biology. The aim of the course is to introduce CS students to modern computational practices in
bioinformatics. Major topics covered are computational molecular biology (analysis of protein
and nucleic acid sequences), biological modeling and simulation (including computer models of
population dynamics, Bioinformatics databases, BLAST). The course concentrates on the
algorithmic details of bioinformatics.
CS 460 INTRODUCTION TO ROBOTICS
Credits: 3(3,0,1) Prerequisites: CS 210, Instructor consent
The objective of this course is to present the fundamental concepts to develop autonomous mobile
robots. The course covers the basics of mobile robots control, kinematic theory, navigation,
localization and perception. The course will consolidate the understanding of theoretical
concepts through practical hands-on activities pertaining to robot programming and deployment.
The aim of this course is to give PSU students, in computer science and engineering colleges, an
opportunity to discover the world of robotics, and design and develop real robotic applications.
CS 462 TOPICS IN MULTIMEDIA
Credits: 3(3,0,1) Prerequisite: SE 371
The course introduces techniques and applications relating to multimedia. The two major subject
areas of focus are: 1) a study of the principles and practice in computer-enhanced multimedia,
and 2) skills development for making multimedia products by incorporating graphics, animation,
video, sound and text.
CS 465 MACHINE LEARNING
Credits: 3(3,0,1) Prerequisite: CS311, , Instructor consent
This course covers the theory and practice of machine learning from a variety of perspectives.
It explores topics such as learning decision trees, neural network learning, statistical
learning methods, genetic algorithms, Bayesian learning methods, explanation-based learning, and
reinforcement learning. Typical assignments include neural network learning for face recognition
and decision tree learning from databases of credit records.
CS 469 DIGITAL IMAGE PROCESSING
Credits: 3(3,0,1) Prerequisites: CS 210, Instructor consent
The course deals with image processing and its applications. Students learn the fundamental
concepts of visual perception and image acquisition, together with the basic techniques of image
manipulation, segmentation and coding, and a preliminary understanding of pattern recognition
and computer vision.
CS 470 ADVANCED ARTIFICIAL INTELLIGENCE
Credits: 3(3,0,1) Prerequisite: CS 370
The course delves deeper into Artificial Intelligence with the focus on knowledge-based systems
and natural language processing.
CS 471 DATA MINING
Credits: 3(3,0,1) Prerequisites: STAT 101, CS 340
This course introduces Data Mining (DM). DM topics range from statistics to machine learning to
database, with a focus on analysis of large data sets. The course requires students to apply
data mining techniques in order to complete a project involving real data.
CS 476 NATURAL LANGUAGE PROCESSING
Credits: 3(3,0,1) Prerequisites: CS 320, Instructor consent
The course is about natural language processing – representation, parsing, natural language
generation, and the interaction between long-term knowledge and understanding with a focus on
Arabic language processing.
CS 478 CONTENT MANAGEMENT
Credits: 3(3,0,1) Prerequisites: CS 340, SE 371
This course examines the application of the principles of information retrieval and information
architecture to the design of websites and intranets. Topics discussed include: emerging role of
the web content manager; organizing information for retrieval; usability design in websites;
project management; conceptual design in web site development; and accessibility issues.
CS 483 COMPUTER ARABIZATION
Credits: 3(3,0,1) Prerequisite: Instructor consent
The course explores the use of Arabic in Computer Science in the areas of layout, characters
shapes and processing, Arabic code pages, Arabic language structure and features.
CS 489 SELECTED TOPICS IN COMPUTER SCIENCE
Credits: 3(3,0,1) Prerequisite: Instructor consent
This course covers topics in the computer science discipline not covered by other CS courses.
Students are encouraged to propose topics for this course.
CS 492 CO-OP [COOPERATIVE EDUCATION]
Credits: 10 Prerequisite: Department consent
The Co-Op is a career related professional program available to all Computer Science students.
It is designed to help students build on skills already learned in the classroom and acquire new
ones as well. Co-Op education is available to CCIS students who have accumulated the requisite
number or more credits. The Co-Op option counts for 10 credit hours (CRs) for practical onsite
experience over a 7 month period, i.e. spanning one semester and a summer.
CS 493 CYBERSECURITY CAPSTONE PROJECT
Credits: 3(1,0,3). Prerequisite: Department approval
This course allows the student to practice on what they have learned during previous security
courses. Student will be able to design and build a security system, to tackle a cybersecurity
problem in an existing system. The course gives the student an opportunity to work with an
organization to assess possible risks and study its security needs based on its organizational
objectives and business requirements. Alternatively, a student can cooperate with sponsors or be
part of a research group.
CS 494 INDUSTRY LINK
Credits: 3 Prerequisite: Department consent
This is an elective course that follows a pre-planned program administered by the university/
department. It involves spending a specified period of time in several local – and possibly
outside – computing institutions and companies and/or enrolling in their orientation programs.
CS 495 EMERGING TOPICS IN COMPUTER SCIENCE
Credits: 3(3,0,1) Prerequisite: Instructor consent
This course covers topics in the computer science discipline that recently gained innovative
attention in Computer Science. Students are encouraged to propose topics for this course.
CS 498 SENIOR PROJECT I
Credits: 1(1,0,0) Prerequisite: Junior status, Department consent
Students enrolled in this course would apply their computing knowledge and skills acquired during earlier course work. This includes project planning, requirements analysis, design (web, database, interface etc), system architecture (software/hardware), interpersonal and writing skills to create a finished set of design documents.
CS 499 SENIOR PROJECT II
Credits: 3(3,0,0) Prerequisite: CS 498
This course provides students with an opportunity to integrate their academic work in the design and development of a significant computing solution that showcases the students’ skills. Students are expected to work in teams of 3-4 students addressing problems and challenges from the real world and develop appropriate computing-based solutions. This course continues work done in CS498, based on the first course deliverables, students will implement the selected solution(s) and demonstrate their work.
CYS 401 FUNDAMENTALS OF CYBERSECURITY
Credits: 3(3,0,1) Prerequisite: Junior Level
Fundamentals of Cybersecurity was designed to help students develop a deeper understanding of
modern information and system protection technology and methods. This course is designed to
provide an overview and understanding of established cyber security strategy as well as provide
students with the opportunity to engage in strategic decision making in the context of cyber
security.
CYS 402 SECURE SOFTWARE DEVELOPMENT
Credits: 3(3,0,1) Prerequisite: CYS401
This course covers the concepts of software assurance and the fundamentals of the secure
software lifecycle as it relates to software development. The course will discuss the secure
software development lifecycle phase by phase establishing and discussing best practices in
these phases. Students will experience the secure software lifecycle process by developing
concrete artifacts and practicing in a lab environment.
CYS 403 SECURITY RISK MANAGEMENT, GOVERNANCE &
CONTROL
Credits: 3(3,0,1) Prerequisite: CYS401
This course will focus on establishing the balance between business use and safeguard policies.
It will concentrate on preparation of Security policies as well as implementing and assessing
them based on business process. This course extends to focus on auditing, governance, internal
controls, and standards contained within policy frameworks. It will look at processes to
evaluate risks (Risk Assessment) based on current legislation, practices, and techniques.
CYS 404 CYBER-PHYSICAL SYSTEMS SECURITY
Credits: 3(3,0,1) Prerequisite: CS331 and CYS401
This course provides an introduction to security issues relating to various cyber-physical. The
goal is to expose students to fundamental security primitives specific to cyber-physical systems
and to apply them to a broad range of current and future security challenges. Students will work
with various tools and techniques used by hackers to compromise computer systems, smart
technologies, IoT devices, embedded systems or otherwise interfere with normal operations. This
course will offer insights from cutting edge applied research about the strategies and
techniques that can be implemented to protect against cyber-attacks.
CYS 405 PENETRATION TESTING AND ETHICAL HACKING
Credits: 3(3,0,1) Prerequisite: CS331 and CYS401
This course covers the study of techniques used by hackers to break into an organization. It
gives students the necessary tools to have a hacker mind-set in order to protect network against
future attacks. It gives an introduction to the principles and techniques associated with
cybersecurity practice known as penetration testing or ethical hacking. This course illustrates
the differences between ethical and unethical penetration testing, describes and explains the
phases of a penetration test including planning, reconnaissance, scanning, exploitation,
post-exploitation, and result reporting. Students will be able to apply different tools and
methods to conduct penetration tests for the purpose of discovering how system vulnerabilities
can be exploited and learn to avoid such problems.
DMS 310 INTRODUCTION TO VISUAL DESIGN
Credits: 3(3,0,1) Prerequisite: Junior Level
This course introduces visual design through formal studies. This course covers understanding of
elements and principles of design, typography, composition and branding. Students are able to
produce designs such as posters, brochures, branding and package design.
DMS 322 FOUNDATIONS OF INTERACTIVE DIGITAL MEDIA
Credits: 3(3,0,1) Prerequisite: Junior Level
The course covers fundamental of digital media elements such as text, graphics, sound, video and
animation. Students will be involved in planning, designing and producing interactive digital
media projects in this course. Students will learn various types of digital media authoring
tools that can be used in the development of digital media application. This course offers the
opportunity for students to develop their design and development skills in digital media areas.
DMS 327 3D MODELING AND DESIGN
Credits: 3(3,0,1) Prerequisite: Senior Level
This course offers students an introduction to the 3D design and modeling. The course covers
related techniques needed to create 3D objects and scenes from modeling to rendering, including
modeling with primitives and polygons, texturing, lighting and animation. Students will produce
contents related to basic 3D objects and animation.
DMS 332 NETWORK-BASED MULTIMEDIA
Credits: 3(3,0,1) Prerequisite: CS 331
This course introduces the principles of designing multimedia applications then explores recent
technology advances to support multimedia application over networks. Major topics include
multimedia compression, protocols and standards for audio/video streaming, VoIP, and the quality
of service techniques. It discusses the real time protocols such RTP and addresses the
challenges of media streaming over wireless network and security issues.
DMS 351 PRINCIPLES OF ANIMATION
Credits: 3 (3,0,1) Prerequisite: Junior Level
This course covers the basic concepts of animation, principles of animation and animation
production process. This course also exposes students to a variety of animation techniques.
Students will create short animation productions both in traditional (cel animation,
rotoscoping, clay and stop-motion animation) and 2D computer generated animation with correct
sketching, storyboarding, key framing, character design, background layouts, timing and sound
effects.
DMS 401 MEDIA AUTHORING TOOLS AND TECHNOLOGIES
Credits: 3 (3,0,1) Prerequisite: DMS 322
This course introduces the principles, concepts and terminology of digital media authoring
systems. The underlying development engines are described and how these systems work are
explained. The most current digital media authoring tools and technologies are surveyed and
critically assessed. With the above background in place, students are given the opportunity to
use these tools and technologies to author complex multimedia content related to real life
applications with an emphasis on creativity, design and team work.
DMS 426 GAME DEVELOPMENT
Credits: 3(3,0,1) Prerequisite: Senior Level
This course emphasis on the theoretical and practical foundations of game development. Students
will learn the art of designing a game concept and documentation, developing the game prototype
and testing the game ideas. Upon completion of this course, students will be able to apply game
design and development techniques to bring a game from design through production to playable
experience. Topics covered include: history of digital games, game design and development
methodologies, game engines and tools.
DMS 471 BUILDING RICH WEB APPLICATIONS
Credits: 3(3,0,1) Prerequisite: SE 371
This course makes a transition from traditional GUI IDEs to entirely programmatic environment
using a framework such as FLEX/MXML and an ECMA script-compliant scripting language. The course
makes use of Communications protocols to transfer serialized data and objects to enhance the
speed of Communications between Rich Internet Applications (RIAs) and server. The course helps
students learn how to use programming methodologies such as interfaces to create layers of
abstraction and design patterns – e.g. MVC, Observer or Singleton to deal with common
requirements for web-based, interactive media applications. The end point of the course is for
students to design sophisticated RIAs.
DMS 495 EMERGING TOPICS IN DIGITAL MEDIA
Credits: 3(3,0,1) Prerequisite: Senior Level
The course provides a platform for students to develop a portfolio of work based on the current
demand from the industry. Students will work collaboratively to develop a project in digital
media areas throughout the course. Students are exposed to the cycle of digital media
application developments with real users. Appropriate tools and techniques will be covered upon
execution of the project.
ETHC 303 ETHICAL AND SOCIAL ASPECTS OF COMPUTING
Credits: 3(3,0,0) Prerequisite: Junior level
The course concentrates on the theory and practice of computer and information ethics. It covers
the basics of ethical decision-making, and emphasizes group work and presentations. Topics
studied in the course include risk and reliability, privacy, info-war, crime, access, business
ethics, copyright, patents, and more.