Department of Mathematics and Computer Science Course Descriptions

UMSL Home

Department of Mathematics and Computer Science Home Page

Courses in this section are grouped as follows: Mathematics, Computer Science, and Probability and Statistics.

Students enrolling in introductory mathematics courses should check the prerequisites to determine if a satisfactory score on the Mathematics Placement Test is necessary. The dates on which this test is administered are given on the department’s website.

A minimum grade of C- is required to meet the prerequisite requirement for any course except with permission of the department.

Mathematics

MATH 0005 Intermediate Algebra (3)
Prerequisite: A satisfactory score on the university’s mathematics placement examination, obtained in the six months prior to enrollment in this course. Preparatory material for college level mathematics courses.  Covers systems of linear equations and inequalities, polynomials, rational expressions, exponents, quadratic equations, graphing linear and quadratic functions.  This course carries no credit toward any baccalaureate degree.

MATH 1020 Contemporary Mathematics (3) [MS]
Prerequisites: A satisfactory score on the university’s  mathematics placement examination, obtained in the six months prior to enrollment in this course a score of 22 or higher on the ACT Math sub-test, or a grade of C or better in a two or four year college intermediate algebra course. Presents methods of problem solving, centering on problems and questions which arise naturally in everyday life. May include aspects of algebra and geometry, the mathematics of finance, probability and statistics, exponential growth, and other topics chosen from traditional and contemporary mathematics which do not employ the calculus. May be taken to meet the mathematical proficiency requirement, but may not be used as a prerequisite for other mathematics courses. Designed for students who do not plan to take Calculus. Credit will not be granted for MATH 1020 if credit has been granted for MATH 1310, MATH 1800, MATH 1100, MATH 1102, or MATH 1105. Concurrent enrollment in MATH 1020 and any of these courses is not permitted.

MATH 1021 Choice and Chance (3)
Same as PHIL 1021. Prerequisites: A score of 22 or higher on the ACT Math sub-test; or a grade of C or better in a two-or four-year college intermediate algebra course; or a score of 22 or higher on the UMSL Math Placement Test, obtained in the six months prior to enrollment in this course. This course provides an introduction to inductive logic and the theory of probability. We will present the theory of probability in an organized and systematic way, so as to give students tools for more effective decision-making. We will introduce the probability calculus, basic concepts of utility theory, decision theory and different approaches to understanding probability. This course is designed to be accessible to students of all levels. Satisfies mathematics proficiency.

MATH 1030 College Algebra (3) [MS]
Prerequisites: A satisfactory score on the university's mathematics placement examination, obtained in the six months prior to enrollment in this course, a score of 22 or higher on the ACT Math sub-test, or a grade of C or better in a two or four year college intermediate algebra course. Topics in algebra and probability, polynomial functions, the binomial theorem, logarithms, exponentials, and solutions to systems of equations.

MATH 1035 Trigonometry (2) [MS]
Prerequisite: MATH 1030 or concurrent registration, or a satisfactory ACT Math score, or a satisfactory score on the university’s mathematics proficiency examination.  A study of the trigonometric and inverse trigonometric functions with emphasis on trigonometric identities and equations.

MATH 1100 Basic Calculus (3) [MS]
Prerequisite: MATH 1030, or a satisfactory ACT Math score, or a satisfactory score on the university's mathematics proficiency examination. Introduction to plane analytic geometry and basic differential and integral calculus with application to various areas. No credit for Mathematics majors. Credit not granted for both MATH 1800 and MATH 1100.

MATH 1102 Finite Mathematics (3)
Prerequisite: MATH 1030, or a satisfactory ACT Math score, or a satisfactory score on the university's proficiency examination. Introductory logic and set theory, partitions and counting problems, elementary probability theory, stochastic processes, Markov chains, vectors and matrices, linear programming, and game theory.

MATH 1105 Basic Probability and Statistics (3) [ MS]
Prerequisite: MATH 1030, or a satisfactory ACT Math score, or a satisfactory score on the university's mathematics proficiency examination. An introduction to probability and statistics. Topics include the concept of probability and its properties, descriptive statistics, discrete and continuous random variables, expected value, distribution functions, the central limit theorem, random sampling and sampling distributions. Credit not granted for more than one of MATH 1310, MATH 1320 and MATH 1105.

MATH 1150 Structure of Mathematical Systems I (3) [MS]
Prerequisites: 45 hours of college credit and one of the following: MATH 1030, a satisfactory ACT Math score, or a satisfactory score on the university's mathematics proficiency examination. A study of sets, relations, functions, whole numbers; the integers and their properties, and the rational and real number systems.

MATH 1320 Applied Statistics I (3)
Prerequisite:  MATH 1800 or MATH 1100 or equivalent.  See Statistics 1320 in Probability and Statistics section that follows.

