Computer and Information Sciences

http://www.cis.uab.edu

Prospective students should use this checklist to obtain specific admissions requirements on how to apply to Graduate School.

Degree Offered: Ph.D., M.S.
Director: Dr. Chengcui Zhang
Phone: (205) 934-8606
E-Mail: czhang02@uab.edu
Website: http://www.uab.edu/cas/cis/graduate-programs

Program Information

The field of computer and information sciences deals with theory and methods for processing of information. Graduate programs leading to the M.S. and Ph.D. degrees are designed to prepare individuals for professional and research-level careers in industry, government, and academia. Prospective students should have substantial background in computer science and mathematics.  

M.S. Programs

The M.S. program requires 24 semester hours of coursework plus 6 semester hours of thesis research and a thesis (Plan I) or 30 semester hours of coursework (Plan II). Specializations are available in bioinformatics, computer graphics, and distributed computing.  CIS and JS (Dept. of Justice Sciences) also jointly offer the MS in Computer Forensics and Security Management.  For details, please check the department website.

Ph.D. Program

The Ph.D. program consists of three phases (with some overlap between phases). The first phase of the program is devoted primarily to formal coursework and preparation for the qualifying examination. The second phase consists of coursework and research in preparation for the comprehensive examination. This examination requires presentation of a dissertation research proposal. Successful completion of this phase leads to admission to candidacy. The final phase is the completion of the dissertation research and its defense. Ph.D. student progress will be reviewed annually.

Application Deadlines

Masters Program in Computer and Information Sciences April 15 for Fall; October1 for Spring.
Masters Program in Computer Forensics and Security Management March 1 for Summer; June 1 for Fall; November 1 for Spring.
Doctoral Program in Computer and Information Sciences January 15 for Fall; September 1 for Spring.

Contact Information

For detailed information, after first visiting the website below for basic information including application guidelines and prerequisites, contact Dr. Chengcui Zhang, Associate Professor and Graduate Program Director, UAB Department of Computer and Information Sciences, Campbell Hall, Room 127, 1300 University Boulevard, Birmingham, Alabama 35294-1170.

Telephone 205-934-8606
E-mail czhang02@uab.edu
Web http://www.uab.edu/cas/cis/graduate-programs

Master of Science in Computer and Information Sciences

Plan 1 - 30 hours with Thesis

RequirementsHours
Select 21 credit hours of CS courses at the 500+ level 1,221
Allowed Electives from other disciplines3
Special Topics in Mathematics 3
CS 699Master's Thesis Research6
Total Hours30

Plan II - 30 hours

RequirementsHours
Select 27 credit hours of CS courses at the 500+ level 1,227
Allowed Electives from other disciplines3
Special Topics in Mathematics 3
Total Hours30
1

 No more than four (4) 500 level courses can count towards the MS degree

2

 No more than one (1) directed reading course can count towards the MS degree

3

 May substitute any other graduate level course approved by the graduate program director

Concentration offered but not required

Concentration in Bioinformatics

RequirementsHours
CS 640Foundations in Bioinformatics 3
CS 641Algorithms in Bioinformatics 3
Select three (3) electives from the list below9
Database Systems
Distributed Systems
Bioinformatics Research Project
Advanced Algorithms and Applications
Visualization
Open Source Security Systems
Total Hours15

Concentration in Graphics

RequirementsHours
CS 670Computer Graphics and Data Visualization3
CS 671Shape Design3
or CS 672 Geometric Modeling for Computer Graphics
Select three (3) electives from the list below9
Computational Geometry
Shape Design
Geometric Modeling for Computer Graphics
Computer Vision
Visualization
Computer Graphics Research Project
Numerical Computing Foundations
Total Hours15

Concentration in Parallel and Distributed Computing

RequirementsHours
CS 630Computer Architecture3
CS 631Distributed Systems3
Select three (3) electives from the list below9
Parallel Computing
Cloud Computing
Distributed Computing Research Project
Multiprocessor Programming
Total Hours15

Ph.D. in Computer & Information Sciences

Ph.D. students may take any course form our graduate catalog and any graduate course approved by their dissertation advisor and the graduate program director. 

RequirementsHours
Computer & Information Science Courses12
Select 12 hours from the Computer & Information Sciences courses at the graduate level
GRD 717Principles of Scientific Integrity3
Dissertation12
Dissertation Research
Total Hours27

Courses

CS 501. Programming Languages. 3 Hours.

CS501 is a programming language overview course. The course will discuss computability, lexing, parsing, type systems, and ways to formalize a language's semantics. The course will introduce students to major programming paradigms, such as functional programming and logic programming, and their realization in programming languages. Students will solve problems using different paradigms and study the impact on program design and implementation. The course enables students to assess strengths and weaknesses of different languages for problem solving.

CS 501L. Programming Languages Laboratory. 0 Hours.

Laboratory to accompany CS501.

CS 510. Introduction to Databases. 3 Hours.

Relational model of databases, structured query language, normalized structure of database management systems based on relational model, and security and integrity of databases.

CS 519. Investigating Online Crimes. 3 Hours.

Introduction to cyber-investigative techniques involving network forensics. Students will develop and learn to apply new programs and techniques to automatically evaluate digital evidence from network packet captures, emails, server logs, social media, darknets and online forums related to cyber crime cases from both a law enforcement and incident response perspective.

CS 520. Software Engineering. 3 Hours.

Design and implementation of large-scale software systems, software development life cycle, software requirements and specifications, software design and implementation, verification and validation, project management and team-oriented software development.

CS 520L. Software Engineering Laboratory. 0 Hours.

Laboratory to accompany CS520.

CS 533. Operating Systems. 3 Hours.

Internal design and operation of a modern operating system, including interrupt handling, process scheduling, memory management, virtual memory, demand paging, file space allocation, file and directory management, file/user security and file access methods. Computer Networks.

