Department of Computer Science (CS)

The Department of Computer Science offers interdisciplinary graduate programs leading to the Master of Science and Doctor of Philosophy degrees. The programs are for students who are interested in professional careers in computer science. Two master's degree programs are available. The Plan I (thesis) degree is a research-oriented degree, while the Plan II degree is for students who are interested primarily in design.
 
Research activity in the department includes active investigations in software engineering, algorithms, database management, networks, parallel and distributed computation, programming languages, robotics, and human-computer interaction.

Visit Department Website

Faculty

Interim Department Head
  • Susan V. Vrbsky
Professors
  • David Brown
  • Jeffrey Carver
  • David Cordes
  • Jeff Gray
  • Yang Xiao
Associate professors
  • Monica Anderson
  • Richard Borie
  • Brandon Dixon
  • Xiaoyan Hong
  • John Lusth
  • Randy Smith
  • Susan V. Vrbsky
  • Jingyuan Zhang
Assistant professors
  • Travis Atkison
  • Chris Crawford
  • Zhe Jiang
  • Aibek Musaev
  • Dingwen Tao
Professor emeritus
  • Allen Parrish

Courses

CS
503
Hours
3
Programming Languages

This course provides a graduate level presentation of Programming Languages. Formal student of programming language specification, analysis, implementation, and run-time support structures; organization of programming languages with emphasis on language constructs and mechanisms; and study of non-programming paradigms. Students who have successfully completed CS 403 may not also receive credit for CS 503.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
507
Hours
3
Software Interface Design

Concepts of the human-computer interface, emphasizing the software aspects. Dialog styles, form models, user documentation and the evaluation of human-computer software interfaces. Students who have successfully completed CS 407 may not also receive credit for CS 507.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
515
Hours
3
Software Design and Development

Object-oriented design and development using UML and Java, design patterns, and architectural patterns. Students who have successfully completed CS 415 may not also receive credit for CS 515.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
516
Hours
3
Testing and Quality Assurance

Study of verification & validation and related processes. Topics include techniques and tools for software analysis, testing, and quality assurance. Students who have successfully completed CS 416 may not also receive credit for CS 516.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
517
Hours
3
Requirements Engineering

Study of requirements engineering and its phases. Topics include formal, semi-formal, and informal paradigms for elicitation, documentation, and management of software system requirements. Students who have successfully completed CS 417 may not also receive credit for CS 517.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
518
Hours
3
Software Project Management

Study of project management and its phases. Topics include techniques and tools for software project planning, estimation, organization, and management. Students who have successfully completed CS 418 may not also receive credit for CS 518.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
526
Hours
3
Intro Operating Systems

This course provides a graduate level presentation of Introduction to Operating Systems. Study of basic operating system concepts with an emphasis on memory processor, device, and information management.

Prerequisite(s): CS 200, CS 201 and ECE 383 with a minimum grade of C-
CS
528
Hours
3
Computer Security

An examination of computer security concepts, such as cryptographic tools, user authentication, access control, database security, intrusion detection, malicious software, denial of service, firewalls and intrusion prevention systems, trusted computing and multilevel security, buffer overflow, software security, physical and infrastructure security, human factors, and security auditing. Students who have successfully completed CS 428 may not also receive credit for CS 528.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
534
Hours
3
Compiler Construction

This course provides a graduate level presentation of Compiler construction. Syntax and semantics of procedure-oriented languages and translation techniques used in their compilation; includes computer implementation.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
535
Hours
3
Computer Graphics

Display memory, generation of points, vectors, etc. Interactive versus passive graphics, analog storage of images on microfilm, etc. Digitizing and digital storage, pattern recognition by features, syntax tables, and random nets. The mathematics of three dimensions, projections, and the hidden-line problem. Students who have successfully completed CS 435 may not also receive credit for CS 535.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
538
Hours
3
Computer Comm & Networks

This course provides a graduate level presentation of Computer Communications and Networks. The student of the issues related to Computer communications. Topics include physical topologies, switching, error detection and correction, routing, congestion control, and connection management for global networks (such as the Internet) and local area networks (such as Ethernet). In addition, network programming and applications will be considered. Students who have successfully completed CS 438 may not also receive credit for CS 538.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
542
Hours
3
Cryptography