MATH 1800 Analytic Geometry and Calculus I (5) [MS]
Prerequisites: MATH 1030 and MATH 1035, or a satisfactory ACT Math score along with a satisfactory score on the university's trigonometry examination, or a satisfactory score on both the university's mathematics proficiency examination and the university's trigonometry examination. This course provides an introduction to differential and integral calculus.  Topics include limits, derivatives, related rates, Newton’s method, the Mean-Value Theorem, Max-Min problems, the integral, the Fundamental Theorem of Integral Calculus, areas, volumes, and average values.

MATH 1900 Analytic Geometry and Calculus II (5)
Prerequisite: MATH 1800. Topics include conic sections, rotations of axes, polar coordinates, exponential and logarithmic functions, inverse (trigonometric) functions, integration techniques, applications of the integral (including mass, moments, arc length, and hydrostatic pressure), parametric equations, infinite series, power and Taylor series.

MATH 2000 Analytic Geometry and Calculus III (5)
Prerequisite: MATH 1900. Topics include vectors, cylindrical and spherical coordinates, vector-valued functions, arc length and curvature, functions of several variables, partial and directional derivatives, gradients, extrema, Lagrange multipliers, multiple integrals, change of variables, surface area, vector fields, Stokes’ Theorem.

MATH 2020 Introduction to Differential Equations (3)
Prerequisite: MATH 2000. Topics will be chosen from linear differential equations, equations with constant coefficients, Laplace transforms, power series solutions, systems of ordinary differential equations.

MATH 2450 Elementary Linear Algebra (3)
Prerequisite: MATH 1100 or MATH 1900. An introduction to linear algebra. Topics will include complex numbers, geometric vectors in two and three dimensions and their linear transformations, the algebra of matrices, determinants, solutions of systems of equations, eigenvalues and eigenvectors.

MATH 2510 Structure of Mathematical Systems II (3) [MS]
Prerequisite: MATH 1150. An introduction to probability and statistics. An intuitive study of elementary geometry. Introduction to the deductive theory of geometry and to coordinate geometry.

MATH 3000 Discrete Structures (3)
Prerequisites: MATH 1900 or 1100, and CMP SCI 1250 or equivalent. Treats fundamental ideas in discrete structures and serves as a foundation for subsequent course in both Mathematics and Computer Science. Provides an introduction to techniques of mathematical reasoning with examples derived from computer science. Topics include logic, set algebra, equivalence relations and partitions, functions, mathematical induction, elementary number theory, cardinality, recurrence relations, basic combinatorial methods, trees and graphs. Credit not granted for more than one of CMP SCI 3000 and MATH 3000.

MATH 3520 Structure of Mathematical Systems III (3) [MS]
Prerequisite:  MATH 2510.  Together with MATH 1150 and 2510, this course teaches mathematics necessary for middle school mathematics certification. Topics from MATH 1150 and 2510 are continued. Other topics include geometric constructions, similarity, coordinate geometry, normal distribution, combinatorics, and trigonometry. Credit will be granted only toward the B.S. in education degree in Early Childhood Education, Elementary Education, Middle School Education and Special Education.

MATH 4010 Financial Mathematics I (3)
Prerequisites: MATH 1900 or MATH 1100, and MATH 1320 or LOG OM 3300 (or equivalents). An introduction to the theory of interest, annuities (certain), annuities with differing pay periods, amortization schedules and sinking funds.

MATH 4020 Financial Mathematics II (3)
Prerequisites: Math 4010. Premium-discount formula for bonds, bond amortization, term structure of interest rates and pricing theory for options.

MATH 4030 Applied Mathematics I (3)
Prerequisites: MATH 2020 and MATH 2450. Topics chosen from Fourier series, special functions, partial differential equations, and boundary value problems.

MATH 4060 Applied Differential Equations (3)
Prerequisites: MATH 2020 and MATH 2450. The study of ordinary differential equations and partial differential equations is continued with applications in such areas as physics engineering and biology.

MATH 4100 Real Analysis I (3)
Prerequisites: MATH 2000 and MATH 3000. Introduction to real analysis in one variable. Topics include the real number system, limits, continuity, differentiability, and sequences and series of functions.

MATH 4110 Advanced Calculus (3)
Prerequisites: MATH 2000, MATH 2450 and MATH 3000. Multivariable analysis, inverse and implicit functions theorems, calculus on manifolds.

MATH 4160 Complex Analysis I (3)
Prerequisites: MATH 2020 or both MATH 3000 and MATH 2000. Complex numbers and their geometrical representation, point sets, analytic functions of a complex variable, complex integration, Taylor and Laurent series, residue theorem, conformal mapping.