CS 533L. Operating Systems Laboratory. 0 Hours.

Laboratory to accompany CS 533.

CS 534. Networking. 3 Hours.

Underlying network technology. Interconnecting networks using bridges and routers. IP addresses and datagram formats. Static and dynamic routing algorithms. Control messages. Subnet and supernet extensions. UDP and TCP. File transfer protocols. E-mail and the World Wide Web. Network address translation and firewalls. Mandatory weekly Linux-based lab.

CS 534L. Networking Laboratory. 0 Hours.

Project oriented hands-on approach.

CS 537. Digital Media Forensics. 3 Hours.

Digital media forensics addresses all stored digital evidence types faced by cyber security professionals and computer forensics examiners. Students will learn to analyze character encoding, file formats, and digital media, including hard drives, smartphones and other portable devices, and cloud-hosted evidence, as well as disk acquisition, duplication and evidence preservation techniques and how to apply these techniques in typical criminal investigation scenarios.

CS 537L. Digital Media Forensics Lab. 0 Hours.

Laboratory to accompany CS 537.

CS 550. Automata and Formal Language Theory. 3 Hours.

Finite-state automata and regular expressions, context-free grammars and pushdown automata, turing machines, computability and decidability, and complexity classes.

CS 555. Probability & Statistics in CS. 3 Hours.

Introduction to Probability and Statistics with applications in Computer Science. Counting, permutations and combinations. Probability, conditional probability, Bayes Theorem. Standard probability distributions. Measures of central tendency and dispersion. Central Limit Theorem. Regression and correlation. Hypothesis testing. Random number generation. Random algorithms. Estimating probabilities by simulation. Genetic algorithms.

CS 591. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 592. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 597. Competitive Programming Techniques. 1 Hour.

This course will help students become more competitive in a programming competition such as the ACM programming contest by exploring numerous problem solving techniques and algorithms not covered in the traditional curriculum.

CS 598. Practical Work Experience. 1,3 Hour.

Credit for working in the Computer Science field. Does not count toward M.S. degree.

CS 600. Formal Semantics of Programming Languages. 3 Hours.

Context-sensitive and semantic aspects of programming languages, denotational semantics, mathematical foundations.

CS 601. Program Verification. 3 Hours.

Proving properties of programs, termination and correctness, computability and decidability, role of formal methods in software design.

CS 602. Compiler Design. 3 Hours.

Lexical and syntactical scan, semantics, code generation and optimization, dataflow analysis, parallelizing compilers, automatic compiler generation, and other advanced topics.
Prerequisites: CS 505 [Min Grade: B]

CS 610. Database Systems. 3 Hours.

This course offers an introduction to the advanced topics of database management systems. The following topics are addressed: System and file structure, efficient data manipulation using indexing and hashing, query processing, crash recovery, concurrency control, transaction processing, database security and integrity, distributed databases.

CS 613. Emerging Database Technologies. 3 Hours.

This course explores new technological and theoretical foundations for storing and organizing data for "Big Data" applications. Topics include emerging database technologies for high-velocity transaction processing, stream processing, real time analytics, and high-volume data processing. The discussions will focus on several real-world application domains, such as Internet advertising, health care, and social network analysis.
Prerequisites: CS 610 [Min Grade: B]

CS 614. Distributed Database Systems. 3 Hours.

Concepts of Distributed Database Systems and Architectures, Distributed Database Design, Distributed Query Processing and Optimization, Transaction Management and Concurrency Control, Heterogeneous and Multidatabase Systems.
Prerequisites: CS 610 [Min Grade: B]

CS 615. Multimedia Databases. 3 Hours.

This course introduces the principles of multimedia databases including multimedia information processing, modeling, and retrieval. The media to be considered include text, image, audio and video. At the conclusion of this course, the students should understand what multimedia data retrieval is, the principles, which allow the location of relevant information from amongst a large corpus of multimedia data, and the applications of multimedia information retrieval. The students should also have the expertise and competence to design and implement retrieval software for multimedia data.
Prerequisites: CS 510 [Min Grade: C]

CS 616. Big Data Programming. 3 Hours.

Introduction to Big Data, Properties of Big Data, platforms, programming models, applications, business analytics programming, big data processing with Python, R, and SAS, MapReduce programming with Hadoop.

CS 617. Database Security. 3 Hours.

Database fundamentals, introduction to database security, overview of security models, access control models, covert channels and inference channels, MySQL security, Oracle security, Oracle label security, developing a database security plan, SQL server security, security of statistical databases, security and privacy issues of data mining, database applications security, SQL injection, defensive programming, database intrusion prevention, audit, fault tolerance and recovery, Hippocratic databases, XML security, network security, biometrics, cloud database security, big database security.

CS 620. Software Design and Integration. 3 Hours.

This course provides hands-on experience in the design and integration of software systems. Component-based technology, model-driven technology, service-oriented technology, and cloud technology are all explored. Software design basics, including the decomposition of systems into recognizable patterns, the role of patterns in designing software and design refactoring, and attributes of good design. Agile culture, CASE tools, tools for continuous integration, build, testing, and version control.
Prerequisites: CS 520 [Min Grade: B]

CS 621. Advanced Web Application Development. 3 Hours.

Introduction to web application design and development. Includes traditional web applications utilizing server-side scripting as well as client/server platforms. Covers responsive design for both mobile and desktop users, as well as hands on server provisioning and configuration. Other topics include web security problems and practices, authentication, database access, application deployment and Web API design, such as REpresentational State Transfer (REST).

CS 621L. Advanced Web Application Development Laboratory. 0 Hours.

Laboratory to accompany CS621.

CS 622. Reflective and Adaptive Systems. 3 Hours.

This course examines the principles of compile-time and run-time adaptation in several contexts, including: reflection, metaprogramming, aspect-oriented software development, and metamodeling (applied to model-driven engineering).

CS 623. Network Security. 3 Hours.