This course will cover algorithms and concepts in cryptography and data security. We will undertake an examination of algorithms and concepts in cryptography and data security, such as symmetric ciphers, asymmetric ciphers, public-key cryptography, hash functions, message authentication codes, key management and distribution, etc.

Prerequisite(s): CS 300, CS 301, and ECE 383
CS
543
Hours
3
Digital Forensics

Digital Forensics is an area of study that is rapidly growing in importance and visibility. It involves preserving, identifying, extracting, documenting and interpreting digital data. Though sometimes misunderstood, digital forensics is like other types of investigation. With the continuous rise of computer-related incidents and crimes, and the increased emphasis on homeland defense in this country, there is a growing need for computer science graduates with the skills to investigate these crimes. This course will introduce the topics of computer crime and digital forensics. Students will be required to learn different aspects of computer crime and ways in which to uncover, protect and exploit digital evidence.

Prerequisite(s): CS 300, CS 301, and ECE 383
CS
544
Hours
3
Software Security

This course is an introduction to software security principles and practices. Topics for this course will include but not be limited to security architectures, defensive programming, web security, secure information flow, and common software vulnerabilities.

Prerequisite(s): CS 300, CS 301, and ECE 383
CS
545
Hours
3
Software Reverse Engineering

Software Reverse Engineering is an area of study that is rapidly growing in importance and visibility. This course will reveal to students the challenges of monitoring and understanding software systems. During the course students will become familiar with the practice of software reverse engineering files by utilizing static and dynamic techniques, and methods in order to gain an understanding as to what impact a file may have on a computer system.

Prerequisite(s): CS 300, CS 301, and ECE 383
CS
548
Hours
3
Network Security

Concepts concerning network security, including an examination of network security concepts, algorithms, and protocols.

Prerequisite(s): CS 200, CS 201 and ECE 383
CS
551
Hours
3
Data Science

This course introduces fundamental concepts & techniques in data science as well as develops practical skills for data analysis in real-world applications. Given the multi-disciplinary nature of data science, the course will primarily focus on the advantages and disadvantages of various methods for different data characteristics, but will also provide some coverage on the statistical or mathematical foundations. Topics to cover include data preprocessing, data exploration, relationship mining, prediction, clustering, outlier detection, deep learning, spatial and spatiotemporal data analysis, text data analysis, and big data.

CS
552
Hours
3
Information Retrieval

This course is an introduction to information retrieval principles and practices. The course will cover several aspects of Information Retrieval including; indexing, processing, querying, and classifying data. Also, retrieval models, algorithms, and implementations will be covered. Though the class will focus primarily on textual data, other media including images/videos, music/audio files, and geospatial information will be addressed. Topics for this course will include but not be limited to: text processing and classification, web search development techniques, and document clustering.

Prerequisite(s): CS 300, CS 301, ECE 383
CS
555
Hours
3
Social Media Data Analytics

The world is experiencing rapid growth in the amount of published data which come from different sources, including Social Media platforms. The availability of programming interfaces to these platforms allows for near real-time processing of these data for various purposes. This course will reveal to students the inherent challenges of analyzing Social Media data and introduce tools and techniques that are available to address them.

Prerequisite(s): CS 300, CS 301, and ECE 383
CS
557
Hours
3
Database Management Systems

This course provides a graduate level presentation of Database Management Systems. Constituent parts of database management (design, creation, and manipulation of databases), client-server, relational, and object-oriented data models.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
560
Hours
3
Introduction To Autonomous Robotics

Issues involved with the implementation of robot control software including motion, kinematics, simulation testing, sensor incorporation and unmodeled factors. Students who have successfully completed CS 460 may not also receive credit for CS 560.

Prerequisite(s): CS 300
CS
565
Hours
3
Artificial Intelligence

The advanced study of topics under the umbrella of artificial intelligence including problem solving, knowledge representation, planning and machine learning.

Prerequisite(s): Graduate standing
CS
567
Hours
3
Computer Systems Architecture

Computer architectures, computer design, memory systems design, parallel processing concepts, supercomputers, networks, and multiprocessing systems.

CS
570
Hours
3
Computer Algorithms

This course provides a graduate level presentation of Introduction to Computer Algorithms. Construction of efficient algorithms for computer implementation. Students who have successfully completed CS 470 may not also receive credit for CS 570.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
575
Hours
3
Formal Languages & Machines