MATH 4200 Mathematical Statistics I (3)
Prerequisites: MATH 1320 and MATH 2000. Introduction to the theory of probability and statistics using concepts and methods of calculus.

MATH 4210 Mathematical Statistics II (3)
Prerequisite: MATH 4200. Continuation of MATH 4200. Sampling distribution, estimation theory, properties of estimators, hypothesis testing, Neyman-Pearson Theorem, likelihood ratio tests, introduction of analysis of variance and linear models.  Basics of some nonparametric procedures.

MATH 4230 Numerical Analysis I (3)
Prerequisites: MATH 2020, MATH 2450, and ability to program in an upper-level language. Solutions of equations, interpolation and approximation, numerical differentiation and integration, and numerical solution of initial value problems in ordinary differential equations. Selected algorithms will be programmed for solution on computers.

MATH 4350 Theory of Numbers (3)
Prerequisites: MATH 3000 and MATH 2000 or consent of instructor. Properties of integers, multiplicative functions, congruences, primitive roots, and quadratic residues.

MATH 4400 Introduction to Abstract Algebra I (3)
Prerequisites: MATH 3000 and MATH 2000 or consent of the department. Introduction to groups, rings, and fields, with emphasis on groups and rings.

MATH 4450 Linear Algebra (3)
Prerequisites: MATH 3000, MATH 2000 and MATH 2450. Topics selected from vector spaces, bases, linear transformations, matrices, canonical forms, eigenvalues, hermitian and unitary matrices, inner product spaces, and quadratic forms.

MATH 4500 Special Readings (1-10)
Prerequisites: MATH 3000, MATH 2000 and consent of instructor.

MATH 4550 Combinatorics (3)
Prerequisites: MATH 3000 and MATH 2000. Advanced counting methods are introduced, including the use of generating functions for the solution of recurrences and difference equations. Additional topics may include: graphs and trees, combinatorial designs, combinatorial games, error-correcting codes, and finite-state machines.

MATH 4640 Introduction to Differential Geometry (3)
Prerequisites: MATH 3000 and MATH 2000. Geometry of curves and surfaces in Euclidean three-space. Calculus on a surface. Intrinsic geometry of surfaces.

MATH 4660 Foundations of Geometry (3)
Prerequisites: MATH 3000 and MATH 2000 or consent of department. A development of portions of Euclidean geometry from a selected set of axioms, including a discussion of consistency, independence, categoricity, and completeness of the axioms.

MATH 4670 Introduction to Non-Euclidean Geometry (3)
Prerequisitses: MATH 3000 and MATH 2000 or consent of the department. A summary of the history of the non- Euclidean geometries and a study of hyperbolic plane geometry.

MATH 4800 Introduction to Topology (3)
Prerequisites: MATH 3000 and MATH 2000 or consent of the department. A study of topological spaces, including the concepts of limit, continuity, connectedness, compactness, etc. Special emphasis placed on, and examples taken from, the space of real numbers.

MATH 4890 Topics in Mathematics (3)
Prerequisite: Consent of instructor. A seminar on special topics in mathematics to be determined by the interests of the instructor. May be repeated for credit provided different topics are studied.

MATH 5060 Computational Harmonic Analysis (3)
Prerequisites: MATH 4030, MATH 4100, and MATH 4450. The course covers the basic of Fourier analysis and wavelet analysis. Topics include Fourier transforms and series, discrete Fourier transform, discrete cosine transform ad their fast computational schemes, fast wavelet transform, and the lifting scheme. Additional topics include industrial standards for image compression and several aspects of signal processing.

MATH 5100 Real Analysis II (3)
Prerequisite: MATH 4100. Introduction to measure and integration . Topics include the Riemann-Stieltjes integral, Lebesgue measure, measurable functions, the Lebesgue integral, Radon-Nikodym and Fubini theorems and the basics of Lp-spaces.

MATH 5110 Differentiable Manifolds (3)
Prerequisites: MATH 4100, 4450, and MATH 4800. An introduction to smooth manifolds and maps. Topics will include the Implicit Function Theorem, Sard's Theorem, transversality, intersection and degree theory, differential forms and integration on manifolds.

MATH 5140 Set Theory and Metric Spaces (3)
Prerequisite: MATH 4100 or consent of instructor. Naïve set theory, cardinal arithmetic, ordinal numbers, the axiom of choice and equivalents, metric spaces, convergence, continuity, compactness, contraction principles and applications.  Construction of completions and examples like the real numbers and p-adic numbers.  Other topics could include the Stone-Weierstrass theorem and metrizability theorems.

MATH 5160 Complex Analysis II (3)
Prerequisites: MATH 4160, and either MATH 4100 or 4800. A second course in complex analysis, emphasizing the theory of analytic functions, and including various topics like the Riemann mapping theorem, normal families, analytic continuation, representations of analytic functions, and elliptic functions.