Conventional network security (symmetric and public-key cryptography). Message encryption and authentication. Secure communication between computers in a hostile environment, including E-mail (PGP), virtual private networks (IPSec), remote access (SSH), and E-commerce (SSL), firewalls, intrusion detection and prevention, security of IEEE 802.11 wireless networks (WEP, WPA). Mandatory weekly Linux-based lab.

CS 623L. Network Security Laboratory. 0 Hours.

Laboratory to accompany CS 623.

CS 624. Formal Specification of Software Systems. 3 Hours.

Formal methods for software requirements specification, including VDM, Z, and object-oriented extensions; the relationship among formal requirements, design, and implementation.
Prerequisites: CS 505 [Min Grade: B]

CS 625. Metrics and Performance. 3 Hours.

Computer Systems addressed in this course primarily are web based systems and capacity planning is a principal theme. However, the queueing theory and statistical analysis approaches are applicable to conventional computing systems and, in fact, modeling of these latter constitute relevant background information that is developed and exploited for web systems analysis.

CS 626. Secure Software Development. 3 Hours.

Why and how software fails, characteristics of secure and resilient software, life cycle of secure software development, metrics and models for secure software maturity, design methodology, best practices for secure programming, secure software for mobile computing, cloud computing and embedded systems, methodology for testing and validation.

CS 629. Software Engineering Research Project. 1-3 Hour.

This is a project-based experimental research course affiliated with the Masters Specialization in Software Engineering. Can only be taken as part of a specialization in Software Engineering.

CS 630. Computer Architecture. 3 Hours.

Introduction to computer architecture, including memory subsystems, direct-mapped and set-associative cache and multi-level cache subsystems, direct-access devices including RAID and SCSI disk drives, processor pipelining including super-scalar and vector machines, parallel architectures including SMP, NUMA and distributed memory systems, Interrupt mechanisms, and future microprocessor design issues.

CS 631. Distributed Systems. 3 Hours.

Object-oriented distributed systems design, distributed software architecture, data and resource access, communication, client-server computing, web technologies, enterprise technologies.

CS 632. Parallel Computing. 3 Hours.

Overview of parallel computing hardware, architectures, & programming paradigms; parallel programming using MPI, Ptureads, and OpenMP; design, development, and analysis of parallel algorithms for matrix computations, FFTs, and Sorting.

CS 633. Cloud Computing. 3 Hours.

Introduction to cloud computing, definition, history, models of service delivery, IaaS/PaaS/SaaS clouds, Public/private/Hybrid clouds, cloud architectures, cloud storage, data center design issues, cloud programming systems, MapReduce programming, security and privacy issues, application development on commercial Cloud Computing Platforms, building mobile apps with a cloud based backend, using cloud APIs in PaaS/IaaS/SaaS platforms.

CS 634. Virtualization. 3 Hours.

Theory and practice of virtualization. Origins, history, technical and economic motivations. Relationship to network operating systems and operating system architecture. Simulation, Emulation, Virtualization of CPUs, networks, storage, desktops, memory, devices, and combinations thereof. Different approaches to virtualization, including hardware assists and software-only techniques. Techniques, approaches, and methodologies for scale-out and scale-up computing, including security, performance and economic concerns.

CS 635. Network Programming. 3 Hours.

Remote procedure call and client-server mechanisms. Protocol definition and compilation; client and server stubs and application code; transport independence; multiple client and server systems. Applications, e.g., remote database query and update and image filtering and archiving; systems programming and file systems contexts.

CS 636. Computer Security. 3 Hours.

Study of the breadth of major computer security topics including cyber threats, malware, information assurance, authorization, applied cryptography, web security, mobile and wireless security, network security, systems/software security, database and storage security, user-centered security, and best security practices and countermeasures.

CS 639. Distributed Computing Research Project. 1-3 Hour.

Project based course using distributed parallel computing techniques. Can only be taken as part of a specialization in Distributed Computing.

CS 640. Foundations in Bioinformatics. 3 Hours.

Foundations in bioinformatics, emphasizing the application of computational tools and methodology in genomics, analysis of protein functions and structures, and DNA sequencing. Students learn how to use a high level programming language such as Python together with software tools such as BLAST and ArrayTrack to solve bioinformatics problems.

CS 641. Algorithms in Bioinformatics. 3 Hours.

This course covers the design and analysis of algorithmic techniques applied in bioinformatics. Topics include sequence comparison, alignment and matching, suffix tree, sequence database search, phylogenetic tree, genome rearrangement, motif finding, RNA prediction, and peptide sequencing.
Prerequisites: CS 640 [Min Grade: B]

CS 642. Mobile and Wireless Security. 3 Hours.

Mobile/wireless devices are ubiquitous, raising the potential for many cyber threats. This course examines security vulnerabilities inherent in many existing and emerging mobile and wireless systems, ranging from smartphones to wearables and RFID tags. In addition to exposing security vulnerabilities, defensive mechanisms to address these vulnerabilities drawn from existing deployments and research literature will be studied.

CS 643. Cloud Security. 3 Hours.

Definition of cloud computing, cloud computing models, privacy, authenticity and integrity of outsourced data, proof of data possession / retrievability, cloud forensics, malware analysis as a service, remote verification of capability and reliability, proof of availability, economic attacks on clouds and outsourced computing, virtual machine security, trusted computing technology and clouds, verifiable resource accounting, cloud-centric regulatory compliance issues and mechanisms, business and security risk models, secure MapReduce, applications of secure cloud computing, private information retrieval and cloud cartography.

CS 645. Modern Cryptography. 3 Hours.

Theory and practices of modern cryptographic techniques, algorithms and protocols, including formal analysis. Secret key encryption algorithms, public key encryption algorithms, stream ciphers, one-way hashing algorithms, authentication and identification, digital signatures, signcryption, key establishment and management, secret sharing and data recovery, zero-knowledge proofs, public key infrastructures, efficient implementation, cryptanalytic attacks and countermeasures, security models, assumptions and proofs.

