Course Descriptions

Program Requirements:

Students must complete ten courses for the M.S. degree:
1. Three core courses: CSCI 6221 Advanced Software Paradigms; CSCI 6461 Computer Architectures; and CSCI 6212 Design and Analysis of Algorithms;
2. Four courses that provide depth in cybersecurity and constitute the graduate certificate in computer security and information assurance (CSIA); and
3. Three courses that give breadth in computer science.
 

Course Descriptions

Core Courses 
CSCI 6221 Advanced Software Paradigms
Object-oriented, procedural, functional, and concurrent software design paradigms; design patterns; software life-cycle concepts. Tradeoffs between compiled and interpreted languages. Examples from Ada, Java C, C++, and Perl.

CSCI 6461 Computer Architectures
Concepts in processor, system, and network architectures; architecture of pipeline, superscalar, and VLIW/EPIC processors; multiprocessors and interconnection networks. Cache coherence and memory subsystem design for multiprocessor architectures. Parallel and distributed system architecture; introduction to internetworking.

CSCI 6212 Design and Analysis of Algorithms
Design and analysis of algorithms. Turing machines; NP-Complete theory. Algorithm techniques: divide-and-conquer, greedy, dynamic programming, graph traversal, backtracking, and branch-and-bound. Applications include sorting and searching, graph algorithms, and optimization.

 

Computer Security and Information Assurance Courses  

CSCI 6532 Information Policy
Roles, issues, and impacts of computer-based information systems in national and international arenas, focusing on privacy, equity, freedom of speech, intellectual property, and access to personal and governmental information. Professional responsibilities, ethics, and common and best practices in information use. Design of computer systems that fit present and likely future realities and avoiding decisions likely to lead to nonadoption, costly retrofitting, or abandonment of these systems.

CSCI 6531 Computer Security
Introduction to functional description of cryptographic primitives. Risk analysis. Policy models: security, confidentiality, integrity, hybrid. Design principles: access control, information flow, confinement. Assurance: formal methods, evaluation. Malicious logic: security effects of programming languages.

CSCI 6541 Network Security
Security protocols and applications in local, global and wireless networks; IPSec and packet-level communication security systems; Network authentication and key-exchange protocols; Intrusion detection systems and firewalls; Secure network applications; Network worms and denial-of-service attacks; Formal methodologies for assessing and analyzing network security risks.

CSCI 6542 Computer Network Defense
Defending computer networks against the common methods and tools used to harm them, including network scans, viruses, worms, denial of service attacks, e-mail bombs, and buffer overflow attacks. Students attack and defend a real, full-featured network unconnected to any other network. Ethics and legal implications are also discussed.
 

Breadth Courses 

CSCI 6431 Computer Networks
Fundamental concepts in the design and implementation of computer communication networks and internet, their protocols, and applications. Layered network architectures, applications, network programming interfaces, transport, routing, and data link protocols, local area networks, network management, and network security; TCP/IP applications such as DNS, telnet, email, http.

CSCI 6441 Database Management Systems
Design and architecture of relational database management systems, Query languages, data models, index structures, design of database management systems, database application design.

CSCI 6231 Software Engineering
The life-cycle model. Requirements and specifications. Design models, structured and object-oriented design. Program development, PDL's tools, configuration control. Program, unit, and integration testing. Program verification. Other development models. Development metrics. Computer-aided software engineering (CASE).