MATH 5320 Applied Statistics (3)
Prerequisite: MATH 4210 or consent of instructor. The course studies classical and recently developed statistical procedures selected from areas including analysis of variance, multivariate analysis, nonparametric or semiparametric methods and generalized linear models. Emphasis is on application of procedures, including the rationale underlying choice of procedures.

MATH 5500 Directed Readings (1-6)
Prerequisite: Consent of instructor. Independent readings at an advanced level.

MATH 5550 Topics in Advanced Mathematics for the Teacher (3)
Prerequisite: Consent of instructor. This course will look at various topics in algebra, analysis, and geometry that will deepen a teacher's understanding of the mathematics of the precollegiate curriculum. It can be taken more than once for credit.

MATH 5600 Topics in Computation (3)
Prerequisite: Consent of instructor. The course will cover various advanced topics in computation and can be taken more than once for credit. Examples of such topics are: computer graphics, computer architecture, theories of language, analysis of operating systems, numerical geometry and computer aided design, etc.

MATH 5700 Topics in Applied Mathematics (3)
Prerequisite: Consent of instructor.  This course will cover various advanced topics in applied mathematics, and can be taken more than once for credit.  Examples of such topics are: Fast transforms, digital filters, etc.

MATH 5710 Topics in Analysis (3)
Prerequisite: MATH 5100 or consent of instructor. Topics selected from the areas of Fourier analysis, harmonic analysis, functional analysis, special functions, generalized functions, and partial differential equations.  May be taken more than once for credit with consent of department.

MATH 5820 Topics in Algebra (3)
Prerequisite: Consent of instructor. Topics selected from the theory of groups, rings, fields, algebras, and other algebraic systems. May be taken more than once for credit with consent of department.

MATH 6080 Advances in Wavelet Analysis (3)
Prerequisite: MATH 5060. The course describes recent developments in several research areas connected with wavelet analysis. Included are frames, wavelet vectors, wavelet packets, wavelets on compact intervals and manifolds, adaptive (nonlinear) methods, and methods of computational physics. Applications include the sparsification of matrices, denoising and compression of signals.

MATH 6900 Master's Thesis (1-6)
Prerequisite: Consent of instructor. Thesis work under the supervision of a faculty member. The course is designed for those students intending to present a thesis as part of their M.A. program. Students who do not write a thesis cannot apply MATH 6900 to a degree.

MATH 7990 Ph.D. Dissertation Research (1-9)
Prerequisite: Completion of comprehensive exams. May be taken for no more than nine hours.

Computer Science

CMP SCI 1010 Introduction to Computers and the Internet (3)
Prerequisites: None. Covers basic concepts and components of a PC: survey of popular applications including e-mail, word processors, spreadsheets, overview of the Internet, popular browsers, World Wide Web, search engines, multimedia, web pages, security, and privacy. Credit not granted for both CMP SCI 1010 and INF SYS 1800.

CMP SCI 1011 Introduction to the Internet and World Wide Web (3)
Prerequisites: None. Intended for any student wishing to utilize the Internet and World Wide Web more effectively. Topics include networking basics, the Internet and World Wide Web, browsers, search engines, Web Services, utilities, tools, online privacy and security. Students will learn to develop a personal web page using skills acquired in the course.

CMP SCI 1012 Learning to Program Using Virtual Worlds (3)
Prerequisites: None. Introduces modern programming principles without requiring the knowledge of a traditional programming language. Instead, this course utilizes a novel graphical approach that enables the student to create, populate, and manipulate virtual 3-dimensional worlds which resemble video games. The development of these worlds allows students to gain direct experience and skills in using computers to solve problems. Students will create worlds of varying complexity.

CMP SCI 1250 Introduction to Computing (3)
Prerequisite: MATH 1030 with B- or better, or MATH 1100, or MATH 1800.  Provides an introduction to the concepts of computation, problem solving, and computer systems, Covers fundamental programming constructs, basic data types, and modularization using a modern high level language. Problem solving skills are developed through a progression of programming projects.

CMP SCI 2250 Programming and Data Structures (3)
Prerequisite: CMP SCI 1250. A continuation of CMP SCI 1250. Discusses properties and implementation of abstract data types such as lists, trees, stacks and queues. Introduces procedural and class abstraction, basic program architecture, use of interfaces, modular programming, and file processing.

CMP SCI 2261 Object-Oriented Programming (3)
Prerequisites: CMP SCI 2250. Introduces object-oriented concepts, terminology, and notation (UML) using Java. Covers encapsulation, classes, objects, inheritance, and the use of class libraries. Additional topics may include graphical user interfaces, applets, and related tools and technologies.