CS 646. Digital Currency. 3 Hours.

Fundamental principles of digital cash systems including Bitcoin, Ripple and other notable cryptocurrencies. Topics to be covered include how a cryptocurrency works, blockchain and other decentralized consensus protocols, proof of work, proof of stake, security and privacy of cryptocurrencies, cryptographic techniques for digital currency, and applications of blockchain in peer-to-peer trust establishment, smart contracts, digital asset management, financial exchanges and distributed autonomous organization.

CS 647. Biomedical Modeling. 3 Hours.

Modeling from biomedical datasets. Acquisition, segmentation; registration and fusion; construction of shame models; measurement; illustration modeling techniques for surgical planning.

CS 649. Bioinformatics Research Project. 1-3 Hour.

Can only be taken as part of a specialization in Bioinformatics.

CS 650. Theory of Computation. 3 Hours.

Topics include Turing machines, computability, computational complexity, complexity classes, P vs. NP, circuit complexity, randomized computation, interactive proofs, quantum, decidability, primality testing, and other computational models.
Prerequisites: CS 550 [Min Grade: B]

CS 651. Formal Language Theory. 3 Hours.

Parsing and translation theory, formal syntax, proof properties and complexity measures.

CS 652. Advanced Algorithms and Applications. 3 Hours.

The design and analysis of fundamental algorithms that underpin many fields of importance ranging from data science, business intelligence, finance and cyber security to bioinformatics. Algorithms to be covered include dynamic programming, greedy technique, linear programming, network flow, sequence matching, search and alignment, randomized algorithms, page ranking, data compression, and quantum algorithms. Both time and space complexity of the algorithms are analyzed.

CS 653. Computational Geometry. 3 Hours.

Basic methods and data structures, geometric searching, convex hulls, proximity, intersections.

CS 654. Malware Analysis. 3 Hours.

Hands-on course teaching static, dynamic and contextual analysis of malware. Malware analysis and reverse-engineering techniques are taught through interaction with both "classroom" and "wild" malware samples. Defensive and counter-measure techniques for both corporate and law enforcement environments are explored.

CS 654L. Malware Analysis Lab. 0 Hours.

Laboratory to accompany CS 654.

CS 656. Web Security. 3 Hours.

The web uses advanced applications that run on a large variety of browsers that may be built using programming languages such as JavaScript, AJAX, Google Web Toolkit and Apache Struts, to name a few. This course studies how core web technologies work, the common security vulnerabilities associated with them, and how to build secure web applications that are free from these vulnerabilities.

CS 657. Penetration Testing and Vulnerability Assessment. 3 Hours.

This course focuses on penetration testing and vulnerability analysis. It introduces methodologies, techniques and tools to analyze and identify vulnerabilities in stand-alone and networked applications. It also covers methodologies for legal and standards compliance.

CS 659. Multiprocessor Programming. 3 Hours.

This course examines synchronization in concurrent systems, available atomic primitives, non-blocking programming techniques, lock-/wait-freedom, transactional memory, and memory models in hardware and software. The application of these techniques to the development of scalable data structures for multi-core architectures will be a central topic of this course.

CS 660. Artificial Intelligence. 3 Hours.

Programming methodologies, logic foundations, natural language applications, expert systems.

CS 662. Natural Language Processing. 3 Hours.

Syntax, semantics, ATNs, logic grammars, language and memory.

CS 663. Data Mining. 3 Hours.

Techniques used in data mining (such as frequent sets and association rules, decision trees, Bayesian networks, classification, clustering), algorithms underlying these techniques, and applications.

CS 665. Deep Learning. 3 Hours.

Deep Learning is a rapidly growing area of machine learning that has revolutionized speech recognition, image recognition and natural language processing. This course teaches you deep learning basics such as logistic regression, stochastic gradient descent, deep neural networks, convolutional neural networks and deep models for text and sequences. Students will also gain hands-on experience of using deep learning systems such as TensorFlow.

CS 667. Machine Learning. 3 Hours.

The course covers important issues in supervised learning, unsupervised learning and reinforcement learning. Topics include graphical models and Bayesian inference, hidden Markov model, mixture models and expectation maximization, density estimation, dimensionality reduction, logistic regression and neural network, support vector machines and kernel methods, and bagging and boosting.
Prerequisites: CS 660 [Min Grade: C]

CS 669. Introduction to the Internet of Things. 3 Hours.

Definition of the Internet of Things (IoT), history, IoT components, device specifications and examples, architectures, protocols, applications, security and privacy issues, programming and development environments for IoT, interoperability, interfacing IoT devices via web and mobile applications.

CS 670. Computer Graphics and Data Visualization. 3 Hours.

Computer graphics and its application to the visualization of data for data science. Computer graphics: raster images, coordinate frames, matrix transforms, perspective and orthographic viewing, color, shading, visibility, quaternions and animation, triangle meshes, smooth curves and surfaces, texture mapping, graphics programming. Data visualization: Tufte's design rules, using colour to visualize, histograms, graph visualization, silhouettes and nonphotorealistic rendering, medical illustration, contouring, principal component analysis (PCA).

CS 671. Shape Design. 3 Hours.

This course covers various aspects of the design of mathematical descriptions of shape. These geometric models are used in computer graphics, game design, automobile and aircraft design, robotics, anatomical modeling, and many other disciplines. Building geometry from images. Bezier and B-spline curves and surfaces.

CS 672. Geometric Modeling for Computer Graphics. 3 Hours.

The formal description of a motion is necessary in computer animation for graphics, game design, robotics, and many other disciplines. This course covers various aspects of the design of motions. Typical topics include position control along Bezier curves, orientation control with quaternion splines, motion planning, motion capture, camera control, collision detection, visibility analysis.

CS 673. Computer Vision. 3 Hours.

