Apr 05, 2026  
2019-2020 Graduate Catalog 
    
2019-2020 Graduate Catalog ARCHIVED CATALOG: CONTENT MAY NOT BE CURRENT. USE THE DROP DOWN ABOVE TO ACCESS THE CURRENT CATALOG.

Courses - Computer Science


Computer Science

Courses

  • CS 620 - Human-Computer Interaction


    Credits 3

    Overview of human-computer interaction principles, guidelines, methods, and tools. User research, low-fidelity prototyping, participatory design, usability evaluation, visual design, usability principles, and affordances. Graphical user interface implementation, including design patterns, event handling, widget tool kits, languages, and development environments.

    Notes
    This course is crosslisted with CS 420. Credit at the 600-level requires additional work.

    Prerequisites
    Consent of Instructor

  • CS 641 - Advanced Internet Programming


    Credits 2

    Advanced Internet programming design and applications including client/server technologies and environment and software, client/server network operating systems, client/server database management systems, data warehousing environments, data mining, basic networking models and protocols, CASE tools, Groupware, Middleware, Internet security, privacy considerations.

    Notes
    This course is crosslisted with CS 441. Credit at the 600-level requires additional work.

  • CS 641L - Advanced Internet Programming Lab


    Credits 1

    Helps student develop practical skills and learn to apply industry-wide standards and practices for advanced Internet and Internet 2 applications.

    Notes
    This course is crosslisted with CS 441L. Credit at the 600-level requires additional work.

  • CS 643 - Information Assurance


    Credits 3

    Introduction to the principles of information assurance. Security awareness, Survey of information security technologies, cryptography, management and administration techniques necessary to improve information security and respond to a security breach, survey of threats to information security, privacy in computing, legal and ethical issues relating to information security, and case studies.

    Same as
    CS 443

  • CS 645 - Internet Security


    Credits 3

    Internet security theory and practice, advanced IP concepts, the concepts of stimulus and response in the context of securing a network, network packet and traffic analysis, internet protocol (IP) vulnerabilities, packet filtering, intrusion detection, internet exploits, exploit signatures, internet forensics, network security investigation.

    Notes
    This course is crosslisted with CS 445. Credit at the 600-level requires additional work.

  • CS 648 - Computer Security


    Credits 3

    Overview of computer security, threats, vulnerabilities and controls. Physical security, computer security policies and implementation plans, and computer forensics including penetration testing and investigation. Management issues. Legal, privacy and ethical issues.

    Notes
    This course is crosslisted with CS 448. Credit at the 600-level requires additional work.

  • CS 649 - Computer and Network Forensics


    Credits 3

    Basics of Computer Forensics and Network Forensics. How to protect your privacy on the internet: Email, obfuscation, web sites and servers. Encryption, data hiding, and hostile code. Investigating Windows and Unix. File system recovery/analysis and file management in different OSes. Technical and legal issues regarding digital evidence collection and forensics analysis.  This course is crosslisted with CS 449. Credit at the 600-level requires additional work.




    Prerequisites
    CS 645  or CS 648 

  • CS 651L - Multimedia Systems Design Lab


    Credits 1

    Helps student develop practical skills and learn to apply industry-wide standards and practices for the design of multimedia systems.

    Notes
    This course is crosslisted with CS 451L. Credit at the 600-level requires additional work.

  • CS 656 - Automata and Formal Languages


    Credits 3

    Regular expressions. Regular, context-free, and unrestricted grammars. Finite and pushdown automata. Turing machines and the halting problem; introduction to decidability.

    Notes
    This course is crosslisted with CS 456. Credit at the 600-level requires additional work.

  • CS 657 - Database Management Systems


    Credits 3

    Concepts and structures necessary for design and implementation of a database management system. Survey of current database management systems and use of a DBMS.

    Notes
    This course is crosslisted with CS 457. Credit at the 600-level requires additional work.

  • CS 658 - Introduction to Data Mining


    Credits 3

    Introduction to basic concepts in data mining. Topics include association rule discovery,  information extraction, categorization, and clustering. Of particular interest are programming and indexing methods associated with analysis and storage of massive data sets. These include MapReduce, and Locality sensitive hashing.

    Notes
    This course is crosslisted with CS 458. Coursework at the 600-level requires additional work.

    Prerequisites
    Admission to the CSMS or CSPHD programs.

  • CS 660 - Compiler Construction


    Credits 3

    Current methods in the design and implementation of compilers. Construction of the components of an actual compiler as a term project.

    Notes
    This course is crosslisted with CS 460. Credit at the 600-level requires additional work.

  • CS 663 - Computer Architecture


    Credits 3

    Introduction to computer architecture. Topics include basic computer organization concepts; history and taxonomy of computer architectures; language and software influences on architecture; instruction set design; stack, array, data flow, and database machines; multiprocessor and network architectures; and fault tolerant designs.

    Notes
    This course is crosslisted with CS 463. Credit at the 600-level requires additional work.

  • CS 665 - Computer Networks I


    Credits 3

    An introduction to the design and implementation of computer communication networks, their protocols and applications. It covers the technologies and standards in data transmission, telecommunication networks, network architectures, networking hardware, wireless networks, and the basis of the Internet including UDP and TCP as well as a number of application protocols.

    Notes
    This course is crosslisted with CS 465. Credit at the 600-level requires additional work.

    Prerequisites
    CS 370

  • CS 666 - Computer Networks II


    Credits 3

    Explores advanced topics in computer networks, the protocols, algorithms, hardware, and performance issues, especially in TCP/IP networks. Details of IP routing algorithms, quality of service, protocol implementation issues, router architecture and types, various TCP versions and their performance, the related telecommunication networks, and wireless technologies are discussed.

    Notes
    This course is crosslisted with CS 466. Credit at the 600-level requires additional work.

    Prerequisites
    CS 665 or CS 465

  • CS 669 - Introduction to Digital Image Processing


    Credits 3

    Background and basics of digital image processing. Topics include: the human visual system, image representation, sampling, image mathematics, and geometry, image enhancement, smoothing and sharpening, the fast Fourier transform, and a survey of image restoration methods.

    Notes
    This course is crosslisted with CS 469. Credit at the 600-level requires additional work.

    Prerequisites
    MATH 365 and STAT 411 and CS 117 or CS 135

  • CS 670 - Networks and Distributed Systems


    Credits 3

    Explores protocols and experiments with creating and implementing new protocols. In addition, students will be introduced to concepts such as deadlocks in networks/distributed applications, communication in distributed systems (among other RPC/RMI and the client server model in more detail), synchronization, reliability, transparency, and atomicity/transaction semantics.

    Notes
    This course is crosslisted with CS 470. Credit at the 600-level requires additional work.

  • CS 672 - Software Product Design and Development I


    Credits 3

    Current techniques in software design presented with emphasis on architecture first development. Introduction to the processes involved in development. Practice architectural design through a series of homework problems. Students work in teams to prepare the architecture for a software product.

    Notes
    This course is crosslisted with CS 672. Credit at the 600-level requires additional work.

    Prerequisites
    CS 326 and CS 370

  • CS 673 - Software Product Design II


    Credits 3

    Synthesis (term project) course to involve students, working in teams, in all of the activities necessary to define, model, implement, test, document, and deliver a program product. Students practice Object-Oriented and Component Based development and utilize UML and CASE tools to model the product and document the process.

    Notes
    This course is crosslisted with CS 473. Credit at the 600-level requires additional work.

    Prerequisites
    CS 672 or CS 472

  • CS 674 - Decision Environments for Software Product Development


    Credits 3

    Term project course to involve students, working in teams, with all of the activities and tools necessary to measure progress and monitor the development of a software product. Students utilize CASE tools for planning, for requirements management, for configuration management, for change management, and for product and process measurement for a product development project.

    Notes
    This course is crosslisted with CS 474. Credit at the 600-level requires additional work.

    Prerequisites
    CS 672 or CS 472

  • CS 677 - Analysis of Algorithms


    Credits 3

    Analysis of the time and space complexity of algorithms. Techniques for efficient algorithm design and effect of structure choice on efficiency. Fast algorithms for problems such as set, graph and matrix manipulations, pattern matching, sorting, and storage organization. Exponential time problems and introduction to NP-completeness.

    Notes
    This course is crosslisted with CS 477. Credit at the 600-level requires additional work.

    Prerequisites
    CS 302 and MATH 351

  • CS 680 - Computer Graphics


    Credits 3

    Graphics hardware, software and applications. Data structures for graphics, graphics languages, computer-aided design, and three-dimensional graphics.

    Notes
    This course is crosslisted with CS 480. Credit at the 600-level requires additional work.

    Prerequisites
    CS 302 and MATH 365

  • CS 682 - Artificial Intelligence


    Credits 3

    Survey of current artificial intelligence technologies: game playing, theorem-proving, natural language processing, pattern recognition, and heuristic programming.

    Notes
    This course is cross listed with CS 482. Credit at the 600 level requires additional work.

    Prerequisites
    CS 302 and PHIL 422

  • CS 688 - Big Data Analytics


    Credits 3

    This course provides an introduction to the basic concepts of big data analytics. Topics covered will include: statistical analysis, machine learning, cloud computing, Hadoop, MapReduce, Spark, DataBridge, data privacy, and R language.

    Notes
    This course is crosslisted with CS 488. Coursework at the 600-level requires additional work.

    Prerequisites
    Permission of instructor.

  • CS 689 - Advanced Computer Science Topics


    Credits 3

    Undergraduate-level course in advanced topics of computer science, depending upon the interest of faculty and students.

    Notes
    This course is crosslisted with CS 489. Credit at the 600-level requires additional work.

  • CS 690 - Independent Study


    Credits 1-3

    Library research and reports on topics of computer science interest. May be repeated for credit with the consent of the Department of Computer Science

    Notes
    This course is crosslisted with CS 490. Credit at the 600-level requires additional work.

  • CS 715 - Advanced Analysis of Algorithms


    Credits 3

    Analysis of the complexity and correctness of asymptotically efficient algorithms, including set partitioning, matrix multiplication, integer multiplication and pattern matching algorithms. The theory of NP-completeness; Cook’s theorem and polynomial transformations. Basic NP-complete problems, such as the three-satisfactory, three dimensional matching and Hamiltonian circuit problems. PSPACE-completeness results, such as quantified Boolean formulas.

    Prerequisites
      and   

  • CS 733 - Geographic Data Base Systems


    Credits 3

    Spatial data types and operators: point queries, range queries, translation, rotation, and scaling. Data structures for object representation: arc tree, quadtrees. Commercial data bases vs. spatial data bases: relational, hierarchical, network.

    Notes
    (May not be used to satisfy degree requirements in Computer Science.)

    Prerequisites
    CS 135 or CS 117 or equivalent and STAT 611

  • CS 740 - Statistical Pattern Recognition


    Credits 3

    Concepts and formal theoretical structures necessary for design and implementation of a pattern recognition system. Topics include: parametric and non-parametric methods, linear and non-linear classifiers and clustering algorithms.

    Prerequisites
     , MATH 253 or 265, and CS 302

  • CS 741 - Structural Pattern Recognition


    Credits 3

    Survey of advanced pattern recognition techniques. Topics include: graph matching methods, syntactic approaches, neural nets, and context-dependent methods.

    Prerequisites
      and   

  • CS 747 - Cryptography and Information Theory


    Credits 3

    Cryptography, cryptographic systems, encryption algorithms, cryptographic techniques, access control, lattice model of information flow, flow control mechanisms, inference control mechanisms, mechanisms restricting noise, mechanisms restricting statistics, statistical database models.

    Prerequisites
    CS 370, STAT 411

  • CS 758 - Computational Geometry


    Credits 3

    Geometric searching, point location, range searching, convex hull, Graham’s scan, gift wrapping, dynamic convex hull, proximity closest pair, Voronoi diagram, triangulation. Intersection, visibility shortest paths, geometry of rectangles.

    Prerequisites
      

  • CS 769 - Advanced Data Base Management


    Credits 3

    Continuation of CS 632, including normalization of relational data bases using functional and multivalued dependencies. Query processing, query interpretation, query optimization, and methods for implementing and optimizing logic queries. Knowledge data bases, distributed data bases and object-oriented data bases.

    Prerequisites
      

  • CS 772 - Software Architecture


    Credits 3

    Survey of advanced techniques for specifying and designing large software systems. System verification. Reliability and project management.

    Prerequisites
    CS 370,  , and  , or consent of instructor.

  • CS 780 - Distributed Computing and Algorithms


    Credits 3

    Methods and algorithms of distributed computing. Topics may include architecture and design goals, formal approaches to distributed computing problems, networks and protocols, models of distributed computing, synchronization and communication, synchronous and asynchronous systems, fault-tolerance and reliability, self-stabilization, distributed algorithms and applications.

    Prerequisites
    CS 370,   

  • CS 781 - Automated Deduction


    Credits 3

    Use of computers for forming deductions and proving theorems in symbolic logic covered. Topics include resolution, unification, proof strategies, and equality. Also examines areas of application: problem solving, question answering, program verification, automatic programming and logic programming (Prolog).

    Prerequisites
      

  • CS 782 - Expert System Construction


    Credits 3

    Design, organization, and construction of expert systems. Includes general concepts, characteristics, elements, advantages, and examples of expert systems. Also rule-based knowledge representations, inference techniques, implementation tools and shells, and advanced topics.

    Prerequisites
      

  • CS 783 - Genetic Algorithms and Neural Networks


    Credits 3

    A study of the utility of adaptive methods and their limitations across optimization problems spanning areas of engineering. Topics include genetic algorithms and genetic programming, simulated annealing, tabu search, neural networks, artificial life. Use of software tools for implementations.

  • CS 787 - Advanced Big Data Analytics


    Credits 3

    Cutting-edge technologies for big data analytics including various deep learning architecture, and algorithms. Explores specialized neural network architectures for both structured and unstructured big data including text analysis, image recognition, natural language processing, video analysis, gaming and security.

    Grading
    Letter grade

  • CS 788 - Computational Environmetrics


    Credits 3

    Applications of sensor networks and pattern recognition to environmental problems. Geometric pattern recognition: metrics for comparing 2-d shapes, signature functions, turning functions. Geometric algorithms in sensor networks. Position based routing, face routing, broadcasting and multi-casting. Interference aware sensor networks. Data gathering and target recognition. Prototype implementation.

    Prerequisites
    Consent of instructor.

  • CS 789 - Topics in Advanced Computer Science


    Credits 3 - 24

    Graduate-level course in some field of computer science, at advanced level, depending upon the current interest of the staff and the students.

    Notes
    May be repeated with a different subject matter to a maximum of twenty four credits.

    Prerequisites
    Consent of instructor.

  • CS 790 - Master’s Project


    Credits 1 – 3

    Research, analysis, and development work towards completion of an approved project.

    Notes
    May be repeated, but only three credits will be applied to the student’s program.

    Grading
    S/F grading only.

    Prerequisites
    Consent of instructor.

  • CS 791 - Thesis


    Credits 3 – 6

    Research, analysis, and development work towards completion of an approved project.

    Notes
    May be repeated, but only six credits will be applied to the student’s program.

    Grading
    S/F grading only.

    Prerequisites
    Consent of instructor.

  • CS 792 - Research Seminar


    Credits 1

    Oral presentation of assigned articles.

    Notes
    May be repeated to a maximum of four credits.

    Prerequisites
    Consent of instructor.

  • CS 795 - Directed Research


    Credits 3

    Supervised research in the doctoral program. May be repeated for a maximum of twelve credits.

    Prerequisites
    Department consent.

  • CS 798 - Dissertation Proposal


    Credits 3

    Development of a prospectus.

    Notes
    May be repeated to a maximum of 6 credits.

    Prerequisites
    Department consent.

  • CS 799 - Dissertation Research


    Credits 1 – 6

    Research analysis and writing towards completion of dissertation and subsequent defense.

    Notes
    May be repeated but no more than 18 credits will be allowed in the degree.

    Grading
    S/F grading only.

    Prerequisites
    Department consent.

  • INF 730 - Human Computer Interaction


    Credits 3

    Covers the fundamental concepts and techniques for design, implementation, and evaluation of human computer interfaces. Topics include Foundations of Human computer interaction, design and implementation techniques for graphical user interfaces, evaluation techniques, and different interface models.

    Prerequisites
    Consent of instructor.

  • INF 760 - Advanced Theoretical Foundations of Informatics


    Credits 3

    Advanced course to cover mathematical methods for information modeling, analysis, and manipulation. Requires various research article reading and discussions. Topics include proof techniques, first-order logic, computability theory, complexity theory, model theory, and statistics.

    Prerequisites
    INF 700

  • INF 790 - Informatics Project


    Credits 3

    Advanced project in informatics.

    Notes
    May be repeated for different project topics, but only three credits will be applied to the student’s program.

    Prerequisites
    INF 700 and consent of instructor.

  • INF 792 - Internship


    Credits 3

    Supervised internship in business, industry, government, or educational institution providing practical experience to use skills and knowledge acquired in informatics and cognate course work.

    Prerequisites
    INF 700 and consent of instructor.

  • INF 795 - Independent Study in Informatics


    Credits 1-6

    Supervised independent work in a topic of Informatics.

    Notes
    May be repeated but no more than 6 credits will be allowed in the degree.

    Grading
    S/F grading only

    Prerequisites
    INF 700 and Instructor consent

  • INF 799 - Dissertation Research


    Credits 1 – 6

    Research analysis and writing towards completion of dissertation and subsequent defense.

    Notes
    May be repeated but no more than eighteen credits will be allowed in the degree.

    Prerequisites
    Passing the written comprehensive examination.

  • ITE 651 - Managing Big Data and Web Databases


    Credits 3

    This course will teach the concepts and techniques of databases for real-time web and big data applications. The course will focus primarily on NoSQL, object oriented, and XML databases.  Topics include characteristics and significance of NoSQL databases, NoSQL data formats, key and value pairs, basic schema in NoSQL, and table structures and data types.

     

    Same as
    Crosslisted with ITE 451

    Notes
    Not repeatable beyond 3 credits.
     

    Grading
    Letter