Skip to Navigation Skip to Page Content

Course Descriptions

Undergraduate

  • Introduction to Computer Science

    • CMP_SC 1000 | 1 Credit Hours
    • This course introduces the Computer Science field, including the history of computers, career opportunities, and ethical/social issues. There will be lectures given by MU Computer Science faculty to discuss exciting fields as well as career advisement given by Computer Science industry representatives. Prerequisites: Restricted to freshman/sophomore students who are BS Computer Science, BS Information Technology and Undeclared Engineering or Pre-Engineering may enroll in the class without permission
  • Topics in Computer Science

    • CMP_SC 1001 | 1 - 99 Credit Hours
    • Topic and credit may vary from semester to semester. May be repeated upon consent of department.
  • Algorithm Design and Programming I

    • CMP_SC 1050 | 3 Credit Hours
    • This course provides experience in developing algorithms, designing, implementing programs. Topics include syntax/semantics, flow control, loops, recursion, I/O, arrays, strings and pointers. Prerequisites: C- or higher in MATH 1100 or MATH 1160 or MATH 1500. May be restricted to Engineering majors only.
  • Algorithm Design and Programming I

    • CMP_SC 1050 | 3 Credit Hours
    • This course provides experience in developing algorithms, designing, implementing programs. Topics include syntax/semantics, flow control, loops, recursion, I/O, arrays, strings and pointers. Prerequisites: C- or higher in MATH 1100 or MATH 1160 or MATH 1500. May be restricted to Engineering majors only.
  • Topics in Computer Science

    • CMP_SC 2001 | 1 - 99 Credit Hours
    • Topic and credit may vary from semester to semester. May be repeated upon consent of department. Prerequisites: departmental consent.
  • Algorithm Design and Programming II

    • CMP_SC 2050 | 3 Credit Hours
    • A study of fundamental techniques and algorithms for representing and manipulating data structures. Topics include data abstraction, recursion, stacks, queues, linked lists, trees, efficient methods of sorting and searching, and Big-O analysis. Prerequisites: C- or higher in CMP_SC 1050. May be restricted to Engineering majors only.
  • Algorithm Design and Programming II

    • CMP_SC 2050 | 3 Credit Hours
    • A study of fundamental techniques and algorithms for representing and manipulating data structures. Topics include data abstraction, recursion, stacks, queues, linked lists, trees, efficient methods of sorting and searching, and Big-O analysis. Prerequisites: C- or higher in CMP_SC 1050. May be restricted to Engineering majors only.
  • Production Languages

    • CMP_SC 2111 | 1 - 3 Credit Hours
    • The study of the syntax, semantics, and applications of one programming language suitable for large scale scientific or commercial projects, such as FORTRAN, COBOL, PL/1, C, or ADA. May be taken more than once for credit. Prerequisites: C- or higher in CMP_SC 2050.
  • Introduction to Digital Logic

    • CMP_SC 2270 | 3 Credit Hours
    • Basic tools, methods and procedures to design combinational and sequential digital circuits and systems, including number systems, boolean algebra, logic minimization, adder design, memory elements, and finite state machine design. Prerequisites: C- or higher in CMP_SC 1050.
  • Introduction to the Internet, WWW and Multimedia Systems

    • CMP_SC 2830 | 3 Credit Hours
    • This course will attempt to provide a comprehensive understanding of the evolution, the technologies, and the tools of the Internet. In particular, issues pertaining to the World Wide Web and Multimedia (HTML, CGI, Web based applications) will be discussed in detail. Prerequisites: C- or higher in CMP_SC 2050.
  • Introduction to the Internet, WWW and Multimedia Systems

    • CMP_SC 2830 | 3 Credit Hours
    • This course will attempt to provide a comprehensive understanding of the evolution, the technologies, and the tools of the Internet. In particular, issues pertaining to the World Wide Web and Multimedia (HTML, CGI, Web based applications) will be discussed in detail. Prerequisites: C- or higher in CMP_SC 2050.
  • Advanced Algorithm Design

    • CMP_SC 3050 | 3 Credit Hours
    • This class surveys fundamental algorithms and data structures that have wide practical applicability, including search trees and graph algorithms. Emphasis is placed on techniques for efficient implementation and good software development methodologies. Prerequisites: CMP_SC 2050 with a C or higher.
  • Computer Organization and Assembly Language

    • CMP_SC 3280 | 3 Credit Hours
    • Introduces computer architectures, programming concepts including parameter passing, I/O, interrupt handling, DMA, memory systems, cache, and virtual memory. Graded of A-F basis only. Prerequisites: C- or higher in CMP_SC 2270 or ECE 1210.
  • Object Oriented Programming

    • CMP_SC 3330 | 3 Credit Hours
    • This course focuses on object-oriented programming concepts: abstraction, polymorphism, encapsulation, inheritance, interfaces, abstract classes, files, streams, and object serialization. Topics such as GUI and event-driven programming are also tackled. Prerequisites: CMP_SC 2050 with a C or higher grade.
  • Database Applications and Information Systems

    • CMP_SC 3380 | 3 Credit Hours
    • Covers fundamental topics of database management systems (DBMS) and database-enabled applications. Topics include a brief history of secondary storage and databases, data modeling, introductory SQL, an overview of current database trends, and current popular database systems. Graded on A-F basis only. Prerequisites: C- or higher in CMP_SC 2050.
  • UNIX Operating System

    • CMP_SC 3530 | 3 Credit Hours
    • Introduction to the UNIX operating system and its interfaces including the file system, shell, editors, pipes and filters, input/output system, shell programming, program development including C, and document preparation. Prerequisites: C- or higher in CMP_SC 2050.
  • Internship in Computer Science

    • CMP_SC 3940 | 1 - 3 Credit Hours
    • Computer-related experience in business or industry jointly supervised by faculty and computer professionals. Students should apply one semester in advance for consent of the supervising professor. Graded on a S/U basis only. Prerequisites: CMP_SC 2050.
  • Topics in Computer Science

    • CMP_SC 4001 | 1 - 99 Credit Hours
    • Topic and credit may vary from semester to semester. May be repeated upon consent of department.
  • Design and Analysis of Algorithms I

    • CMP_SC 4050 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7050). This course reviews and extends earlier work with linked structures, sorting and searching algorithms, and recursion. Graph algorithms, string matching, combinatorial search, geometrical algorithms and related topics are also studied. Prerequisites: C- or higher in CMP_SC 3050 and MATH 2320.
  • String Algorithms

    • CMP_SC 4060 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7060). This course provides an introduction to algorithms that efficiently compute patterns in strings. Topics covered include basic properties of strings, data structures for processing strings, string decomposition, exact and approximate string matching algorithms. Prerequisites: C- or higher in CMP_SC 4050.
  • Numerical Methods for Science and Engineering

    • CMP_SC 4070 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7070). Introduces basic numerical methods widely used by computer scientists/engineers. Students will use the MATLAB platform to computationally solve problems, such as finding roots of nonlinear equations, solving systems of equations, fitting curves, solving ODEs, finding eigenvalues, etc. Graded on A-F basis only. Prerequisites: C- or higher in CMP_SC 2050 and junior standing or instructor's consent.
  • Parallel Programming for High Performance Computing

    • CMP_SC 4080 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7080) This course will provide in-depth treatment of the evolution high performance computing architectures and parallel programming techniques for those architectures. We will cover topics such as: multi-process and multi-threaded programming; multi-node system architectures (clusters, grids, and clouds) and distributed programming; and general purpose GPU programming. To reinforce lecture topics, programming projects will be completed using multi-process and multi-threaded techniques for modern multicore, multiprocessor workstations; parallel and distributed programming techniques for modern multi-node systems; and general purpose GPU programming. Parallel algorithms will be investigated, selected, and then developed for various scientific data processing problems. Programming projects will be completed using C and C++ APIs and language extensions, e.g. threads (pthreads, Boost/C++), TBB, CILK, OpenMP, OpenMPI, CUDA and OpenCL. Prerequisites: C- or higher in CMP_SC 3280 or ECE 3210 and C- or higher in CMP_SC 3050 or ECE 3220.
  • Problems in Computer Science

    • CMP_SC 4085 | 1 - 6 Credit Hours
    • Independent investigation or project in Computer Science. May be repeated to up 6 hours. Prerequisites: senior standing in Computer Science.
  • Computer Architecture I

    • CMP_SC 4270 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7270). Architectural features of high-performance computer systems including hierarchical and virtual memory, pipelining, vector processing and an introduction to multiple-processor systems. Prerequisites: C- or higher in CMP_SC 2270 and CMP_SC 2050.
  • Network Systems Architecture

    • CMP_SC 4280 | 4 Credit Hours
    • (same as ECE 4280; cross-leveled with CMP_SC 7280, ECE 7280). The course covers network systems (interconnects and switch fabrics, network considerations) and relevant networking applications at the network, transport and application layer. Prerequisites: C- or higher in CMP_SC 2050 or ECE 3220 and C- or higher in CMP_SC 3280 or ECE 3210.
  • Software Engineering I

    • CMP_SC 4320 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7320). Overview of software life cycle, including topics in systems analysis and requirements specification, design, implementation testing and maintenance. Uses modeling techniques, project management, peer review, quality assurance, and system acquisition. Prerequisites: C- or higher in CMP_SC 3380.
  • Software Engineering I - Writing Intensive

    • CMP_SC 4320W | 3 Credit Hours
    • (cross-leveled with CMP_SC 7320). Overview of software life cycle, including topics in systems analysis and requirements specification, design, implementation testing and maintenance. Uses modeling techniques, project management, peer review, quality assurance, and system acquisition. Prerequisites: CMP_SC 3380.
  • Object Oriented Design I

    • CMP_SC 4330 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7330). Building on a prior knowledge of program design and data structures, this course covers object-oriented design, including classes, objects, inheritance, polymorphism, and information hiding. Students will apply techniques using a modern object-oriented implementation language. Prerequisites: C- or higher in CMP_SC 3330.
  • Database Management Systems I

    • CMP_SC 4380 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7380). Fundamental concepts of current database systems with emphasis on the relational model. Topics include entity-relationship model, relational algebra, query by example, indexing, query optimization, normal forms, crash recovery, web-based database access, and case studies. Project work involves a modern DBMS, such as Oracle, using SQL. Prerequisites: C- or higher in CMP_SC 3380.
  • Theory of Computation I

    • CMP_SC 4410 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7410). An introductory study of computation and formal languages by means of automata and related grammars. The theory and applications of finite automata, regular expressions, context free grammars, pushdown automata and Turing machines are examined. May not be counted toward Computer Science MS/PHD. Prerequisites: C- or higher in MATH 2320.
  • Compilers I

    • CMP_SC 4430 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7430). Introduction to the translation of programming languages by means of interpreters and compilers. Lexical analysis, syntax specification, parsing, error-recovery, syntax-directed translation, semantic analysis, symbol tables for block structured languages, and run-time storage organization. May not be counted toward Computer Science MS/PHD. Prerequisites: C- or higher in MATH 2320, CMP_SC 3280 and CMP_SC 4450.
  • Malware Analysis and Defense

    • CMP_SC 4440 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7440). Malicious software or "malware" is a security threat. This course teaches students to understand the nature and types of viruses and how they are threats; teaches techniques used to prevent, detect, repair and defend against viruses and worms; teaches program binary examination tools to detect malicious code; and teaches ethical issues surrounding computer security violations. Prerequisites: C- or higher in CMP_SC 3280 or ECE 3210.
  • Principles of Programming Languages

    • CMP_SC 4450 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7450). An introduction to the structure, design and implementation of programming languages. Topics include syntax, semantics, data types, control structures, parameter passing, run-time structures, and functional and logic programming. May not be counted toward Computer Science MS/PHD. Prerequisites: C- or higher in CMP_SC 2050.
  • Introduction to Cryptography

    • CMP_SC 4460 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7460). Cryptography is an important technique used to achieve security goals in an untrusted and possibly adversarial environment. The goals of this course are: (1) to provide students with a solid background with basic cryptographic techniques and their applications, (2) to impart knowledge of standard cryptographic algorithms and (3) to foster understanding of the correct use of cryptographic techniques. Prerequisites: C- or higher in CMP_SC 3050 and MATH 2320.
  • Operating Systems I

    • CMP_SC 4520 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7520). Basic concepts, theories and implementation of modern operating systems including process and memory management, synchronization, CPU and disk scheduling, file systems, I/O systems, security and protection, and distributed operating systems. Prerequisites: C- or higher in CMP_SC 3050 and MATH 1700.
  • Cloud Computing

    • CMP_SC 4530 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7530). This course covers principles that integrate computing theories and information technologies with the design, programming and application of distributed systems. The course topics will familiarize students with distributed system models and enabling technologies; virtual machines and virtualization of clusters, networks and data centers; cloud platform architecture with security over virtualized data centers; service- oriented architectures for distributed computing; and cloud programming and software environments. Additionally, students will learn how to conduct some parallel and distributed programming and performance evaluation experiments on applications within available cloud platforms. Finally we will survey research literature and latest technology trends that are shaping the future of high performance, distributed and cloud computing. Prerequisites: C- or higher in CMP_SC 3330 or instructor's consent.
  • Computer Graphics I

    • CMP_SC 4610 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7610).Basic concepts and techniques of interactive computer graphics including hardware, software, data structures, mathematical manipulation of graphical objects, the user interface, and fundamental implementation algorithms. Prerequisites: C- or higher in CMP_SC 3050 and MATH 1500 or C- or higher in CMP_SC 3050 and MATH 1300 and MATH 1400.
  • Digital Image Processing

    • CMP_SC 4650 | 3 Credit Hours
    • (same as ECE 4655; cross-leveled with CMP_SC 7650, ECE 7655). Fundamentals of digital image processing hardware and software including digital image acquisition, image display, image enhancement, image transforms and segmentation. Prerequisites: C- or higher in CMP_SC 2050 and STAT 4710 or instructor's consent.
  • Digital Image Compression

    • CMP_SC 4670 | 3 Credit Hours
    • (same as ECE 4675; cross-leveled with ECE 7675, CMP_SC 7670). Covers digital image formation, information theory concepts, and fundamental lossless and lossy image compression techniques including bit plane encoding, predictive coding, transform coding, block truncation coding, vector quantization, subband coding and hierarchical coding. Prerequisites: C- or higher in CMP_SC 2050.
  • Introduction to Machine Learning and Pattern Recognition

    • CMP_SC 4720 | 3 Credit Hours
    • (same as ECE 4720; cross-leveled with ECE 7720, CMP_SC 7720) This course provides foundations and methods in machine learning and pattern recognition that address the problem of programming computers to optimize performance by learning from example data or expert knowledge. Graded on A-F basis only. Prerequisites: C- or higher in CMP_SC 2050 and STAT 4710 or instructor consent.
  • Building Intelligent Robots

    • CMP_SC 4730 | 4 Credit Hours
    • (same as ECE 4340; cross-leveled with CMP_SC 7340, ECE 7340). Covers the design and development of intelligent machines, emphasizing topics related to sensor-based control of mobile robots. Includes mechanics and motor control, sensor characterization, reactive behaviors and control architectures. Prerequisites: junior standing. Recommended: programming experience in one of the following programming languages - Basic, C, C++, or Java.
  • Interdisciplinary Introduction to NLP

    • CMP_SC 4740 | 3 Credit Hours
    • (same as LINGST 4740; cross-leveled with CMP_SC 7740; LINGST 7740). The goal of this course is to enable students to develop substantive NLP applications. Focus on current structural and statistical techniques for the parsing and interpretation of texts. Prerequisites: senior standing.
  • Artificial Intelligence I

    • CMP_SC 4750 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7750). Introduction to the concepts and theories of intelligent systems. Various approaches to creating intelligent systems, including symbolic and computational approaches, insight into the philosophical debates important to understanding AI. Prerequisites: C- or higher in CMP_SC 3050 and junior standing.
  • Introduction to Computational Intelligence

    • CMP_SC 4770 | 3 Credit Hours
    • (same as ECE 4870; cross-leveled with CMP_SC 7770, ECE 7870). Introduction to the concepts, models and algorithms for the development of intelligent systems from the standpoint of the computational paradigms of neural networks, fuzzy set theory and fuzzy logic, evolutionary computation and swarm optimization.
  • Science and Engineering of the World Wide Web

    • CMP_SC 4830 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7830). This course will study the science and engineering of the World Wide Web. We will study the languages, protocols, services and tools that enable the web. Emphasis will be placed on basics and technologies. Prerequisites: C- or higher in CMP_SC 2830.
  • Computer Networks I

    • CMP_SC 4850 | 3 Credit Hours
    • (cross-leveled with CMP_SC 7850). Introduction to concepts and terminology of data communications and computer networking. Basic protocols and standards, applications of networking, routing algorithms, congestion avoidance, long-haul and local networks. Prerequisites: C- or higher in CMP_SC 2270 or ECE 1210 and C- or higher in MATH 2320.
  • Senior Capstone Design I

    • CMP_SC 4970 | 3 Credit Hours
    • Communication skills, and prototyping. Covers professional ethics, intellectual property/patenting, knowledge of engineering literature, safety, economic and environmental impact of technology. Essays, oral and written reports. Prerequisites: C- or higher in CMP_SC 4320 and senior standing.
  • Senior Capstone Design I - Writing Intensive

    • CMP_SC 4970W | 3 Credit Hours
    • Communication skills, and prototyping. Covers professional ethics, intellectual property/patenting, knowledge of engineering literature, safety, economic and environmental impact of technology. Essays, oral and written reports. Prerequisites: C- or higher in CMP_SC 4320 and senior standing.
  • Senior Capstone Design II

    • CMP_SC 4980 | 3 Credit Hours
    • Course entails completion of CMP_SC 4970 design project. Design prototyping, testing, evaluation, presentation, and preparation of documentation. Prerequisites: C- or higher in CMP_SC 4970.
  • Undergraduate Research in Computer Science

    • CMP_SC 4990 | 0 - 6 Credit Hours
    • Independent investigation or project in Computer Science. May be repeated to 6 hours. Prerequisites: senior standing in Computer Science. .
  • Undergraduate Research in Computer Science - Honors

    • CMP_SC 4995 | 1 - 6 Credit Hours
    • Independent investigation to be presented as an undergraduate honors thesis. Prerequisites: honors student in Computer Science.