Image smoothing and filtering, feature detection, segmentation, calibration and alignment, object recognition, morphology, projective geometry, scale space.

CS 674. 3D Printing. 3 Hours.

3D Printing : design, materials, and aesthetics. Students will do projects which result in unique artifacts created by 3D printing. Multi-disciplinary teams are encouraged.

CS 675. Visualization. 3 Hours.

Advanced Computer Graphics techniques aimed at "Scientific Visualization" applications.

CS 676. Structure from Motion. 3 Hours.

Structure from motion extracts geometric information from a series of images of an object, either still photographs or video streams. The position of the camera may also be computed, yielding camera paths. This topic has powerful applications in many areas, including computer graphics, computer vision, photography, visualization, and video augmentation. Projective geometry, multiple view geometry, feature extraction.

CS 679. Computer Graphics Research Project. 1-3 Hour.

Can only be taken as part of a specialization in Computer Graphics.

CS 680. Numerical Computing Foundations. 3 Hours.

Matrix computations, matrix analysis, solution of linear systems, nonlinear systems, spectral analysis, least squares.

CS 681. Simulation Models. 3 Hours.

Model development using popular simulation languages, e.g., Excel or OpenOffice.org Calc Spreadsheet; interfacing to an animation system such as Proof Animation or Open_GL.

CS 682. Simulation Methodology. 3 Hours.

Combined continuous and discrete simulation, simulation theory, modeling environments.

CS 683. Open Source Security Systems. 3 Hours.

An introduction to the design, implementation, evaluation and maintenance of secure software systems and applications using open source technologies, with an emphasis on hands-on experience. Topics include: open source ecosystems, open source security methodologies and models, notable open source software systems and projects, quality and security assurance through open source, open source supply chain security, major open source cryptographic packages; designing, implementing and maintaining security systems using open source technologies; assessment and regulatory compliance using open source tools, and open source hardware.

CS 684. Robot Motion. 3 Hours.

Path planning algorithms. Configuration space, potential functions, roadmaps, cell decomposition, probabilistic motion planning, compliant motion.

CS 686. Software-Defined Networking. 3 Hours.

Software defined networking (SDN) allows a logically centralized software component to manage and control the behavior of an entire network. Topics to be covered include abstractions and layered architecture of SDN, data, control and management planes, network virtualization, programming SDN, network functions (e.g. routing, load balancing and security), comparison of OpenFlow and proprietary SDN technologies, and network optimization with SDN.

CS 687. Complex Networks. 3 Hours.

Introduction to complex network theory and real-world applications in biology, physics, sociology, national security and cyber enabled technology systems such as social networks. Essential network models including small world networks, scale free networks, spatial and hierarchical networks together with methods to generate them with a computer will be discussed. In addition, various techniques for the analysis of networks including network modeling and evolution, community structure, dynamic network analysis, and network visualization will be explored.

CS 689. Cyber Risk Management. 3 Hours.

This course develops knowledge and skills in risk based information security management geared toward preventive management and assurance of security of information and information systems in technology-enabled environments. It focuses on risk assessments, risk mitigation strategies, risk profiling and sensitivity, quantitative and qualitative models of calculating risk exposures, security controls and services, threat and vulnerability management, financing the cost of security risks, and return on investment for information security initiatives. The course presents several risk assessment models with an ultimate goal of identifying and realizing the unique and acceptable level of information risk for an organization.

CS 690. Special Topics. 1-3 Hour.

Selected topics in Computer Science.

CS 691. Special Topics. 1-3 Hour.

Selected topics in Computer Science.

CS 692. Special Topics. 1-3 Hour.

Selected topics in Computer Science.

CS 697. Directed Readings. 1-6 Hour.

Selected readings, research and project development under direction of a faculty member. Must have permission of instructor and graduate program director.

CS 698. Master's Plan II. 1-9 Hour.

Masters student registration.

CS 699. Master's Thesis Research. 1-6 Hour.

Research for M.S. candidates writing a thesis.
Prerequisites: GAC M

CS 700. Formal Semantics of Programming Languages. 2,3 Hours.

Context-sensitive and semantic aspects of programming languages, denotational semantics, mathematical foundations.

CS 701. Program Verification. 3 Hours.

Proving properties of programs, termination and correctness, computability and decidability, role of formal methods in software design.

CS 702. Compiler Design. 3 Hours.

Lexical and syntactical scan, semantics, code generation and optimization, dataflow analysis, parallelizing compilers, automatic compiler generation, and other advanced topics.

CS 710. Database Systems. 3 Hours.

This course offers an introduction to the advanced topics of database management systems. The following topics are addressed: System and file structure, efficient data manipulation using indexing and hashing, query processing, crash recovery, concurrency control, transaction processing, database security and integrity, distributed databases.

CS 713. Emerging Database Technologies. 3 Hours.

This course explores new technological and theoretical foundations for storing and organizing data for "Big Data" applications. Topics include emerging database technologies for high-velocity transaction processing, stream processing, real time analytics, and high-volume data processing. The discussions will focus on several real-world application domains, such as Internet advertising, health care, and social network analysis.

CS 714. Distributed Database Systems. 3 Hours.

Concepts of Distributed Database Systems and Architectures, Distributed Database Design, Distributed Query Processing and Optimization, Transaction Management and Concurrency Control, Heterogeneous and Multidatabase Systems.

CS 715. Multimedia Databases. 3 Hours.

This course introduces the principles of multimedia databases including multimedia information processing, modeling, and retrieval. The media to be considered include text, image, audio and video. At the conclusion of this course, the students should understand what multimedia data retrieval is, the principles, which allow the location of relevant information from amongst a large corpus of multimedia data, and the applications of multimedia information retrieval. The students should also have the expertise and competence to design and implement retrieval software for multimedia data.

CS 716. Big Data Programming. 3 Hours.