CMP SCI 2700 Computer Organization and Architecture (3)
Prerequisite: CMP SCI 2250. Introduces details of computer systems from architectural and organizational points of view. Covers data representation, basic digital logic circuits, memory types and hierarchies, I/O and storage devices, CPU architectures such as RISC, CISC, parallel, and multi-core.

CMP SCI 2750 System Programming and Tools (3)
Prerequisite: CMP SCI 2250. Covers systems programming, scripting, libraries, utilities, and development tools. Additional programming topics include piping, binary files, exception handling, command-line arguments and symbolic debugging. This course also explores tools available in the Unix/Linus environments.

CMP SCI 3010 Web Programming (3)
Prerequisite: CMP SCI 2250. Provides a survey of current Web technologies including markup languages (such as HTML/XHTML, CSS, XML), client side languages (such as JavaScript), server side languages (such as PERL, PHP), and Web protocols. This course requires client-server computing projects.

CMP SCI 3130 Design and Analysis of Algorithms (3)
Prerequisites: CMP SCI 2250, MATH 1320, MATH 2450, and MATH 3000. Addresses the design and analysis of fundamental algorithms in computer science. Studies basic sorting algorithms priority queues, order statistics, search trees, and hash tables. Analysis techniques may involve time and space complexity analysis of both iterative and recursive algorithms, analysis of algorithm correctness, and amortized complexity analysis. Additional topics may include data compression, string manipulation, greedy algorithms, dynamic programming, and graph traversal.   

CMP SCI 3710 Assembly Language Programming (3)
Prerequisites: CMP SCI 2700. Explore machine architecture concepts and principles through a study of assembly language programming. Topics covered include integer and floating point arithmetic, procedures, conditional processing, strings, macros, and interfaces to high level languages. Programming projects using a commercially available assembly language will be required.

CMP SCI 4010 Advanced Web Development with Java (3)
Prerequisites: CMP SCI 2261 and CMP SCI 3010, or consent of the instructor. Covers more advanced Java topics, along with related concepts and technologies for Web development. Topics may include database connectivity, multithreading, security, networking, MVC pattern, testing and source control for Java applications, and server-side topics such as servlets and web servers.

CMP SCI 4030 Introduction to Intelligent Web (3)
Prerequisites: CMP SCI 2261, CMP SCI 2750, CMP SCI 3010 and CMP SCI 3130. Covers the application of artificial intelligence and other modern techniques to help construct, navigate, and experience the Web. Topics may include retrieval models, classification, mining, association, topology, and indexing algorithms such as PageRank and HITS. Credit cannot be earned for both CMP SCI 4030 and CMP SCI 5030.

CMP SCI 4040 Electronic Commerce Protocols (3)
Prerequisites: CMP SCI 2750 and MATH 2450. Provides a technical introduction to electronic commerce over the Internet, examining topics such as electronic data interchange, digital currency, and electronic catalogs. The course discusses technical issues such as telecommunications infrastructure, data warehousing, software agents, and storage retrieval of multimedia information. Other topics may include cryptographic techniques as applicable to web-site development, management of data in a secure manner, authentication and confidentiality, different levels of security (transaction, network, and protocol), and digital signatures.

CMP SCI 4050 User Interface Development (3)
Prerequisite: CMP SCI 2750. Focuses on user interface design standards as a programming problem. It covers topics such as functional vs. aesthetic concerns, elegance and simplicity, interference between competing elements, visual variables, perceptual organization for visual structure, grid-based design of module and program, semiotics with images and representation.

CMP SCI 4140 Theory of Computation (3)
Prerequisite: CMP SCI 3130. Provides an introduction to the theory of computation. Describes basic computational models, such as finite state machines, pushdown automata. Turing machines and grammars. Covers the concept of nondeterministic computation and the relationships between different computational models. Discusses decidability, reducibility, and classification of problems into complexity classes based on their time and space complexity, such as P, NP, and PSPACE.

CMP SCI 4250 Programming Languages (3)
Prerequisite: CMP SCI 2261 and CMP SCI 3010. Studies the principles, approaches, and trade-offs in modern programming languages, including a comparative study of syntax, semantics, and pragmatics. Examines major programming paradigms: object-oriented, imperative, functional and logic.

CMP SCI 4280 Program Translation (3)
Prerequisites: CMP SCI 2700, CMP SCI 2750, and CMP SCI 4250. Focuses on methods, techniques, and mechanisms used to create the abstraction from high level programming to machine level execution. This course also requires an individual, semester long project.

CMP SCI 4300 Introduction to Artificial Intelligence (3)
Prerequisites: CMP SCI 2261, CMP SCI 2750 and CMP SCI 3130. Provides an introduction to artificial intelligence. The list of topics may include search, planning, knowledge-based reasoning, probabilistic inference, machine learning, natural language processing, and practical applications.

