Graduate Computer Science Course Descriptions
CSCI 601
Data Modeling
Three Credit Hours
Data modeling includes conceptual, logical, and physical modeling.
The focus is on conceptual data modeling. Students learn about data element
analysis, standardization, naming, and normalization. They learn how to create
a single model that supports multiple user views. In addition, they learn how
to select and use modeling tools (e.g. the Unified Modeling Language).
CSCI 602
Foundations of Software Engineering
Three Credit Hours
A survey course in software engineering processes and
methodologies. This course includes software life cycles, planning and managing
projects, capturing and managing requirements, analysis and design,
implementation, software testing and quality assurance, and risk analysis in
software development. Emphasized are team-based development, quality standards,
object-oriented design, and CASE (computer aided software engineering) tools.
CSCI 603
Object-Oriented Design Patterns
Three Credit Hours
A course in software design using design patterns as a tool for
communicating software design solutions and as an aid in software refactoring.
Creational, structural and behavioral patterns are emphasized. Also covered are
finding and documenting patterns, software development patterns. The Unified
Modeling Language is used as the design tool for software patterns and
programming projects are in an object-oriented programming language.
CSCI 604
Distributed Computer Systems Architecture
Three Credit Hours
This course covers basic techniques for the design and
construction of distributed systems. Its aim is to give the skills needed to
build simple systems and to identify key issues for the analysis of
distribution problems.
CSCI 612
Advanced Computer Organization
Three Credit Hours
Prerequisite: CSCI 604 and an undergraduate course in operating systems
Advanced Computer Architecture (3) In this course we will study
various topics relevant to clustering, including interconnection networks,
protocols, high performance l/O, load balancing, availability, programming
models and environments, parallel algorithms and applications. The course will
be lab intensive and will include the implementation of parallel algorithms on
a Beowulf Cluster.
CSCI 614
Advanced Operating Systems
Three Credit Hours
Prerequisite: An undergraduate course in operating systems
This course covers a broad range or advanced operating systems
concepts including protection, security, memory management, kernels, file
systems, synchronization, naming, networks, and distributed systems as well as
recent trends in operating systems design. Specific aspects of operating
systems which support distributed computing will be emphasized.
CSCI 616
Automata
Three Credit Hours
The theory of finite state machines and regular expressions are
applied to the design of switching circuits, components of compilers such as
lexical analysis, pattern-matching, text-editors, unifications as needed in
Prolog or for automated deduction, and almost any program which processes under
commands. Undecidable problems and intractable problems are explored.
CSCI 618
Programming Languages
Three Credit Hours
This course surveys the principles of programming language design
and the issues related to their implementation. Topics will include a
comparison of the major programming paradigms: imperative, functional, logic,
and object-oriented. Also covered are data types, methods of specifying the
semantics of language constructs, and concurrency.
CSCI 631
Privacy and Security Issues
Three Credit Hours
A survey of the principles and practices related to computer
security. The course concentrates on the problems of security associated with
computer networks and emphasizes the application of cryptography to address
those problems.
CSCI 632
Data Communications and Networking
Three Credit Hours
An introduction to data communications and computer networking.
Topics include LAN topologies, transmission media, error detection, packet
switching networks, Internet working of heterogeneous network technologies,
internetworking protocol suites (with emphasis on TCP/IP), the client server
paradigm, the BSD socket interface, network security, and important network
applications.
CSCI 634
Project Change and Management
Three Credit Hours
Managing projects within an organizational context, including the
processes related to initiating, planning, executing, controlling, reporting
and closing a project form the major portion of this course. Project
integration, scope, time, cost, quality control, risk management, and managing
the changes in organization resulting from introducing or revising information
systems are also included.
CSCI 636
Information Technology Policy and Strategy
Three Credit Hours
This course will consider the development and implementation of
policies and plans to achieve organizational goals, the defining of systems
that support the operational, administrative and strategic needs of the
organization, and the study of approaches to managing the information systems
function in organizations.
CSCI 638
Database Design
Three Credit Hours
Prerequisite: CSIS 601 or permission of the instructor
Topics include conceptual and logical data models, relational
database design, Structured Query Language (SQL), query processing,
administration, and CASE tools. A database design project is part of the
requirement and includes a hands-on design, development and implementation
using an available database software system like Oracle.
CSCI 654
Software Requirements Analysis and Specifications
Three Credit Hours
Prerequisite: CSCI 602 or program director approval.
An introduction to the software engineering requirements process.
Topics to include feasibility studies, risk, requirements elicitation,
modeling, analysis, specification, and validation.
CSCI 656
Software Systems Design and Implementation
Three Credit Hours
Prerequisite: CSCI 602 and 603, or program director approval.
An introduction to the issues, techniques, strategies,
representations, and patterns used in designing and implementing software.
Possible design topics include: specification of internal interfaces,
architectural design, data design, user interface design, design tools and
evaluation of design. Possible implementation topics include: language-oriented
issues, construction technologies, tools and formal construction methods.
CSCI 657
Embedded Systems Design
Three Credit Hours
Prerequisite: CSCI 602 and CSCI 604, or program director approval
This course is an introduction to specifying, designing,
implementing, and testing (real-time) embedded systems. Topics include the
embedded system lifecycle, choosing a processor, hardware/software
partitioning, design techniques, cross-platform development, debugging,
testing, and integration. Implementation languages may include Java, C/C++ or
assembly.
CSCI 658
Software Testing and Maintenance
Three Credit Hours
Prerequisite: CSCI 602 or program director approval.
An introduction to the concepts and methods associated with
software testing and maintenance. Testing topics to include: testing as part of
requirements gathering and software design, test plan writing, and static and
dynamic testing techniques. Maintenance topics to include: an overview of
corrective, adaptive, perfective and preventive maintenance activities as well
as organizational managerial issues.
CSCI 659
Service-Oriented Computing
Three Credit Hours
Service-Oriented Computing is a term that describes
software systems that combine Service-Oriented Architecture (SOA) and Business
Process Management (BPM) layers. This course explores both SOA and BPM, demonstrating
that in combination business and IT concerns can be aligned. Experience with
service-oriented development, process modeling and execution, and securing services
will be obtained.
CSCI 672
Human-Computer Interaction
Three Credit Hours
Introduction to human computer interaction and user interface
development. Topics include human factors of interactive software, interactive
styles, design principles and considerations, development methods and tools,
interface quality and evaluation methods. This course stresses the importance
of good interfaces and the relationship of user interface design to
human-computer interaction. It is intended for students whose future work may
involve software development.
CSCI 674
Introduction to Computer Graphics
Three Credit Hours
Prerequisite: Basic knowledge of linear algebra and experience
writing programs in a high level language.
An introduction to the fundamental principles of computer graphics.
Using the OpenGL application-programming interface, students will learn these
principles by writing a series of programming projects.
CSCI 690
Special Topics in Computing
Three Credit Hours
Prerequisite: Permission of the instructor
A course in the special study of an advanced or new topic in
computer science, information systems, or software engineering. This course
may be repeated for additional credit, as the topics change.
CSCI 691
Independent Study
Variable Credit Hours
This course consists of individual study of an agreed-upon topic
under the direction of a faculty member and following a course of reading and
other requirements proposed by the student and established by negotiation with
the director. This course is intended to provide graduate students with an
opportunity to study in an area of computer science, software engineering or
information systems that is not generally offered. The course may be repeated
once.
CSCI 698
Project Thesis
Three Credit Hours
Prerequisite: Completion of the four core courses, CSCI 601, CSCI
602, CSCI 603 and CSCI 604 and approval by the MSCS program director.
Project thesis is a three-credit hour course for the completion of
a formal master's project thesis under faculty direction. A project thesis is
characterized by a research project that applies or extends course topics
through systems development.
CSCI 699
Research Thesis
6 Credit Hours
Prerequisite: Completion of the four core courses, CSCI 601, CSCI
602, CSCI 603 and CSCI 604 and approval by the MSCS program director.
Research Thesis is a six-credit hour course for the completion of a
formal master's research thesis under faculty direction. A research thesis is a
traditional research project characterized by a comprehensive paper on a
research topic.
|