Introduction to Big Data, Properties of Big Data, platforms, programming models, applications, business analytics programming, big data processing with Python, R, and SAS, MapReduce programming with Hadoop.

CS 717. Database Security. 3 Hours.

Database fundamentals, introduction to database security, overview of security models, access control models, covert channels and inference channels, MySQL security, Oracle security, Oracle label security, developing a database security plan, SQL server security, security of statistical databases, security and privacy issues of data mining, database applications security, SQL injection, defensive programming, database intrusion prevention, audit, fault tolerance and recovery, Hippocratic databases, XML security, network security, biometrics, cloud database security, big database security.

CS 720. Software Design and Integration. 3 Hours.

This course provides hands-on experience in the design and integration of software systems. Component-based technology, model-driven technology, service-oriented technology, and cloud technology are all explored. Software design basics, including the decomposition of systems into recognizable patterns, the role of patterns in designing software and design refactoring, and attributes of good design. Agile culture, CASE tools, tools for continuous integration, build, testing, and version control.

CS 722. Reflective and Adaptive Systems. 3 Hours.

This course examines the principles of compile-time and run-time adaptation in several contexts, including: reflection, metaprogramming, aspect-oriented software development, and metamodeling (applied to model-driven engineering).

CS 723. Network Security. 3 Hours.

Conventional network security (symmetric and public-key cryptography). Message encryption and authentication. Secure communication between computers in a hostile environment, including E-mail (PGP), virtual private networks (IPSec), remote access (SSH), and E-commerce (SSL), firewalls, intrusion detection and prevention, security of IEEE 802.11 wireless networks (WEP, WPA). Mandatory weekly Linux-based lab.

CS 723L. Network Security Laboratory. 0 Hours.

Laboratory to accompany CS 723.

CS 724. Formal Specification of Software Systems. 3 Hours.

Formal methods for software requirements specification, including VDM, Z, and object-oriented extensions; the relationship among formal requirements, design, and implementation.

CS 725. Metrics and Performance. 3 Hours.

Computer Systems addressed in this course primarily are web based systems and capacity planning is a principal theme. However, the queueing theory and statistical analysis approaches are applicable to conventional computing systems and, in fact, modeling of these latter constitute relevant background information that is developed and exploited for web systems analysis.

CS 726. Secure Software Development. 3 Hours.

Why and how software fails, characteristics of secure and resilient software, life cycle of secure software development, metrics and models for secure software maturity, design methodology, best practices for secure programming, secure software for mobile computing, cloud computing and embedded systems, methodology for testing and validation.

CS 730. Computer Architecture. 3 Hours.

Introduction to computer architecture, including memory subsystems, direct-mapped and set-associative cache and multi-level cache subsystems, direct-access devices including RAID and SCSI disk drives, processor pipelining including super-scalar and vector machines, parallel architectures including SMP, NUMA and distributed memory systems, Interrupt mechanisms, and future microprocessor design issues.

CS 731. Distributed Systems. 3 Hours.

Object-oriented distributed systems design, distributed software architecture, data and resource access, communication, client-server computing, web technologies, enterprise technologies.

CS 732. Parallel Computing. 3 Hours.

Overview of parallel computing hardware, architectures, & programming paradigms; parallel programming using MPI, Ptureads, and OpenMP; design, development, and analysis of parallel algorithms for matrix computations, FFTs, and Sorting.

CS 733. Cloud Computing. 3 Hours.

Introduction to cloud computing, definition, history, models of service delivery, IaaS/PaaS/SaaS clouds, Public/private/Hybrid clouds, cloud architectures, cloud storage, data center design issues, cloud programming systems, MapReduce programming, security and privacy issues, application development on commercial Cloud Computing Platforms, building mobile apps with a cloud based backend, using cloud APIs in PaaS/IaaS/SaaS platforms.

CS 734. Virtualization. 3 Hours.

Theory and practice of virtualization. Origins, history, technical and economic motivations. Relationship to network operating systems and operating system architecture. Simulation, Emulation, Virtualization of CPUs, networks, storage, desktops, memory, devices, and combinations thereof. Different approaches to virtualization, including hardware assists and software-only techniques. Techniques, approaches, and methodologies for scale-out and scale-up computing, including security, performance and economic concerns.

CS 735. Network Programming. 3 Hours.

Remote procedure call and client-server mechanisms. Protocol definition and compilation; client and server stubs and application code; transport independence; multiple client and server systems. Applications, e.g., remote database query and update and image filtering and archiving; systems programming and file systems contexts.

CS 736. Computer Security. 3 Hours.

Study of the breadth of major computer security topics including cyber threats, malware, information assurance, authorization, applied cryptography, web security, mobile and wireless security, network security, systems/software security, database and storage security, user-centered security, and best security practices and countermeasures.

CS 739. Distributed Computing Research. 3 Hours.

Project based course using distributed parallel computing techniques.

CS 740. Foundations in Bioinformatics. 3 Hours.

Foundations in bioinformatics, emphasizing the application of computational tools and methodology in genomics, analysis of protein functions and structures, and DNA sequencing. Students learn how to use a high level programming language such as Python together with software tools such as BLAST and ArrayTrack to solve bioinformatics problems.

CS 741. Algorithms in Bioinformatics. 3 Hours.

This course covers the design and analysis of algorithmic techniques applied in bioinformatics. Topics include sequence comparison, alignment and matching, suffix tree, sequence database search, phylogenetic tree, genome rearrangement, motif finding, RNA prediction, and peptide sequencing.

CS 742. Mobile and Wireless Security. 3 Hours.

Mobile/wireless devices are ubiquitous, raising the potential for many cyber threats. This course examines security vulnerabilities inherent in many existing and emerging mobile and wireless systems, ranging from smartphones to wearables and RFID tags. In addition to exposing security vulnerabilities, defensive mechanisms to address these vulnerabilities drawn from existing deployments and research literature will be studied.

