204 Courses of Instruction
CS-339. Computer Architecture and Operating Systems. 3 Credits.
This course covers computer architecture and operating systems. From a computer architecture standpoint,
we will study hardware components, gates/buses/memory, and their use in constructing adders, comparators
and addressing schemes. We will also cover machine level representation of data, computer architecture and
organization, assembly level machine organization, interfacing and communication, memory systems organization
and architecture, functional organization, multiprocessing and alternative architectures, performance enhancements,
and distributed architectures. From an operating systems standpoint, we will study privileged and non-privileged
states, processes and threads (and their management), memory (real, virtual, and management), files systems,
access controls (models and mechanisms), access control lists, virtualization/hypervisors, how does an OS protect
itself from attack?, security design principles as applied to an OS, domain separation, process isolation, resource
encapsulation, and least privilege. Prerequisites: CS-231 AND CS-332.
CS-355. Foundations of Programming Systems. 3 Credits.
A comprehensive overview of the design and implementation of modern programming systems. Programming
languages and compiling techniques, operating systems, database structures, artificial intelligence, and knowledge
based systems are studied. Prerequisites: CS-232.
CS-370. Data Structures. 3 Credits.
This course provides students with an understanding of the basic abstract data types, associated operations and
applying them to solve problems. Topics include: strings, lists, vectors, arrays, heaps, queues, stacks, buffers,
searching and sorting, trees, and data formats. Prerequisites: CS-332 MA-123 OR MA-143.
CS-415. Introduction to Parallel Robotics and Cell Phone Programming. 3 Credits.
Introduction to parallel programming in Ada and Java. Students will write programs for cell phones and intelligent
devices such as a robot. Prerequisites: CS-231 OR CS-237.
CS-489. Network Technology, Protocols, and Defense. 3 Credits.
In this course we will provide students with an understanding of the components in a network environment, their
roles, and communication methods and the techniques that can be taken to protect network and communication
assets from cyber threats. Topics include: network architectures/infrastructure/services/protocols (TCP/IP - v4 and
v6, DNS, HTTP, SSL, TLS), network address translation and sub-netting, network analysis/troubleshooting, network
evolution (change management, BYOD), remote and distributed management, implementing IDS/IPS, firewalls and
VPNs , honeypots and honeynets, network monitoring and traffic analysis, minimizing exposure (attack surface
and vectors), network access control (internal and external), DMZs / proxy servers, network hardening, mission
assurance, network policy development and enforcement, network operational procedures, and network attacks (e.g.,
session hijacking, man-in-the-middle). Prerequisites: IS-380.
CS-490. Independent Study in Computer Science. 3 Credits.
For the superior student to pursue, under faculty supervision, for research topics not covered in courses offered.
CS-495. Cryptology. 3 Credits.
This course gives a historical introduction to Cryptology, the science of secret codes. It begins with the oldest
recorded codes, taken from hieroglyphic engravings, and ends with the encryption schemes used to maintain privacy
during Internet credit card transactions. Since secret codes are based on mathematical ideas, each new kind of
encryption method leads in this course to the study of new mathematical ideas and results. The first part of the
course deals with permutation-based codes: substitutional ciphers, transpositional codes, and Vigenere ciphers.
In the second part of the course, the subject moves to bit stream encryption methods. These inlcude block cipher
schemes such as the Data Encryption Standard (DES). Public key encryption is the subject of the final part of the
course. We learn the mathematical underpinnings of Diffie-Hellman key exchange, RSA and Knapsack codes.
Software packages and tools will also be studied. Prerequisites: IS-381.
CS-496. Cybersecurity and Digital Forensics Lab. 3 Credits.
This course is designed to provide students with hands-on experience with cyber security and digital forensics tools
and the skills to apply forensics techniques throughout an investigation life cycle with a focus on complying with legal
requirements. The course will accomplish its goals through lecture, classroom discussion, and a number of in-lab
exercises and projects. Topics and assignments cover: network attacks, intrusion detection systems, digital forensics
tools, legal compliance and applicable laws, affidavits , how to testify, case law, chain of custody procedures, digital
investigations, E-discovery, authentication of evidence, metadata, root cause analysis, and using virtual machines for
analysis. Prerequisites: IS-381 OR CS-495.