School of Engineering and Computer Science
Course Descriptions
Computer Science (CS)
CS-1210 C++ Programming
–Fa, Sp
2 hours
Introduction to computer programming, software engineering
principles, structured program design and implementation, using
the C++ programming language; students will become familiar
with common commands for managing the file system and
constructing programs in the Linux operating system. Two lecture
hours and one one-hour laboratory per week. (Fee: $50)
CS-1220 Object-Oriented Design Using C++
–Fa, Sp
3 hours
Continuation of CS-1210 C++ programming to include pointers,
and abstract data types; advanced topics include exception
handling, event-driven programming, and graphical user interface
(GUI); principles of object-oriented design are applied to
programming tasks in both the Linux and Windows environments.
Prerequisite: CS-1210 C++ Programming.
(Fee: $50)
CS-2210 Data Structures Using Java
–Fa, Sp
3 hours
Introduction to the proper use of data structures for
developing efficient software; data structures include stacks,
queues, priority queues, hash tables, trees, and graphs.
Students will develop skill in object-oriented design and the Java
programming language. Design project required.
Prerequisite: CS-
1220 Object-Oriented Design Using C++.
(Fee: $50)
CS-3310 Operating Systems
–Fa, Sp
3 hours
A state-of-the-art survey of operating system principles. Covers
fundamental technology and contemporary design issues such as
threads, real-time systems, multiprocessor scheduling, distributed
systems, and security. Course content is developed through
lectures, student research of the relevant literature, presentations,
and programming projects using both C++ and Java.
Prerequisite:
CS-1220 Object-Oriented Design Using C++.
(Fee: $50)
CS-3320 Linux Systems Programming
–Fa
3 hours
A detailed look at the Linux Operating System, including
basic system administration and advanced operating system
concepts. Students will gain proficiency in C programming and
in the modification of the Linux kernel and drivers. Students will
also gain an in-depth look at the security measures provided by
the Security-Enhanced Kernel.
Prerequisites: CS-1220 Object-
Oriented Design Using C++; CS-3310 Operating Systems.
(Fee:
$50)
CS-3350 Foundations of Computer Security
–Sp
3 hours
Introduction to computer security, including basic concepts,
security policy, access control, authentication and key control,
and cryptography. Students will complete several programming
assignments.
Prerequisites: CS-1220 Object-Oriented Design
Using C++.
(Fee: $50).
CS-3410 Algorithms
–Fa
3 hours
Introduction to classical algorithms that have broad application
in solving computer science problems; topics include analysis of
algorithms, advanced data structures, graph algorithms, numerical
methods, and NP-completeness.
Prerequisite: CS-2210 Data
Structures Using Java; MATH-2510 Discrete Math for Computer
Science
(Fee: $50)
CS-3510 Compiler Theory and Practice
–Sp
3 hours
Introduction to the foundational technology of modern
compilers, with emphasis on underlying theory and practical
techniques for implementing a compiler by applying object-
oriented and appropriate data structures. Design project typically
developing a compiler is required.
Prerequisite: CS-3410
Algorithms.
(Fee: $50)
CS-3610 Database Organization and Design
–Sp
3 hours
Introduction to the analysis, design, and implementation of
relational databases and the Structured Query Language (SQL);
topics include data modeling techniques, data model to logical
schema conversion techniques, relational algebra, SQL, database
file organizations, query evaluation, transaction management, and
client-server application architectures. Design project required.
Prerequisites: CS-2210 Data Structures Using Java. Corequisite:
MATH-2510 Discrete Mathematics for Computer Science.
(Fee:
$50)
CS-3920 Computer Science Internship
–Fa, Sp
1–3 hours
An opportunity for a computer science student to work closely
with an industrial advisor. Specific attention is given to solving
a particular problem(s) in the industry or firm. A faculty advisor
assists in supervising and approving the internship, including
assessing the number of credit hours. A final report (approximately
seven pages per credit hour) describing the experience, including
the problem and solution, is required. Must be arranged with a
faculty sponsor and work supervisor before starting. No more
than one hour of CS-3920 can be used to fulfill program technical
elective requirements.
Prerequisites: junior or senior computer
science major status; faculty advisor permission.
CS-3950 Topics in Computer Science
–Fa, Sp, Su
1–3 hours
Selected topics in computer science at the 3000-level that will
complement or extend existing 2000- and 3000-level courses
or expose students to topics not taught in other courses. Topics
may be proposed by the computer science faculty or students.
Prerequisite: permission of instructor.
CS-3980
1–3 hours
Independent Study in Computer Science
–Fa, Sp, Su
Opportunity to perform independent study or research in
computer science and allied fields of application. A formal
proposal for study must be approved by the faculty advisor before
registering for this course.
Prerequisites: junior or senior computer
science or engineering major status, and permission of instructor.
CS-3220 Web Applications
–Sp
3 hours
Introduction to the design and implementation of web-based
applications. Technologies such as HTML5, CSS3, Javascript,
JQuery, PHP, Java Servlets, XML, and MySQL are explored.
Multiple design projects required.
Prerequisite: CS-2210 Data
Structures Using Java.
(Fee: $50)
CS-4310 Cyber Defense
–Sp
3 hours
This course covers the best practices of cyber defense,
including wired and wireless network security fundamentals, the
installation, configuration, and administration of intrusion detection
and prevention systems and firewalls for both Windows and Linux
environments, and operating system and web server hardening.
Prerequisites: CS-1220 Object-Oriented Design Using C++; CS-
3310 CS-3310 Operating Systems.
(Fee: $50)
CS-4330 SoftWare Security
–Fa
3 hours
A detailed look at issues involved in providing secure software
systems. Students will study principles and practices of software
development that result in software that is robust and secure from
attack. Students will learn techniques for analyzing software to
determine whether it contains weaknesses that are vulnerable
to exploitation. Students will also explore reverse engineering
of software to understand the design of an existing software
component to determine its security and whether it could contain
malware.
Prerequisites: CS-3310 Operating Systems; CS3350
Foundations of Computer Security.
(Fee: $50)
CS-4410 Parallel Computing
–Fa
3 hours
Introduction to the exploitation of parallelism to solve
computational intensive problems; emphasis is placed on both the
message passing (using MPI) and the shared memory paradigms;
projects are required using both paradigms. Crosslisted as CS and
EGCP.
Prerequisites: CS-3310 Operating Systems. Corequisite:
CS-3410 Algorithms; permission of instructor.
(Fee: $50)
2016–17 Undergraduate Academic Catalog
Page
231
Course Descriptions
CS-1210 – CS-4410
ENGINEERING AND COMPUTER SCIENCE