CS 743. Cloud Security. 3 Hours.

Definition of cloud computing, cloud computing models, privacy, authenticity and integrity of outsourced data, proof of data possession / retrievability, cloud forensics, malware analysis as a service, remote verification of capability and reliability, proof of availability, economic attacks on clouds and outsourced computing, virtual machine security, trusted computing technology and clouds, verifiable resource accounting, cloud-centric regulatory compliance issues and mechanisms, business and security risk models, secure MapReduce, applications of secure cloud computing, private information retrieval and cloud cartography.

CS 745. Modern Cryptography. 3 Hours.

Theory and practices of modern cryptographic techniques, algorithms and protocols, including formal analysis. Secret key encryption algorithms, public key encryption algorithms, stream ciphers, one-way hashing algorithms, authentication and identification, digital signatures, signcryption, key establishment and management, secret sharing and data recovery, zero-knowledge proofs, public key infrastructures, efficient implementation, cryptanalytic attacks and countermeasures, security models, assumptions and proofs.

CS 746. Digital Currency. 3 Hours.

Fundamental principles of digital cash systems including Bitcoin, Ripple and other notable cryptocurrencies. Topics to be covered include how a cryptocurrency works, blockchain and other decentralized consensus protocols, proof of work, proof of stake, security and privacy of cryptocurrencies, cryptographic techniques for digital currency, and applications of blockchain in peer-to-peer trust establishment, smart contracts, digital asset management, financial exchanges and distributed autonomous organization.

CS 747. Biomedical Modeling. 3 Hours.

Modeling from biomedical datasets. Acquisition, segmentation; registration and fusion; construction of shape models; measurement; illustration modeling techniques for surgical planning.

CS 750. Theory of Computation. 3 Hours.

Topics include Turing machines, computability, computational complexity, complexity classes, P vs. NP, circuit complexity, randomized computation, interactive proofs, quantum, decidability, primality testing, and other computational models.

CS 751. Formal Language Theory. 3 Hours.

Parsing and translation theory, formal syntax, proof properties and complexity measures.

CS 752. Advanced Algorithms and Applications. 3 Hours.

The design and analysis of fundamental algorithms that underpin all fields of importance ranging from data science, business intelligence, finance and cyber security to bioinformatics. Algorithms to be covered include dynamic programming, greedy technique, linear programming, network flow,sequence matching, search and alignment, randomized algorithms, page ranking, data compression, and quantum algorithms. Efficiency of algorithms is analyzed in both memory and time costs.

CS 753. Computational Geometry. 3 Hours.

Basic methods and data structures, geometric searching, convex hulls, proximity, intersections.

CS 756. Web Security. 3 Hours.

The web uses advanced applications that run on a large variety of browsers that may be built using programming languages such as JavaScript, AJAX, Google Web Toolkit and Apache Struts, to name a few. This course studies how core web technologies work, the common security vulnerabilities associated with them, and how to build secure web applications that are free from these vulnerabilities.

CS 757. Penetration Testing and Vulnerability Assessment. 3 Hours.

This course focuses on penetration testing and vulnerability analysis. It introduces methodologies, techniques and tools to analyze and identify vulnerabilities in stand-alone and networked applications. It also covers methodologies for legal and standards compliance.

CS 759. Multiprocessor Programming. 3 Hours.

This course examines synchronization in concurrent systems, available atomic primitives, non-blocking programming techniques, lock-/wait-freedom, transactional memory, and memory models in hardware and software. The application of these techniques to the development of scalable data structures for multi-core architectures will be a central topic of this course.

CS 760. Artificial Intelligence. 3 Hours.

Programming methodologies, logic foundations, natural language applications, expert systems.

CS 762. Natural Language Processing. 3 Hours.

Syntax, semantics, ATNs, logic grammars, language and memory.

CS 763. Data Mining. 3 Hours.

Techniques used in data mining (such as frequent sets and association rules, decision trees, Bayesian networks, classification, clustering), algorithms underlying these techniques, and applications.

CS 765. Deep Learning. 3 Hours.

Deep Learning is a rapidly growing area of machine learning that has revolutionized speech recognition, image recognition and natural language processing. This course teaches deep learning basics such as logistic regression, stochastic gradient descent, deep neural networks, convolutional neural networks and deep models for text and sequences. Students will also gain hands-on experience of using deep learning systems such as TensorFlow.

CS 767. Machine Learning. 3 Hours.

The course covers important issues in supervised learning, unsupervised learning and reinforcement learning. Topics include graphical models and Bayesian inference, hidden Markov model, mixture models and expectation maximization, density estimation, dimensionality reduction, logistic regression and neural network, support vector machines and kernel methods, and bagging and boosting.
Prerequisites: CS 760 [Min Grade: C]

CS 769. Introduction to the Internet of Things. 3 Hours.

Definition of the Internet of Things (IoT), history, IoT components, device specifications and examples, architectures, protocols, applications, security and privacy issues, programming and development environments for IoT, interoperability, interfacing IoT devices via web and mobile applications.

CS 770. Computer Graphics and Data Visualization. 3 Hours.

Computer graphics and its application to the visualization of data for data science. Computer graphics: raster images, coordinate frames, matrix transforms,perspective and orthographic viewing, color, shading, visibility, quaternions and animation, triangle meshes, smooth curves and surfaces, texture mapping, graphics programming. Data visualization: Tufte's design rules, using colour to visualize, histograms, graph visualization, silhouettes and nonphotorealistic rendering, medical illustration, contouring, principal component analysis (PCA).

CS 771. Shape Design. 3 Hours.

This course covers various aspects of the design of mathematical descriptions of shape. These geometric models are used in computer graphics, game design, automobile and aircraft design, robotics, anatomical modeling, and many other disciplines. Building geometry from images. Bezier and B-spline curves and surfaces.

CS 772. Geometric Modeling for Computer Graphics. 3 Hours.

