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 316 INTRODUCTION TO AI AND DATA SCIENCE
Credits: 3(3,1,0) Prerequisite: CS210, STAT101
The Introduction to AI and Data Science Course merges key concepts from Artificial Intelligence (AI) and Data Science (DS), designed for students eager to learn concepts related to these fields. The curriculum includes AI problem-solving strategies, data manipulation, analysis, and basic machine learning, as well as Python programming using essential libraries. Students will learn to apply AI and DS techniques to basic real-world scenarios through lectures and hands-on group projects, enhancing their problem-solving and analytical skills. This course aims to provide students with the tools needed for academic and professional success in AI and DS.
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 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 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 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 435 DISTRIBUTED SYSTEMS
Credits: 3(3,1,0) Prerequisites: CS 330, CS 331
This course introduces students to distributed and parallel systems. It discusses the design & organization of distributed systems and architectures. Topics include Parallel processing, multithreaded programming, distributed systems communication models, socket programming, RPC/RMI, and MapReduce programming model. Distributed systems core concepts such as process coordination, clocks & synchronization, dist transactions, data consistency, concurrency control, consensus, replication, fault tolerance, dist file systems, and security are also covered. Students apply knowledge and methods of parallel and distributed systems to analyze the performance of popular distributed system(s).
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 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 465 MACHINE LEARNING
Credits: 3(3,0,1) Prerequisite: CS316
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 316
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 471 DATA MINING
Credits: 3(3,0,1) Prerequisites: CS 316
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 316
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 481 BIG DATA ANALYTICS
Credits: 3(3,0,1) Prerequisite: CS316
This course harnesses the power of large-scale data in various domains. The course takes a practical approach, focusing on the technologies and techniques used to create Big Data Analytics applications. Students will learn about NoSQL big data management and how to use mapreduce analytics using Hadoop and related tools. They will work with map reduce applications and understand the usage of Hadoop related tools for Big Data Analytics. By the end of the course, students will be able to design, implement, and evaluate Big Data Analytics solutions using various technologies and tools. The course will have a strong practical component, with students working on real-world projects and case studies to apply the concepts and techniques learned in the course. By the end of the course, students will have gained the knowledge and skills necessary to work with large-scale data and contribute to the development of innovative Big Data Analytics applications.
CS 489 SELECTED TOPICS IN COMPUTER SCIENCE
Credits: 3(3,0,1) Prerequisite: Department 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 495 EMERGING TOPICS IN COMPUTER SCIENCE
Credits: 3(3,0,1) Prerequisite: Department 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 496 EMERGING TOPICS IN AI & DS
Credits: 3(3,0,1) Prerequisite: Department consent
This course covers topics in the AI & DS discipline that recently gained innovative attention in Computer Science. Students are encouraged to propose topics for this course.
CS 499 SENIOR PROJECT
Credits: 3(3,0,0) Prerequisite: Completion of 88 credit hours + Department Consent
This course provides students with an opportunity to integrate their academic work into the design and development of a significant computing product that showcases the students’ skills. Students are expected to work in teams addressing problems and challenges from the real world and develop appropriate computing-based solutions. Students would complete the senior project addressing the documentation,development, implementation, testing, experimental evaluation, and deployment phases of their work. The final project would be demonstrated to an audience.
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.
CYS 406 DATA AND NETWORK SECURITY
Credits: 3(3,0,1) Prerequisite: CS331 and CYS401
This course serves as a defensive techniques course to the Cybersecurity track whereby the data and network security defending methods are discussed. This course concentrates on computer and network defense and countermeasures by providing a solid foundation in advanced network and data security fundamentals. Topics to be covered include cryptography and network security controls.
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.