Regular expressions and finite automata. Context free grammars and pushdown automata. Recursively enumerable languages and turing machine. The Chomsky hierarchy. Students who have successfully completed CS 475 may not also receive credit for CS 575.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
580
Hours
3
Computer Simulation

Introduction to simulation and use of computer simulation models; simulation methodology, including generation of random numbers and variants, model design, and analysis of data generated by simulation experiments. Students who have successfully completed CS 480 may not also receive credit for CS 580.

Prerequisite(s): CS 200, CS 201, and ECE 383 each with a minimum grade of C-
CS
581
Hours
3
High Performance Computing

This course provides students with knowledge and fundamental concepts of high performance computing as well as hands-on experience of the core technology in the field. The objective of this class is to understand how to achieve high performance on a wide range of computational platforms. Topics include: optimizing the performance of sequential programs based on modern computer memory hierarchies, parallel algorithm design, developing parallel programs using MPI, analyzing the performance of parallel programs.

Prerequisite(s): (CS 300, CS 301 and ECE 383) or permission of instructor.
CS
591
Hours
3
Special Topics In Cs

Formal courses that cover new and innovative topics in computer science and do not yet have their own course numbers. Specific course titles will be announced.

CS
592
Hours
1-6
Independent Study

This course requires a written proposal that must be approved by the sponsoring faculty member before registration.

CS
598
Hours
1-6
Non-Thesis Research

No description available.

CS
599
Hours
1-6
Thesis Research

No description available.

CS
600
Hours
3
Foundatns Software Engr

Introduction to formal software development techniques; theoretical foundations of specification, design, and testing; and programming methodologies and software reuse.

Prerequisite(s) with concurrency: CS 515 or CS 415
CS
602
Hours
3
Adv Formal Lang & Machin

Regular languages, context-free languages, recursive and recursively enumerable languages, nondeterminism, and undecidability.

CS
603
Hours
3
Organz Program Languages

Design and implementation of programming languages; syntax and translation; semantic structures and run-time representations; data, operations, control structures, and storage management.

Prerequisite(s): CS 503
Prerequisite(s) with concurrency: CS 403
CS
605
Hours
3
Artificial Intelligence

An advanced course in artificial intelligence topics. These topics include, but are not limited to, topics such as problem solving, knowledge representation, planning, and machine learning. The course will examine the various branches within the field as well as applications of artificial intelligence.

CS
606
Hours
3
Analys Operating Systems

Design of operating systems; advanced examination of synchronization, deadlock, virtual memory, and security; and parallel and distributed systems.

Prerequisite(s): CS 300
CS
609
Hours
3
Database Management

Data model theory, comparison of existing database systems, implementation technology, selection, evaluation techniques, integrity, security, authorization and protection, and hardware architecture.

Prerequisite(s): CS 301
Prerequisite(s) with concurrency: CS 457
CS
612
Hours
3
Advanced Data Structures

A graduate-level study of data structures. Topics include self-balancing trees binomial and Fibonacci heaps, disjoint sets, graphs and digraphs.

CS
613
Hours
3
Adv Computer Comm & Networks

Study of computer networks, including telecommunications and related data transmission techniques. Network philosophy, design, and implementation.

Prerequisite(s): CS 438 or CS 538
CS
615
Hours
3
Cryptography and Data Security

An examination of algorithms and concepts in cryptography and data security, such as symmetric ciphers, asymmetric ciphers, public-key cryptography, hash functions, message authentication codes, key management and distribution.

Prerequisite(s): CS 528 or CS 428
CS
618
Hours
3
Wireless Mbile Netrwrk Protocl

Network protocol design and analysis in wireless and mobile networks. Topics include ad hoc.

Prerequisite(s): CS 438 or CS 538 or CS 613 or ECE 406 or ECE 506 or ECE 502
CS
630
Hours
3
Empirical Software Engineering

Introduction to empirical research methods in software engineering. Focus on measuring processes and designing experiments.

Prerequisite(s): CS 415 or CS 515
CS
691
Hours
3
Special Topics

Formal courses that cover new and innovative topics in computer science and do not yet have their own numbers; specific course titles will be announced.

CS
692
Hours
1-6
Special Topics

This course requires a written proposal that must be approved by the sponsoring faculty member before registration.

CS
699
Hours
1-12
Dissertation Research

No description available.