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
This course provides a robust foundation in AI and Data Science, integrating theoretical knowledge with practical skills. It emphasizes developing students' data literacy skills, including data wrangling, preparation, cleaning, and interactive exploration. The course also introduces Statistical Learning as the groundwork for both supervised and unsupervised learning. Some fundamental machine learning models will be covered, including linear regression and binary classification. The course emphasizes practical applications of AI and Data Science as students will apply various algorithms to provide sustainable solutions for real-world problems. The course also emphasizes the ethical considerations, societal impact, and professional responsibilities involved in Data Science and AI, fostering a sense of continuous learning and professional development.
CS 320 PROGRAMMING LANGUAGES: CONCEPTS AND
PARADIGMS
Credits: 3(3,1,0) Prerequisite: CS210
The course provides the students with an overview of the theoretical foundations of programming languages. Topics covered in the course include: introduction to different programming language paradigms (functional, logic and object-oriented), the history of programming languages, programming language design principles, language design principles, syntax specification (using BNF, EBNF, syntax diagrams) and semantics. 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 offers an in-depth introduction to database systems and modeling, aiming to equip students with the essential skills to engage with databases in real-world scenarios. The course begins with a comprehensive overview of database systems, including their definitions, historical evolution, architecture, and diverse applications. As the course advances, students will explore different data models, giving particular attention to entity-relationship, relational, and other pertinent models. A significant emphasis will be placed on database query languages and standards, providing a practical understanding of how to interact with databases effectively. The course also covers database design, incorporating theoretical foundations and methodological approaches. Throughout the course, the goal is to introduce the fundamentals of database systems and prepare students for practical engagement with database technologies in professional contexts.
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 offers a comprehensive introduction to machine learning, covering key concepts and techniques in the field. Topics include supervised learning (e.g., regression, classification), unsupervised learning (e.g., clustering, dimensionality reduction), and model evaluation strategies. The course emphasizes practical applications of machine learning, throughout the course, students will apply machine learning algorithms to real-world datasets, gaining hands-on experience in model development and optimization.
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 offers NLP foundations to bridge the gap between human language and computers. Students will learn foundational methods in language representation, syntactic and semantic parsing, natural language generation, and the integration of long-term linguistic knowledge in NLP applications. The course emphasizes both theoretical principles and hands-on experience in building and evaluating NLP models, analyzing textual data, and developing applications in real-world context.
CS 481 BIG DATA ANALYTICS
Credits: 3(3,0,1) Prerequisite: CS316
This course introduces students to the essentials of Big Data Analytics. It begins with an overview of big data, its significance, its application across various business sectors, and data ethics. Students will explore key big data technologies, focusing on the Hadoop ecosystem and its architecture, as well as storage solutions like distributed file systems, NoSQL databases, and cloud storage. The course covers data processing techniques, including MapReduce, YARN, and high-level tools like Pig, Hive, and Impala. Apache Spark is also introduced, with emphasis on RDDs, DataFrames, and Spark SQL for efficient processing. Students will learn to apply machine learning and deep learning techniques to big data, gaining the ability to extract valuable insights from large datasets. The course concludes with an exploration of data visualization tools and methods, enabling clear and effective interpretation of big data. Through this curriculum, students will develop a solid foundation in managing and analyzing big data.
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.