The formal description of a motion is necessary in computer animation for graphics, game design, robotics, and many other disciplines. This course covers various aspects of the design of motions. Typical topics include position control along Bezier curves, orientation control with quaternion splines, motion planning, motion capture, camera control, collision detection, visibility analysis.

CS 773. Computer Vision. 3 Hours.

Image smoothing and filtering, feature detection, segmentation, calibration and alignment, object recognition, morphology, projective geometry, scale space.

CS 774. 3D Printing. 3 Hours.

3D Printing : design, materials, and aesthetics. Students will do projects which result in unique artifacts created by 3D printing. Multi-disciplinary teams are encouraged.

CS 775. Visualization. 3 Hours.

Advanced Computer Graphics techniques aimed at "Scientific Visualization" applications.

CS 776. Structure from Motion. 3 Hours.

Structure from motion extracts geometric information from a series of images of an object, either still photographs or video streams. The position of the camera may also be computed, yielding camera paths. This topic has powerful applications in many areas, including computer graphics, computer vision, photography, visualization, and video augmentation. Projective geometry, multiple view geometry, feature extraction.

CS 780. Numerical Computing Foundations. 3 Hours.

Matrix computations and matrix analysis, including solution of linear systems, solution of nonlinear systems, spectral analysis, quadrature, and least squares.

CS 781. Simulation Models and Animations. 3 Hours.

Model development using popular simulation languages, e.g., Excel or OpenOffice.org Calc Spreadsheet; interfacing to an animation system such as Proof Animation or Open_GL.

CS 782. Simulation Methodology. 3 Hours.

Combined continuous and discrete simulation, simulation theory, modeling environments.

CS 783. Open Source Security Systems. 3 Hours.

An introduction to the design, implementation, evaluation and maintenance of secure software systems and applications using open source technologies, with an emphasis on hands-on experience. Topics include: open source ecosystems, open source security methodologies and models, notable open source software systems and projects, quality and security assurance through open source, open source supply chain security, major open source cryptographic packages; designing, implementing and maintaining security systems using open source technologies; assessment and regulatory compliance using open source tools, and open source hardware.

CS 784. Robot Motion. 3 Hours.

Path planning algorithms. Configuration space, potential functions, roadmaps, cell decomposition, probabilistic motion planning, compliant motion.

CS 786. Software-Defined Networking. 3 Hours.

Software defined networking (SDN) allows a logically centralized software component to manage and control the behavior of an entire network. Topics to be covered include abstractions and layered architecture of SDN, data, control and management planes, network virtualization, programming SDN, network functions (e.g. routing, load balancing and security), comparison of OpenFlow and proprietary SDN technologies, and network optimization with SDN.

CS 790. Special Topics. 3 Hours.

Selected Topics in Computer Science.

CS 791. Special Topics. 3 Hours.

Selected Topics in Computer Science.

CS 792. Special Topics. 3 Hours.

Selected Topics in Computer Science.

CS 796. Directed Readings and Research. 1-9 Hour.

Selected readings, research and project development under direction of a faculty member. Must have permission of instructor and graduate program director.

CS 799. Dissertation Research. 1-9 Hour.

Prerequisite: Admission to candidacy.
Prerequisites: GAC Z

Faculty

Bangalore, Purushotham, Professor of Computer and Information Sciences and Assistant Director of CIA-JFR, 2003, B.E. (Bangalore-India), M.S., Ph.D. (Mississippi State)
Barnard, Anthony C. L., Professor Emeritus of Computer and Information Sciences, 1968, B.S. (Birmingham, England), M.B.A. (UAB), Ph.D., D.Sc. (Birmingham, England)
Bethard, Steven J., Assistant Professor of Computer and Information Sciences, 2013, B.A., B.S. (Arizona), Ph.D. (Colorado)
Hasan, Ragib, Assistant Professor of Computer and Information Sciences, 2011, B.S. (Bangladesh), M.S., Ph.D. (Illinois Urbana-Champaign)
Hyatt, Robert M., Associate Professor of Computer and Information Sciences, 1988, B.S., M.S. (Southern Mississippi), Ph.D. (UAB)
Johnstone, John K., Associate Professor and Undergraduate Program Director of Computer and Information Sciences; Associate Professor of Ophthalmology, 1994, B.S. (Saskatchewan-Canada), M.S., Ph.D. (Cornell)
Jones, Warren T., Professor Emeritus of Computer and Information Sciences, 1979, B.S.E.E. (Georgia Institute of Technology), M.S. (Georgia State), M.S., Ph.D. (Georgia Institute of Technology), P.E. (Kentucky)
Pirkelbauer, Peter, Assistant Professor of Computer and Information Sciences, 2012, Dipl.-Ing. (Linz, Austria), MBA, Ph.D. (Texas A&M University), Compilers, Runtime Systems, High Performance Computing, Non-Blocking Software Design
Reilly, Kevin D., Professor Emeritus of Computer and Information Sciences, 1970, B.S. (Creghton), M.S. (Nebraska), Ph.D. (University of Chicago)
Saxena, Nitesh, Associate Professor of Computer and Information Sciences; MS CFSM Program Co-Director, 2011, B.S. (Kharagpur), M.S., Ph.D. (University of California-Irvine)
Sloan, Kenneth, Associate Professor , 1990, Sc.B. (Brown), M.S. (Stevens Institute of Technology), Ph.D. (Pennsylvania)
Sprague, Alan P., Professor of Computer and Information Sciences; Associate Professor of Medicine, 1988, B.A. (Oberlin), M.A.T. (Northwestern), M.S., Ph.D. (Ohio State)
Zhang, Chengcui, Professor and Graduate Program Director of Computer and Information Sciences, 2004, B.S., M.S. (Zhejiang University, China.), Ph.D. (Florida International)
Zheng, Yuliang, Professor and Chair, 2015, Ph.D. (Yokohama - Japan)