higher languages such as C/ C++.
Prerequisite: CPS 1191.
design, web page publishing, JavaScript,
Java Applets, CGI, Web security, creating
dynamic web pages using a database and
other web enabling tools.
as practical examples to work with.
Students will learn about the history of
Operating Systems, Computer Security
Basics, Desktop Virtualization, Disk
Operating System (DOS) and the
Command-Line Interface, Windows,
Linux, and Mac OS X. Prerequisite: None.
CPS 2271. Data Structures (I; 3) This
course introduces students to data
structures, including topics on linked
lists, doubly linked lists, circular lists,
stacks, queues, search strategies,
hashing, internal sorting algorithms,
external sort / merge algorithms, binary
trees, Btrees, B +- trees, sequential files,
random access files, file update
algorithms, bit maps, and memory
management algorithms. Prerequisite:
CPS 1192.
CPS 2300. Cyber Security I (I, on
demand; 3) The objective of this course
is to introduce students to the field of
cybersecurity, network and internet
architecture. Students will study
technologies, security protocols, policies
and practices designed to protect
networks, 193 computers, programs, and
data from attacks. The students will also
learn about viruses and other
vulnerabilities, and cyberattacks and the
techniques for identifying, detecting and
defending against cybersecurity threats.
Prerequisite: CPS 1191.
CPS 3200 Computer Algorithms (II; 3)
This course covers the modern theory of
algorithms, common algorithmic
paradigms, the relationship between
algorithms and programming, basic
performance measures and analysis
techniques for real world problems. The
course goal is to provide a solid
background in algorithms for computer
science students, in preparation either
for a job in industry or for more
advanced courses at the graduate level.
Prerequisite: CPS1192.
CPS 3300. Cyber Security II (On demand,
II; 3) This is the second cyber security
course after Cyber Security I. The student
will learn contemporary security
technologies and issues, infrastructure
security management processes, risk
analysis, security planning, analysis and
safeguards, industrial espionage, cyber
terrorism, information warfare, security
policies, contingency planning, incidence
handling and response, and security
standards. Prerequisite: CPS 2300.
CPS 3316. Computer Networks (II; 3)
This course teaches students
fundamentals of computer networks,
covering topics on local and wide area
networks, media, topologies, layered
networking models, hardware and
software; network setup and
administration, network architecture,
communication protocols, and aspects of
network administration that include
server folders and permissions.
Prerequisites: CPS 1191 or its equivalent
CPS 3320. Database Systems (II; 3) The
objective of this course is to introduce
relational database systems and provide
practical experience in using a popular
database package. Contemporary
database systems such as Oracle and
Microsoft Access will be used extensively
in this course. Students will learn about
relational database principles, the SQL
query language, application development
using forms, creating and using tables
and queries, database design and
implementation issues. Prerequisites:
CPS 1192 or permission of instructor.
CPS 3325. Java Programming (II; 3) The
objective of this course is to teach the
basics of Java programming and object
oriented programming. Students will
learn both Applets and Application
programming in Java. The topics covered
include compilers and interpreters,
objects and primitive data, control flow,
writing classes, enhancing classes, arrays
and vectors, inheritance, exceptions, I/O
streams, software engineering, recursive
programming, and implementation of
data structures. Prerequisites: CPS 1191
or its equivalent.
CPS 3340. Computer Architecture (I; 3)
The goal of this course is to give students
a solid foundation in the fundamental
concepts of CPU, memory system and I/O
system design, and to expose them to a
number of more advanced topics in
these areas. Instruction set architecture,
memory subsystem organization,
interfacing concepts and issues arising in
managing communication with the
processor. Prerequisite: CPS 1192.
CPS 3465. High Performance Computing
(II; 3) Fundamentals of parallel
computing including shared memory
paradigm, semaphores, and dead lock;
distributed memory paradigm including
point-to-point and collective message
passing constructs in MPI, parallel I/O,
vector and structure derived data types;
speed-up and scalability, checkpoint
restart, parallel debugging; techniques,
performance profiling, graphical and
visualization techniques; parallel
libraries, and systems modeling
applications in high performance
computing. Prerequisite: CPS 2271 and
MTH 2503 or permission of the
instructor.
CPS 4210. Artificial Intelligence (II; 3)
Introduction to concepts, principles,
challenges and research in major areas of
CPS 4420. Software Engineering (II; 3)
This course teaches students design and
implementation issues for large software
CPS 4460. Advanced Topics (I, II, III; 1-3)
This course is designed to meet the
needs of advanced students as a