CMP SCI 4340 Introduction to Machine Learning (3)
Prerequisites: CMP SCI 2261, CMP SCI 2750 and CMP SCI 3130. Provides an introduction to machine learning in the context of applications such as data mining, natural language processing, and adaptive computer systems. The course reviews several supervised, unsupervised, and reinforcement machine learning techniques such as naive Bayes networks, clustering, and decision trees. Selected concepts in computational learning theory may also be covered. Credit cannot be granted for both CMP SCI 4340 and CMP SCI 5340.

CMP SCI 4410 Computer Graphics (3)
Prerequisites: CMP SCI 2750 and CMP SCI 3130. Covers the theoretical foundation and algorithms for computer graphics. Students learn the basics of graphics programming for modeling, rendering, and animation of 2D and3D objects. Vector and raster graphics, and different displays devices are also discussed. A brief discussion of special graphics hardware, such as GPU, may be presented.

CMP SCI 4420 Introduction to Digital Image Processing (3)
Prerequisites: CMP SCI 2750 and CMP SCI 3130. Focuses on image analysis and visual perception. Students learn data structures and algorithms for image processing, region and texture analysis, image filtering, edge detection, contour following, and image enhancement in both spatial and frequency domain. Other topics may include color processing, coding for storage, retrieval, transmission, and image restoration. Credit cannot be granted for both CMP SCI 4420 and CMP SCI 5420.

CMP SCI 4500 Introduction to Software Engineering (3)
Prerequisites: CMP SCI 2261, CMP SCI 2700, CMP SCI 2750, CMP SCI 3010, and CMP SCI 3130. Focuses on software development and on the skills required for success in the software profession. Topics related to software development may include software process, models and views, software architectures, documentation, and testing strategies. Topics related to the profession may include licensing, copyright, trademarks, and professional conduct. Individual and group projects, research, and presentations may be required in this capstone course.

CMP SCI 4520 Introduction to Object-Oriented Analysis and Design (3)
Prerequisites: CMP SCI 2261, CMP SCI 3010 and CMP SCI 3130.  Covers object-oriented development, illustrated with a visual modeling language and following an agile process. Discusses elements of analysis, requirements, design, implementation, and deployment such as use cases, static and dynamic diagrams, patterns, and frameworks. This course includes a semester long project starting with requirements and culminating with deployment. Credit not granted for both CMP SCI 4520 and CMP SCI 5520.

CMP SCI 4610 Database Management Systems (3)
Prerequisites: CMP SCI 2750 and MATH 3000. Focuses on database theory and applications, with emphasis on the relational model. Topics include database design, modeling, file systems, indexing, integrity constraints, relational algebra, normalization, transaction processing, and concurrency control. Students are exposed to emerging DBMS technologies and applications. Several programming projects will be required, using a popular SQL server.

CMP SCI 4730 Computer Networks and Communications (3)
Prerequisites: CMP SCI 2750 and MATH 1320. Covers communication systems in the context of the ISO and TCP/IP standards for systems interconnection. Covers various types of networks including wide area networks, local area networks, and fiber optic networks.  

CMP SCI 4760 Operating Systems (3)
Prerequisites:  CMP SCI 2700, CMP SCI 2750 and CMP SCI 3130. Covers the structure of a generic operating system, considering in detail the algorithms for interprocess communication, process scheduling, resource management, memory management, file systems, and device management. Presents examples from contemporary operating systems. This course also requires practical projects implemented within a modern operating system or simulator environment.

CMP SCI 4780 Computer and Network Security (3)
Prerequisites: CMP SCI 2750. Covers major issues relevant to providing security in a network   environment. This course includes algorithms and protocols for secure communications between computers.

CMP SCI 4880 Individual Studies (1-3)
Prerequisites: Consent of the instructor. This course allows a student to pursue individual studies under the supervision of a faculty member. It may include development of a software project. The course may be repeated for credit.

CMP SCI 4890 Topics in Computer Science (3)
Prerequisite: Consent of the instructor. Covers a special topic in computer science to be determined by recent developments in the field and the interests of the instructor. Course may be repeated for credit.

CMP SCI 5010 Enterprise Web Development(3)
Prerequisite: CMP SCI 4010 or consent of the instructor. Covers design and implementation issues for enterprise web development, and some popular advanced technologies. Topics include MVC and persistence frameworks, such as Spring and Hibernate. Other topics may include Java Web services, EJB, messaging standards such as JMS, and Java EE design patterns. Students will develop enterprise-level web application projects using the technologies covered in this course.

CMP SCI 5030 Intelligent Web (3)
Prerequisites: Consent of the instructor. Covers the application of artificial intelligence and other modern techniques to help construct, navigate, and experience the Web. Topics may include retrieval models, classification, mining, association, topology, and indexing algorithms such as PageRank and HITS. Topics are the same as CMP SCI 4030 but material is covered at a greater depth and additional projects are required. Credit cannot be earned for both CMP SCI 4030 and CMP SCI 5030.