Graduate

  • Topics in Computer Science

    • CMP_SC 7001 | 1 - 99 Credit Hours
    • Topic and credit may vary from semester to semester. May be repeated upon consent of department.
  • Computational Methods in Bioinformatics

    • CMP_SC 7010 | 3 Credit Hours
    • (same as INFOINST 7010) Introduces the fundamental concepts and basic computational techniques for mainstream bioinformatics problems. Emphasis will be placed on the computational aspect of bioinformatics, including formulation of a biological problem in a computable problem, design of scoring functions and algorithms, confidence assessment of prediction results and software development. Prerequisites: CMP_SC 4050 and STAT 4710.
  • Design and Analysis of Algorithms I

    • CMP_SC 7050 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4050). This course reviews and extends earlier work with linked structures, sorting and searching algorithms, and recursion. Graph algorithms, string matching, combinatorial search, geometrical algorithms and related topics are also studied. Cannot be counted toward CS MS/PHD. Prerequisites: CMP_SC 3050 and MATH 2320.
  • String Algorithms

    • CMP_SC 7060 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4060). This course provides an introduction to algorithms that efficiently compute patterns in strings. Topics covered include basic properties of strings, data structures for processing strings, string decomposition, exact and approximate string matching algorithms. Prerequisites: CMP_SC 4050.
  • Numerical Methods for Science and Engineering

    • CMP_SC 7070 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4070). Introduces basic numerical methods widely used by computer scientists/engineers. Students will use the MATLAB platform to computationally solve problems, such as finding roots of nonlinear equations, solving systems of equations, fitting curves, solving ODEs, finding eigenvalues, etc. Graded on A-F basis only. Prerequisites: CMP_SC 2050 or instructor's consent.
  • Parallel Programming for High Performance Computing

    • CMP_SC 7080 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4080). This course will provide in-depth treatment of the evolution high performance computing architectures and parallel programming techniques for those architectures. We will cover topics such as: multi-process and multi-threaded programming; multi-node system architectures (clusters, grids, and clouds) and distributed programming; and general purpose GPU programming. To reinforce lecture topics, programming projects will be completed using multi-process and multi-threaded techniques for modern multicore, multiprocessor workstations; parallel and distributed programming techniques for modern multi-node systems; and general purpose GPU programming. Parallel algorithms will be investigated, selected, and then developed for various scientific data processing problems. Programming projects will be completed using C and C++ APIs and language extensions, e.g. threads (pthreads, Boost/C++), TBB, CILK, OpenMP, OpenMPI, CUDA and OpenCL. Prerequisites: CMP_SC 3280 or ECE 3210 and CMP_SC 3050 or ECE 3220.
  • Computer Architecture I

    • CMP_SC 7270 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4270). Architectural features of high-performance computer systems including hierarchical and virtual memory, pipelining, vector processing and an introduction to multiple-processor systems. Prerequisites: CMP_SC 2270 and CMP_SC 2050.
  • Software Engineering I

    • CMP_SC 7320 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4320). Overview of software life cycle, including topics in systems analysis and requirements specification, design, implementation testing and maintenance. Uses modeling techniques, project management, peer review, quality assurance, and system acquisition. May not be counted toward CS MS/PHD. Prerequisites: CMP_SC 3380.
  • Object Oriented Design I

    • CMP_SC 7330 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4330). Building on a prior knowledge of program design and data structures, this course covers object-oriented design, including classes, objects, inheritance, polymorphism, and information hiding. Students will apply techniques using a modern object-oriented implementation language. Prerequisites: CMP_SC 3330.
  • Database Management Systems I

    • CMP_SC 7380 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4380). Fundamental concepts of current database systems with emphasis on the relational model. Topics include entity-relationship model, relational algebra, query by example, indexing, query optimization, normal forms, crash recovery, web-based database access, and case studies. Project work involves a modern DBMS, such as Oracle, using SQL. Prerequisites: CMP_SC 2050.
  • Theory of Computation I

    • CMP_SC 7410 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4410). An introductory study of computation and formal languages by means of automata and related grammars. The theory and applications of finite automata, regular expressions, context free grammars, pushdown automata and Turing machines are examined. May not be counted toward CS MS/PHD. Prerequisites: MATH 2320.
  • Compilers I

    • CMP_SC 7430 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4430). Introduction to the translation of programming languages by means of interpreters and compilers. Lexical analysis, syntax specification, parsing, error-recovery, syntax-directed translation, semantic analysis, symbol tables for blockstructured languages, and run-time storage organization. May not be counted toward CS MS/PHD. Prerequisites: MATH 2320 and CMP_SC 3280 and CMP_SC 4450.
  • Malware Analysis and Defense

    • CMP_SC 7440 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4440). Malicious software or "malware" is a security threat. This course teaches students to understand the nature and types of viruses and how they are threats; teaches techniques used to prevent, detect, repair and defend against viruses and worms; teaches program binary examination tools to detect malicious code; and ethical issues surround computer security violations. Prerequisites: CMP_SC 3280, ECE 3210 or equivalent.
  • Principles of Programming Languages

    • CMP_SC 7450 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4450). An introduction to the structure, design and implementation of programming languages. Topics include syntax, semantics, data types, control structures, parameter passing, run-time structures, and functional and logic programming. May not be counted toward CS MS/PHD. Prerequisites: CMP_SC 2050.
  • Introduction to Cryptography

    • CMP_SC 7460 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4460). Cryptography is an important technique used to achieve security goals in an untrusted and (possibly) adversarial environment. The goals of this course are: (1) to provide students with a solid back- ground with basic cryptographic techniques and their applications, (2) impart knowledge of standard cryptographic algorithms and (3) foster understanding of the correct use of cryptographic techniques. Prerequisites: CMP_SC 3050 and MATH 2320.
  • Operating Systems I

    • CMP_SC 7520 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4520). Basic concepts, theories and implementation of modern operating systems including process and memory management, synchronization, CPU and disk scheduling, file systems, I/O systems, security and protection, and distributed operating systems. Cannot be counted toward CS MS/PHD. Prerequisites: CMP_SC 3050 and MATH 1700.
  • Cloud Computing

    • CMP_SC 7530 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4530). This course covers principles that integrate computing theories and information technologies with the design, programming and application of distributed systems. The course topics will familiarize students with distributed system models and enabling technologies; virtual machines and virtualization of clusters, networks and data centers; cloud platform architecture with security over virtualized data centers; service- oriented architectures for distributed computing; and cloud programming and software environments. Additionally, students will learn how to conduct some parallel and distributed programming and performance evaluation experiments on applications within available cloud platforms. Finally we will survey research literature and latest technology trends that are shaping the future of high performance, distributed and cloud computing. Prerequisites: CMP_SC 3330 or instructor's consent.
  • Computer Graphics I

    • CMP_SC 7610 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4610). Basic concepts and techniques of interactive computer graphics including hardware, software, data structures, mathematical manipulation of graphical objects, the user interface, and fundamental implementation algorithms. Prerequisites: CMP_SC 3050 and either MATH 1500 or MATH 1300 and MATH 1400.
  • Digital Image Processing

    • CMP_SC 7650 | 3 Credit Hours
    • (same as ECE 7655; cross-leveled with CMP_SC 4650, ECE 4655). Fundamentals of digital image processing hardware and software including digital image acquisition, image display, image enhancement, image transforms and segmentation. Prerequisites: CMP_SC 2050, STAT 7710 or instructor's consent.
  • Digital Image Compression

    • CMP_SC 7670 | 3 Credit Hours
    • (same as ECE 7675; cross-leveled with CMP_SC 4670, ECE 4675). Covers digital image formation, information theory concepts, and fundamental lossless and lossy image compression techniques including bit plane encoding, predictive coding, transform coding, block truncation coding, vector quantization, subband coding and hierarchical coding. Prerequisites: CMP_SC 2050.
  • Introduction to Machine Learning and Pattern Recognition

    • CMP_SC 7720 | 3 Credit Hours
    • (same as ECE 7720; cross-level CMP 4720, ECE 4720). This course provides foundation knowledge and methods in machine learning and pattern recognition that address the problem of programming computers to optimize performance by learning from example data or expert knowledge. Graded on A-F basis only. Prerequisites: CMP_SC 2050 and STAT 4710 or instructor's consent.
  • Building Intelligent Robots

    • CMP_SC 7730 | 4 Credit Hours
    • (same as ECE 7340; cross-leveled with CMP_SC 4730, ECE 4730). Covers the design and development of intelligent machines, emphasizing topics related to sensor-based control of mobile robots. Includes mechanics and motor control, sensor characterization, reactive behaviors and control architectures. Prerequisites: programing experience in one of the following programming languages: Basic, C, C++, or Java.
  • Interdisciplinary Introduction to Natural Language Processing

    • CMP_SC 7740 | 3 Credit Hours
    • (same as LINGST 7740; cross-leveled with CMP_SC 4740; LINGST 4740). The goal of this course is to enable students to develop substantive NLP applications. Focus on current structural and statistical techniques for the parsing and interpretation of text.
  • Artificial Intelligence I

    • CMP_SC 7750 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4750). Introduction to the concepts and theories of intelligent systems. Various approaches to creating intelligent systems, including symbolic and computational approaches, insight into the philosophical debates important to understanding AI. Prerequisites: CMP_SC 3050.
  • Introduction to Computational Intelligence

    • CMP_SC 7770 | 3 Credit Hours
    • (same as ECE 7870; cross-leveled with CMP_SC 4770, ECE 4870). Introduction to the concepts, models and algorithms for the development of intelligent systems from the standpoint of the computational paradigms of neural networks, fuzzy set theory and fuzzy logic, evolutionary computation and swarm optimization.
  • Science and Engineering of the World Wide Web

    • CMP_SC 7830 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4830). This course will study the science and engineering of the World Wide Web. We will study the languages, protocols, services and tools that enable the web. Emphasis will be placed on basics and technologies. Prerequisites: CMP_SC 3330 and CMP_SC 2830.
  • Computer Networks I

    • CMP_SC 7850 | 3 Credit Hours
    • (cross-leveled with CMP_SC 4850). Introduction to concepts and terminology of data communications and computer networking. Basic protocols and standards, applications of networking, routing algorithms, congestion avoidance, long-haul and local networks. Prerequisites: CMP_SC 2270 or ECE 1210 and MATH 2320.
  • Advanced Topics in Computer Science

    • CMP_SC 8001 | 3 Credit Hours
    • Topic may vary from semester to semester. May be repeated upon consent of department. Prerequisites: varies by topic.
  • Design and Analysis of Algorithms II

    • CMP_SC 8050 | 3 Credit Hours
    • Techniques for the design and analysis of correct, efficient algorithms. Topics include graph, geometric, and algebraic/ numeric algorithms, NP-completeness, and parallel algorithms. Prerequisites: CMP_SC 4050.
  • Survey of Advanced Algorithm Techniques

    • CMP_SC 8060 | 3 Credit Hours
    • This class provides a survey of important algorithmic techniques, some of which are emerging right now, and show that they are much easier to understand than they first appear. The class will create a renewed appreciation for what makes Computer Science such a fun/interesting discipline. Prerequisites: CMP_SC 4050.
  • Problems in Computer Science

    • CMP_SC 8085 | 1 - 4 Credit Hours
    • Independent study project work with a professor in computer science. Prerequisites: instructor consent.
  • Computational Genomics

    • CMP_SC 8130 | 3 Credit Hours
    • (same as INFOINST 8310). This course introduces computational concepts and methods of genomics to students. The course covers genome structure, database, sequencing, assembly, annotation, gene and RNA finding, motif and repeats identification, single nucleotide polymorphism, and epigenomics. Graded on A-F basis only. Prerequisites: INFOINST 7010 or CMP_SC 7010.
  • Integrative Methods in Bioinformatics

    • CMP_SC 8150 | 3 Credit Hours
    • (same as INFOINST 8150), Introduces the most popular experimental methods from the point of view of the information sources that can be used. Students will use data obtained directly from biological experiments and learn how to suggest new experiments to improve results. Graded on A-F basis only. Prerequisites: INFOINST 7010 or CMP_SC 7010.
  • Computational Modeling of Molecular Structures

    • CMP_SC 8170 | 3 Credit Hours
    • This course uses a problem solving paradigm to investigate common principles, data structures, algorithms, challenges, and solutions in computationally modeling (constructing) 3D structures of proteins, RNAs, chromosomes, and genomes. Prerequisites: CMP_SC 7010.
  • Machine Learning Methods for Biomedical Informatics

    • CMP_SC 8180 | 3 Credit Hours
    • (same as INFOINST 8880). Teaches statistical machine learning methods and applications in biomedical informatics. Covers theories of advanced statistical machine learning methods and how to develop machine learning methods to solve biomedical problems. Graded on A-F basis only. Prerequisites: CMP_SC 7050 and INFOINST 7010 or CMP_SC 7010 or CMP_SC 7005.
  • Computational Systems Biology

    • CMP_SC 8190 | 3 Credit Hours
    • (same as INFOINST 8390). This course covers current theories and methods in the modeling and analysis of high-throughput experiments such as microarrays, proteomics, and metabolomics. Topics include the inference of causal relations from experimental data and reverse engineering of cellular systems. Graded on A-F basis only. Prerequisites: INFOINST 7010 or CMP_SC 7010; INFOINST 8010.
  • Data Mining and Knowledge Discovery

    • CMP_SC 8370 | 3 Credit Hours
    • Course topics include an introduction to fundamental concepts, data mining techniques from machine learning and pattern recognition areas, association rules, web mining, spatial mining, temporal mining, multimedia/multimodal database mining, and database mining, and geospatial information mining. Prerequisites: CMP_SC 7380.
  • Information Security: A Language-Based Approach

    • CMP_SC 8440 | 3 Credit Hours
    • This course focuses on language-based techniques for information flow security. Students will gain a solid background in information security, be encouraged to do further research and be exposed to important/promising trends in state-of-the-art computer security. Prerequisites: CMP_SC 4450 or CMP_SC 7450
  • Formal Engineering Methods for Software and Security

    • CMP_SC 8450 | 3 Credit Hours
    • Designing scalable exhaustive methods to ensure reliability of computer systems is an important challenge in computer science as even simple errors can have serious socio-economic-political consequences. This challenge is the focus of the field of automated verification techniques which draws techniques from complexity theory, automata theory, programming languages and logic, and provides tools to ensure that the computer systems are reliable. Computer-assisted techniques for verifying hardware implementations are regularly employed in the industry, and are also being increasingly adopted in the software industry as the costs of software bugs and security flaws escalate. The goals of this course are: (1) to provide students with a solid back- ground in the fundamental techniques used in this field, (2) to encourage further research in software and security verification, and (3) to introduce students to important upcoming trends in verifying security protocols. The students will get theoretical background as well as learn to use some standard tools in this field. Students will also explore topics of particular interest to them through the performance of a significant semester project. Prerequisites: CMP_SC 4450 or CMP_SC 7450 or CMP_SC 4430 or CMP_SC 7430 or instructor's consent. A reasonable level of mathematical maturity and significant programming experience is expected.
  • Computer Graphics II

    • CMP_SC 8610 | 3 Credit Hours
    • Further study of computer graphics, focused on 3-D graphics, transformations, geometric and surface modeling, color models, visible surface determination, lighting and shading, standard graphics software (Phigs/OpenGL). Selected current topics in graphics such as visualization, animation and realism. Prerequisites: CMP_SC 7610.
  • Physically Based Modeling and Animation II

    • CMP_SC 8620 | 3 Credit Hours
    • This course introduces students to physical based modeling and animation methodology for computer graphics and related fields such as computer vision, visualization, biomedical imaging and virtual reality. We will explore current research issues and will cover associated computational methods for simulating various visually interesting physical phenomena. This course should be appropriate for graduate students in all areas as well as advanced undergraduate students. Prerequisites: CMP_SC 4610 or CMP_SC 7610.
  • Data Visualization

    • CMP_SC 8630 | 3 Credit Hours
    • Data visualization broadly covers transforming multidimensional and timevarying datasets to dynamic visual representations and encodings that facilitate exploratory data mining, knowledge discovery, improved understanding, summarization, structural modeling, collaboration and decision making using interactive methods. Prerequisites: CMP_SC 4610 or CMP_SC 7610 or instructor's consent.
  • Multimedia Security

    • CMP_SC 8660 | 3 Credit Hours
    • This course offers a comprehensive coverage of the theoretical foundation of multimedia security technologies, including encryption, authentication, digital watermarking, key management, copy control, fingerprinting/tracing, digital media forensics, and biometrics, provides an in-depth study of the state-of-the-art digital rights management systems and the underlying security technologies. Graded on A-F basis only. Prerequisites: CMP_SC 4670 or CMP_SC 4650; instructor's consent.
  • 3-D Computer Vision

    • CMP_SC 8680 | 3 Credit Hours
    • This course introduces students to a central problem in computer vision - how to recover 3-D structure and motion from a collection of 2-D images, using techniques drawn mainly from linear algebra and matrix theory. The main focus is on developing a unified framework for studying the geometry of multiple images of a 3-D scene and reconstructing geometric models from those images. The course also covers relevant aspects of image formation, basic image processing, and feature extraction. Prerequisites: CMP_SC 4650 or CMP_SC 7650. Recommended: Good knowledge of C or C++ programming, linear algebra and data structures.
  • Computer Vision

    • CMP_SC 8690 | 3 Credit Hours
    • (same as ECE 8690). This course introduces students to the fundamental problems of computer vision, the main concepts and the techniques used to solve such problems. It will enable graduate and advanced undergraduate students to solve complex problems and make sense of the literature in the area. Graded on A-F basis only. Prerequisites: ECE 4655 or ECE 7655 or CMP_SC 4650 or CMP_SC 7650 or instructor's consent.
  • Supervised Learning

    • CMP_SC 8725 | 3 Credit Hours
    • (same as ECE 8725). This course introduces the theories and applications of advanced supervised machine learning methods. It covers hidden Markov model and expectation maximization (EM) algorithms, probabilistic graphical models, non-linear support vector machine and kernel methods. The course emphasizes both the theoretical underpinnings of the advanced supervised learning methods and their applications in the real world. Graded on A-F basis only. Prerequisites: CMP_SC 4720 or CMP_SC 7720 or ECE 4720 or ECE 7720 or instructor's consent.
  • Unsupervised Learning

    • CMP_SC 8735 | 3 Credit Hours
    • (same as ECE 8735). Theoretical and practical aspects of unsupervised learning including topics of expectation maximization (EM), mixture decomposition, clustering algorithms, cluster visualization, and cluster validity. Graded on A-F basis only. Prerequisites: CMP_SC 4720 or CMP_SC 7720 or ECE 4720 or ECE 7720 or instructor's consent.
  • Artificial Intelligence II

    • CMP_SC 8750 | 3 Credit Hours
    • Further discussion of theories and techniques of artificial intelligence. Investigating state-of-the-art systems with capabilities to perceive, reason, learn and react intelligently to their environment. Prerequisites: CMP_SC 4750 or CMP_SC 7750 or instructor's consent.
  • Advanced Topics in Computational Intelligence

    • CMP_SC 8780 | 3 Credit Hours
    • (same as ECE 8875). This course is a continuation of ECE 7870/CMP_SC 7770 Introduction to Computational Intelligence in the concepts, models, and algorithms for the development of intelligent systems from the standpoint of the computational paradigms of neural networks, fuzzy set theory and fuzzy logic, evolutionary computation, and swarm intelligence. Advanced topics in these areas will be discussed with a focus on applications of these technologies. Prerequisites: ECE 4870 or ECE 7870 or CMP_SC 4770 or CMP_SC 7770.
  • Filtering, Tracking and Data Fusion

    • CMP_SC 8790 | 3 Credit Hours
    • This course will cover theory and applications of rigorous and efficient techniques for determining the state of an observed system from a series of imperfect observations or measurements. Specific topics to be covered include semidefinite matrix theory, the Kalman filter, the Unscented Transform, Covariance Intersection and related techniques. Applications of these techniques include head and hand tracking in virtual reality systems, robotics, and distributed information fusion. Prerequisites: CMP_SC 2050, MATH 2300 or Linear Algebra or Matrix Theory.
  • Computer Networks II

    • CMP_SC 8850 | 3 Credit Hours
    • In-depth analysis and evaluation of computer networking architectures, protocols and algorithms, network security, distributed database and computational networks, routing and congestion control, domains and internetworking. Prerequisites: CMP_SC 7850.
  • Parallel and Distributed Processing

    • CMP_SC 8860 | 3 Credit Hours
    • This course covers basic issues of parallel and distributed processing, including parallel and distributed architectures and models, parallel programming, and parallel algorithms and applications. Prerequisites: CMP_SC 4050.
  • Research Masters Project in Computer Science

    • CMP_SC 8980 | 1 - 99 Credit Hours
    • Investigation and research of a topic, not leading to a thesis. Graded on S/U basis only. Prerequisites: departmental consent.
  • Research-Masters Thesis Computer Science

    • CMP_SC 8990 | 1 - 99 Credit Hours
    • Graded on S/U basis only. Prerequisites: advisor's consent.
  • Research-Doctoral Dissertation Computer Science

    • CMP_SC 9990 | 1 - 99 Credit Hours
    • Graded on S/U basis only. Prerequisites: advisor's consent.