CMP SCI 5130 Advanced Data Structures and Algorithms (3)
Prerequisite: An elementary course in analysis of algorithms or consent of the instructor. This course covers analysis of time and space complexity of iterative and recursive algorithms along with performance bounds, design of data structures for efficient performance, sorting algorithms, probabilistic algorithms, divide and conquer strategies, various algorithms on graphs, and NP completeness.

CMP SCI 5320 Introduction to Evolutionary Computation (3)
Prerequisite: CMP SCI 4300 or consent of instructor. This course introduces the concepts of nature-inspired problem solving population dynamics, Darwinian selection, and inheritance. It discusses problems applicable to evolutionary algorithms, overviews the existing models and instances, and analyzes specific instances such as genetic algorithms and genetic programming.

CMP SCI 5340 Machine Learning (3)
Prerequisite: Consent of the instructor. Provides an introduction to machine learning in the context of applications such as data mining, natural language processing and adaptive computer systems. Reviews several supervised, unsupervised, and reinforcement machine learning techniques such as naive Bayes networks, clustering and decision trees. Selected concepts in computational learning theory may also be covered. Topics are the same as CMP SCI 4340 but material is covered at a greater depth and additional projects are required. Credit cannot be granted for both CMP SCI 4340 and CMP SCI 5340. 

CMP SCI 5420 Digital Image Processing (3)
Prerequisites: Consent of the instructor. Covers topics in image analysis and visual perception. Students learn data structures and algorithms for image processing, region and texture analysis, image filtering, edge detection, contour following, and image enhancement in both spatial and frequency domain. Other topics may include color processing, coding for storage, retrieval, transmission, and image restoration. Topics are the same as CMP SCI 4420 but material is covered at a greater depth and additional projects are required. Credit cannot be granted for both CMP SCI 4420 and CMP SCI 5420.

CMP SCI 5500 Software Engineering (3)
Prerequisites: Consent of the instructor. Introduces software engineering as a discipline, discusses stages of the software life cycle, compares development models such as waterfall, prototyping and incremental/iterative, covers requirements analysis, effort and cost estimation, compares structured and object-oriented analysis and design methods, Discusses verification/validation, quality assurance, software reliability, testing methods, maintenance, documentation, project management and team structure, metrics, and available tools.

CMP SCI 5520 Object Oriented Analysis and Design (3)
Prerequisites: Consent of the instructor. Covers object-oriented development, illustrated with visual modeling language and following an agile process. Discusses elements of analysis, requirements, design, implementation, and deployment such as use cases, static and dynamic diagrams, patterns and frameworks. A semester long project, starting with requirements and culminating with deployment is required. Topics are the same as CMP SCI 4520 but material covered at a greater depth and additional projects are required. Credit not granted for both CMP SCI 4520 and CMP SCI 5520.

CMP SCI 5700 Computer Systems (3)
Prerequisite: Background in computer organization or architecture or consent of instructor. This course focuses on parallel computing architectures, including RISC, pipelining, vector processing, SIMD, MIMD, and array processing. It introduces different memory and I/O subsystems, hardware description languages, and it demonstrates performance enhancement using different architectures studied.

CMP SCI 5740 High Performance Computing (3)

Prerequisites: Consent of the instructor.  Introduces algorithms for multiprocessor and multicore architectures. Students learn the models of modern parallel computation and techniques to take advantage of parallel architectures for distributed and shared memory multi-processor architectures.

CMP SCI 5880 Computer Science Independent Project (1-3)
Prerequisites: Graduate standing and consent of instructor. This course offers the student an opportunity to work on an adviser-supervised project, individually or in a group. A student may repeat the course for up to 6 credit hours total, but at most 6 hours can be accumulated for CMP SCI 5880 and CMP SCI 6900.

CMP SCI 5890 Topics in Computer Science (1-3)
Prerequisites: Graduate standing and consent of instructor. This course offers various topics not offered on a regular basis. It may be taken more than once for credit with the consent of the department.

CMP SCI 6320 Advances in Evolutionary Computation (3)
Prerequisite: CMP SCI 5320 or consent of instructor. This course focuses on some advanced topics in Genetic and Evolutionary Computation, both theoretical and practical.  Topics may include competent genetic algorithms, learning classifier systems, and Markov models.  A substantial part of the course will be based on recent literature.  Projects may involve literature research, developing specific applications or implementing a specific model.

CMP SCI 6340 Genetic Programming (3)
Prerequisite: CMP SCI 5320 or consent of instructor.  This course provides an in-depth exploration of Genetic Programming, including advanced concepts such as scalability, evolution of modularity and regularity, and constrained evolution with CGP, STGP, or CFG-based GP. It may be reading, research, or application oriented.

CMP SCI 6410 Topics in Computer Graphics (3)
Prerequisite: CMP SCI 4410 or consent of instructor.  This course covers various aspects of advanced graphics techniques, such as geometric modeling, rendering, shading, texturing, and computer animation.  The course provides an in-depth study of recent advanced topics in computer graphics.

CMP SCI 6420 Topics in Image Processing and Multimedia (3)
Prerequisites: CMP SCI 5400, CMP SCI 5420 or consent of instructor. This course covers new developments in digital image processing, computer vision, and multimedia.  Topics to be covered may include image databases, object tracking, and large-scale data visualization.

CMP SCI 6740 High Performance Computing (3)
Prerequisites: CMP SCI 5740, or Graduate standing and consent of instructor. Looks at the current state of the art in parallel and distributed computing, with emphasis on programming in such environments. Introduction to the state of the art in code optimization and grid computing environments.

CMP SCI 6900 Thesis (1-6)
Prerequisites: Completion of at least 12 graduate credits and approval of research topic by thesis adviser. This course is designed for those students intending to present a thesis as part of their M.S. program. At most 6 hours can be accumulated for CMP SCI 5880 and CMP SCI 6900.

Probability and Statistics

MATH 1310 Elementary Statistical Methods (3)
Prerequisite: MATH 1030, or a satisfactory ACT Math score, or a satisfactory score on the university’s mathematics proficiency exam.  An introduction to the basic ideas and tools of statistics. Introductory data analysis, statistical modeling, probability and statistical inference. Includes topics in estimation, prediction, and hypothesis testing. A major focus of the course in the analysis of data using a computer software package such as SAS. A student may not receive credit for more than one of MATH 1310, MATH 1320, and MATH 1105.

MATH 1320 Applied Statistics I (3)
Prerequisite: MATH 1800 or MATH 1100 or equivalent. This is the first course of a one-year sequence in introductory probability and statistics.  It provides a comprehensive introduction to those models and methods which are most likely to be encountered by students in their careers in applied mathematics and the sciences.  Topics include descriptive statistics, basics of probability theory, random variables and their distributions, sampling distributions, confidence intervals, and hypothesis testing for population means and population proportions.  A student may not receive credit for more than one of MATH 1320, MATH 1310 and MATH 1105.

MATH 4200 Mathematical Statistics I (3)
Prerequisites: MATH 1320 and MATH 2000. Introduction to theory of probability and statistics using concepts and methods of calculus.

MATH 4210 Mathematical Statistics II (3)
Prerequisite:  MATH 4200. Continuation of Statistics 4200.  Sampling distributions, estimation  theory, properties of estimators, hypothesis testing, Neyman-Pearson Theorem, likelihood ratio tests, introduction of analysis of variance and linear models.  Basics of some nonparametric procedures.

MATH 4260 Introduction to Stochastic Processes (3)
Prerequisite: MATH 4200. Basic theory and applications of stochastic processes. Markov chains, martingales, recurrent and transient states, stationary distributions, ergodic theorem, renewal processes, discrete martingales and stationary processes.

MATH 4300 Multivariate Analysis (3)
Prerequisites: MATH 2450 and MATH 4200, or consent of instructor. Multivariate normal distribution and related sampling distributions. Procedures of statistical inference for the multivariate normal distributions, such as hypothesis testing, parameter estimations, multivariate regression, classification and discriminant analysis and principal components analysis.

MATH 4310 Analysis of Variance and Design of Experiments (3)
Prerequisites: MATH 2450 and MATH 4200 or consent of instructor.  An introduction to the analysis of variance with applications in completely randomized designs, randomized block designs, factorial experiments and split-plot type designs.

MATH 4320 Regression Models in Statistics (3)
Prerequisite: MATH 2320 or consent of instructor. A rigorous course focused on the applications of regression. The course is rigorous in that the basic regression models in one and several variables are carefully developed using matrix notation. Topics such as the extra sums of squares principle, the general linear hypothesis, and partial and sequential F-tests are carefully presented. The course will focus on using these tools to analyze many different data sets.

MATH 4330 Nonparametric Methods in Statistics (3)
Prerequisite: MATH 4200 or consent of instructor. An introduction to nonparametric statistical procedures. Order statistics, rank order statistics and scores, tests of goodness of fit, linear rank tests for the location and scale problems and applications.

MATH 4390 Topics in Probability and Statistics (3)
Prerequisite: Consent of instructor. A seminar on special topics in probability and statistics to be determined by the interests of the instructor. May be determined by the interests of the instructor. May be repeated for credit provided different topics are studied.