Department of Mathematics and Computer Science Course Descriptions

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 in the Schedule of Courses.

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

Students who have earned 24 or more semester hours of credit at any accredited post-secondary institution(s) before the start of the fall 2002 semester must meet the general education requirements stipulated in the UMSL 2001-2002 Bulletin.  The following courses fulfill the Natural Sciences and Mathematics breadth of study requirements as described in that Bulletin:

MATHEMATICS:  1020, 1030, 1035, 1100, 1102, 1105, *1150, 1800, 1900, 2000, 2020, 2450, *2510, 3000, **3520, 4030, 4060, 4100, 4110, 4160, 4230, 4240, 4270, 4350, 4400, 4450, 4500, 4550, 4580, 4620, 4640, 4660, 4670, 4800 4890.

COMPUTER SCIENCE:  1010, 1250, 2010, 2210, 2250, 2260, 2700, 2710, 2750, 3000, 3130, 4010, 4020, 4040, 4050, 4140, 4250, 4280, 4300, 4410, 4440, 4500, 4520, 4540, 4610, 4620, 4730, 4740, 4760, 4780, 4880, 4890.

PROBABILITY AND STATISTICS: 1310, 1320, 2320, 4200, 4210, 4260, 4300, 4310, 4320, 4330, 4390.

*Mathematics 1150 and 2510 fulfill this requirement only for students seeking the B.S. in Education degree in Early Childhood Education, Elementary Education, Special Education, or Middle School Mathematics.

**Mathematics 3250 fulfills this requirement only for students seeking the B.S. in Education degree in Middle School Mathematics.

Mathematics

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 towards any baccalaureate degree.

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.  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, 1100, 1102, or 1105. Concurrent enrollment in MATH 1020 and any of these courses is not permitted.

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.  Topics in algebra and probability, polynomial functions, the binomial theorem, logarithms, exponentials, and solutions to systems of equations.

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.

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 1100.

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.

1105 Basic Probability and Statistics (3) [ MS]
Prerequisites: 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.

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.

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

1800 Analytic Geometry and Calculus I (5) [MS]
Prerequisites: MATH 1030 and 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.

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.

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.

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.

2450 Elementary Linear Algebra (3)
Prerequisites: MATH 1100 or 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.

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.

3000 Discrete Structures (3)
Prerequisite: MATH 1900 or 1100, and CMP SCI 1250 or equivalent. Same as CMP SCI 3000. 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 2250 and MATH 3000.

3520 Strucure 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.

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

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

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

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

4160 Complex Analysis I (3)
Prerequisite: MATH 2020 or both CMP SCI/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.

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.

4210 Mathematical Statistics II (3)
Prerequisites: 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.

4230 Numerical Analysis I (3)
Prerequisites: MATH 2020, 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.

4240 Numerical Analysis II (3)

Prerequisite: MATH 4230 or consent of instructor. Topics chosen from: the numerical solution of systems of linear  equations; the eigenvalue/eigenvector problem; numerical solution of Partial Differential Equations (PDE); numerical solution of stiff Ordinary Differential Equations (ODE); boundary value problems; sparse matrix methods; approximation theory; optimization theory; digital filters; integral equations.

4270 The Calculus of Variations (3)
Prerequisites: MATH 2020 and 4100. Methods for optimizing functionals and their application. The Euler-Lagrange condition. Hamilton's principle, two dimensional variational problems, and isoperimetric problems. Approximate methods for the solution of variational problems.

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

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

4450 Linear Algebra (3)
Prerequisites: CMP SCI/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.

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

4550 Combinatorics (3)
Prerequisite: CMP SCI/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.

4580 Mathematical Logic (3)
Prerequisite: CMP SCI/MATH 3000 and MATH 2000 or PHIL 4460. A study of the logic of mathematics by the axiomatic method, with a development of the propositional calculus and restricted predicate calculus emphasizing its application to the foundations of mathematics.

4620 Projective Geometry (3)
Prerequisites: CMP SCI/MATH 3000, MATH 2000 and MATH 2450. Analytic approach to the study of projective spaces. Theorems of Desargues, Pascal, and Brianchon. Projective properties of conics.

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

4660 Foundations of Geometry (3)
Prerequisite: CMP SCI/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.

4670 Introduction to Non-Euclidean Geometry (3)
Prerequisite: CMP SCI/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.

4800 Introduction to Topology (3)
Prerequisite: CMP SCI/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.

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.

5010 Theory of Ordinary Differential Equations (3)
Prerequisite: MATH 4100.  A theoretical treatment of ordinary differential equations including the existence and uniqueness of solutions of differential equations and systems of differential equations. The course treats such topics as systems of linear differential equations, eigenvalue problems, autonomous systems, and boundary value problems.

5020 Classical Applied Mathematics (3)
Prerequisites: MATH 4100, 4160, and 4450 or consent of instructor. The course gives the deriviation of equations of mathematical physics such as Navier-Stokes' equations, Euler's equations, equations of elastic materials, and equations of electrodynamics, using scaling and conservation principles. The course also includes elements of the calculus of variations, the Euler-Lagrange equations and Hamiltonian theory.

5040 Calculus of Variations (3)

Prerequisites: MATH 2020, 4100 and 4450. Classical functionals, minimization of functionals, Euler-Lagrange equations, appropriate function spaces, weak solutions, existence of solutions, approximation theory, practical applications and finite element approach to solutions will be covered.

5050 Computational Curves and Surfaces (3)
Prerequisite: MATH 4100, 4230 and 4450, or consent of instructor. Construction of curves and surfaces using subdivision algorithms. Iterative refinement of discrete data in an easily programmable manner. Discussion of issues of convergence, shape control, relation to spline functions with uniform knots, multi resolution analysis, and wavelets.

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.

5100 Real Analysis II (3)
Prerequisites: 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.

5110 Differentiable Manifolds (3)
Prerequisites: MATH 4100, 4450, and 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.

5140 Set Theory and Metric Spaces (3)
Prerequisites: 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.

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.

5270 Numerical Linear Algebra (3)

Prerequisite: MATH 4230 and MATH 4450 or consent of the instructor. The course includes solution of general and special linear systems. Techniques include methods such as splitting or Krylov subspaces. Additional topics are the eigenvalue problem and the method of least squares.

5300 Partial Differential Equations (3)
Prerequisites: MATH 4100, 4160, 4450, and 4800. Classification of partial differential equations; Cauchy, Dirichlet, and Neumann problems; the fundamental solution; existence theorems of potential theory; eigenvalue problems; and Tricomi's problem.

5320 Applied Statistics (3)
Prerequisites: 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.

5350 Operations Research-Deterministic Models (3)

Prerequisites: MATH 4450 or equivalent. A study of deterministic methods and models in operations research. This course provides an introduction to operations research and focuses on model building, solution and interpretation of results. Topics include formulation, solution, duality and sensitivity analysis in linear programming, integer programming, network flow models, nonlinear optimization, and dynamic programming.

5360 Operations Research-Stochastic Models (3)
Prerequisites: MATH 4200 or equivalent.  A study of stochastic methods and models in operations research. Provides an introduction to probabilistic models for decision making under uncertainty. Topics include stochastic processes, queuing theory and models, probabilistic inventory theory and models, Markovian decision problems, simulation and reliability.

5420 Algebra (3)
Prerequisites: MATH 4400 and 4450. Basic fundamentals of the theory of groups, rings and fields.

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

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.

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.

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.

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.

5720 Topics in Numerical Analysis (3)
Prerequisite: Consent of instructor. The course will cover various advanced topics in numerical analysis and can be taken more than once for credit. Examples of such topics are: A.D.I. Techniques for solving p.d.e., finite element techniques, the algebraic eigenvalue problem, the software, etc.

5800 Topics in Topology (3)
Prerequisite: Consent of instructor. The course will cover topics selected from algebraic or differential topology and may be taken more than once for credit with the consent of the department.

5810 Topics in Number Theory (3)

Prerequisite: Consent of instructor. Topics selected from elementary, algebraic, analytic, and other branches of number theory. Examples of topics include the distribution of primes, the Riemann Zeta function, averages of arithmetic functions, the theory of partitions, ideal theory, and representations of integers by quadratic forms.

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.

6070 Time-Frequency Analysis (3)

Prerequisites: MATH 5060. The course covers theoretical and practical aspects of several time-frequency methods. Included are linear transformations such as filtering, Zak, Gabor and wavelet transforms; bilinear transformations include the Winger-Ville distribution and other distributions of Cohen's class. Statistical methods of feature extraction and applications to signal compression are outlined as well.

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.

6200 Probability Theory (3)

Prerequisite: MATH 5100 may be taken concurrently. Combinatorial analysis, random walks, stochastic independence, random variables, laws of large numbers, generating functions, and branching processes.

6440 Lie Groups (3)

Prerequisites: MATH 4400 and 5110. The course provides an introduction to Lie Groups, Lie Algebras, and their representations.

6600 Topics in Probability Theory (3)

Prerequisite: Consent of instructor. The course will cover advanced topics in probability theory and may be taken more than once for credit with the consent of the department.

6700 Functional Analysis (3)

Prerequisites: MATH 4450 and 5100. Algebraic and topological tools applied to problems in analysis. The topics chosen will usually include topological vector spaces, metric spaces, Banach spaces, Hilbert spaces, and Banach algebras.

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.

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

Computer Science

1010 Introduction to Computers and the Internet (3)
Prerequisites: Same as for MATH 1020 and MATH 1030. Covers basic concepts and components of a PC, including microprocessor, disk, display, multimedia, printers, scanners, backup; survey of popular applications including e-mail, personal information managers, word processors, spreadsheets; brief discussion of computer languages; networking, terminology, methods for accessing information on remote computers; dialup access to computers including use of modems; overview of the Internet, popular browsers, World Wide Web, search engines, FTP, utilities, Hyper Text Markup Language, tools for Web page construction, security, privacy. Credit not granted for both CMP SCI 1010 and BUS AD 1800.

1250 Introduction to Computing (3)
Prerequisite: MATH 1800 or 1100, or a grade of at least B in MATH 1030. An overview of a computer system is presented. Structured design techniques are considered and applied to the development of computer programs. Aspects of a high level language such as Pascal or C will be studied, including elementary and advanced data types and subprograms. Various features of the UNIX operating system will also be discussed.

2010 An Introduction to Java and Internet Programming (3)
Prerequisite: MATH 1030. Introduces the Java programming language and its use in Internet programming. This course will involve programming assignments in Java and their interface with browsers using applets. Students will also be exposed to the Java’s windows toolkit -- the AWT. A brief introduction to object-oriented programming concepts will be provided. Other topics will include threads, virtual machines, byte code, and the Java security model.

2250 Programming and Data Structures (3)
Prerequisite: CMP SCI 1250. A continuation of CMP SCI 1250. Advanced programming techniques including recursion, divide-and-conquer, and backtracking will be considered. A discussion of dynamic data structures such as lists, binary trees, stacks, queues, and symbol tables will be presented. An introduction to modular programming, program specification and verification, and analysis of algorithms will be given.

2260 Object Oriented Programming with C++ (3)
Prerequisite: CMP SCI 2250. Introduces object-oriented concepts, terminology, and notation. The C++ language is explored, including topics such as dynamic memory, exception handling, function and class templates, operator overloading, inheritance, polymorphism, and generic programming with the standard template library. Additional topics may include GUI libraries.

2700 Computer Systems: Architecture and Organization (3)
Prerequisite: CMP SCI 2250. Introduces details of computer systems from architectural and organizational points of view. Topics discussed may include data representation, digital logic and basic circuits such as ALU, multiplexers, decoders, flip-flops, registers, RAM and ROM memory, memory hierarchies, I/O devices, pipelining, parallel and RISC architectures, etc.

2710 Computer Systems: Programming (3)
Prerequisite: CMP SCI 2700. Continues introduction of computer systems, with assembly programming and its application. Topics covered may include addressing modes, stack manipulations and applications for reentrant and recursive modules, memory interfacing, I/O device interfacing, and serial and parallel communication.

2750 Advanced Programming with Unix (3)
Prerequisite: CMP SCI 2250. Exploration of the Unix operating system, including its tools and utilities for program development, such as makefile, piping and redirection, shell scripts, regular expressions, and symbolic debuggers. In addition, this course explores advanced features of the C programming language, including various file processing, command-line and variable arguments, exception handling and generic interfacing.

3000 Discrete Structures (3)
Prerequisites: MATH 1900 or 1100, and CMP SCI 1250 or equivalent.  Same as MATH 3000. 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, MATH 2250, and MATH 3000.

3010 Web Programming Techniques (3)
Prerequisites: CMP SCI 2750. A project-oriented course which provides a survey of current technologies including markup languages (XHTML, CSS, XML), scripting languages (Java Script), client/server computing CGI/PERL/PHP), applets, Web protocols, session tracking, and other topics as time permits.

3130 Design and Analysis of Algorithms (3)
Prerequisites: CMP SCI 2250, CMP SCI/MATH 3000, MATH 2450 and MATH 1320. Addresses the design and mathematical analysis of fundamental algorithms in computer science. Algorithms studied may involve search, sorting, data compression, string manipulation, graph traversal and decomposition, and algebraic and numeric manipulation.

4020 Java and Internet Programming (3)
Prerequisites: CMP SCI 3010 or consent of instructor. A project-oriented course which examines core Java features and selected Internet applications, such as networking, servlets, applets, AWT/SWING graphics, database connectivity, and XML.

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.

4050 User Interface Development (3)
Prerequisites: 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.

4140 Theory of Computation (3)
Prerequisites: CMP SCI 3130. Covers finite state machines and pushdown automata, and their relationship to regular and context-free languages. Also covers minimization of automata, Turing machines, and undecidability. Other topics may include Church's Thesis, uncomputability, computational complexity, propositional calculus and predicate calculus.

4250 Programming Languages (3)
Prerequisites: CMP SCI 2260. A study of the principles of modern programming languages. The students perform a comparative study of syntax, semantics, and pragmatics of high-level programming languages. Also provides a discussion of list-processing, object-oriented, functional, procedural, or other programming paradigms.

4280 Program Translation Techniques (3)
Prerequisites: CMP SCI 2700, CMP SCI/MATH 3000, CMP SCI 4250, and MATH 2450. Looks at the theory of programming languages as well as the theory of program translation as a means for dealing with the conceptual gap introduced by the levels of abstraction. Program translation mechanisms are studied as a means to explore the tradeoff between language expressiveness, translation, and execution effectiveness. Particular attention is paid to compilers, with emphasis on constraints induced by syntax and semantics.

4300 Introduction to Artificial Intelligence (3)
Prerequisites: CMP SCI 2260, CMP SCI 2750 and CMP SCI 3130. An overview of AI applications is presented. An AI programming language, such as Prolog or Lisp, is introduced. Fundamental AI problem solving techniques are applied to heuristic search and game playing. An introduction to knowledge representation and expert systems is given. Topics such as theorem proving, neural networks, and natural language processing may also be studied.

4410 Computer Graphics (3)
Prerequisites: CMP SCI 2260, CMP SCI 2750 and CMP SCI 3130. The basic architecture of various types of graphics systems is presented. Also presents a detailed description of the basic algorithms for 2-dimensional and 3-dimensional graphics systems. Algorithms for shading, hidden line removal, and rendering in the 3-D systems will be examined. The course involves significant project work.

4440 Digital Image Processing (3)
Prerequisites: CMP SCI 2260, CMP SCI 2750 and CMP SCI 3130. Focuses on low-level image processing data structures and algorithms for binary image processing, region and texture analysis, image filtering, edge detection, and contour following. Other topics include coding for storage, retrieval, transmission, and image restoration.

4500 Software Engineering (3)
Prerequisites: CMP SCI 2260 and CMP SCI 2750. Introduces software engineering as a discipline, discusses stages of software lifecycle, compares development models such as waterfall, prototyping and incremental/iterative, and compares structured and object-oriented methods. It also discusses software documentation, both internal and external verification/validation, quality assurance, testing methods, maintenance, project management and team structure, metrics, and available tools.

4520 Object-Oriented Analysis and Design (3)
Prerequisites: CMP SCI 4500. Concentrates on modeling using a visual language such as UML, in the context of a generic object-oriented development process. Discusses the object world, analysis/design goals as the driving development force, different system views, use cases, static and dynamic models, diagrams, modeling with patterns, and principles of responsibility assignments. The course may be supplemented with a CASE tool.

4540 Software System Architectures (3)

Concerned with the design, modeling, and evaluation of complex software systems at the architectural level of abstraction. Covers basic principles of architectural system design, and may cover topics such as multi-tiered and packaged architectures, model-view and model-service separation, design supports for distributed and client-server applications, design patterns, package interfaces, notation, persistence, and GUI frameworks.

4560 Software Development Processes (3)

Prerequisites: CMP SCI 4500 or CMP SCI 4520. This course is an in-depth study of software development processes, in the context of an actual project. Discussion includes object-oriented processes such as Rational Unified Process, as well as process management issues such as scheduling, risk-assessment, various metrics, and the selection of appropriate development methodology and tools.

4610 Database Management Systems (3)
Prerequisites: CMP SCI 2750 and CMP SCI 3130. Presents the foundations, concepts and principles of database design. Various models of data representation are considered, including the hierarchical and relational models. Also considers some of the implementation issues for database systems.

4620 Information Retrieval (3)
Prerequisites: CMP SCI 2750 and CMP SCI 3130. Presents deterministic models of information retrieval systems, including conventional Boolean, fuzzy set theory, p-norm, and vector space models. Other topics include probabilistic models, text analysis and automatic indexing, automatic query formulation, system-user adaptation and learning mechanisms, evaluation of retrieval, review of new theories and future directions, and intelligent information retrieval.

4730 Computer Networks and Communications (3)
Prerequisite: CMP SCI 2750 and MATH 1320. Communication systems will be considered in the context of the ISO standard for systems interconnection. Various types of networks will be studied including wide area networks, local area networks, and fiber optic networks.

4740 Client-Server Architectures (3)
Prerequisites: CMP SCI 2750 and MATH 2450. Studies communications systems in the context of the ISO standard for systems interconnection. There is hands-on exposure to development of client-server applications.

4760 Operating Systems (3)
Prerequisites: CMP SCI 2750, CMP SCI 2700, MATH 1320 and MATH 2450. Studies 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. Topics in security may also be examined. Examples from pertinent operating systems are presented throughout, and use of the algorithms in modern operating systems is examined. Substantial practical work, using the UNIX operating system is required.

4780 Systems Administration and Computer Security (3)
Prerequisites: CMP SCI 2750. Identifies and studies major issues of relevance to systems and networks management. Covers a wide range of topics from a basic primer on networking topics from the systems perspective to advanced technical issues of user authentication, encryption, and mail privacy. Discusses the latest advances in network management tools and computer security protocols.

4880 Individual Studies (1-3)
Prerequisites: CMP SCI 2750 and consent of instructor. Allows a student to pursue individual studies under the supervision of a faculty member. May include development of a software project. May be repeated for credit.

4890 Topics in Computer Science (3)
Prerequisite: Consent of instructor. A seminar on special topics in computer science to be determined by recent developments in the field and the interests of the instructor. May be repeated for credit with departmental consent.

5010 Advanced Java Programming (3)
Prerequisites: CMP SCI 4020 or consent of instructor.  Coverage will emphasize advanced Java topics and may include, J2EE, Beans/Enterprise Beans, RMI/RPC, JDBC, Servlets/JSP, development tools such as Ant, frameworks, such as Eclipse, and Java IDEs.

5130 Advanced Data Structures and Algorithms (3)
Prerequisites: 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.

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.

5340 Introduction to Machine Learning (3)

Prerequisite: CMP SCI 4300 or consent of instructor. This course introduces both symbolic and sub-symbolic approaches to machine intelligence. Specific topics covered may include data mining, supervised learning such as decision trees, and approximate methods such as fuzzy reasoning.

5360 Expert Systems (3)
Prerequisites: CMP SCI 4300 or consent of instructor. This course concentrates on issues related to building expert systems mimicking human-level expertise, including knowledge engineering processes leading to the design, construction, and evaluation of systems, relevant languages, tools, and shells, as well as representation, quality, and inference methods.

5380 Introduction to Neural Networks (3)
Prerequisites: CMP SCI 4300 or consent of instructor. This course introduces the concepts of connectionism, along with algorithms for simulating neural networks, discussion of alternative networks architectures and training algorithms.

5400 Computer Vision (3)
Prerequisites: Graduate standing and consent of instructor. This course introduces computational models of visual perception and their implementation on computer systems. Topics include early visual processing, edge detection, segmentation, intrinsic images, image modeling, representation of visual knowledge, and image understanding.

5420 Visual Data Processing (3)
Prerequisites: Graduate standing and consent of instructor. This course introduces low-level concepts and techniques used in image processing, including methods for image capture, transformation, enhancement, restoration, and encoding.

5440 Pattern Recognition (3)
Prerequisites: Graduate standing and consent of instructor. This course provides an introduction to statistical decision theory, adaptive classifiers, and supervised and unsupervised learning. Different types of pattern recognition systems are introduced, including transducers, feature extractor, and decision units. Students are exposed to the application of the techniques to optical character recognition, speech processing, and remote sensing.

5500 Software Engineering (3)
Prerequisites: Graduate standing and consent of the instructor. This course 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.  It also discusses verification/validation, quality assurance, software reliability, testing methods, maintenance, documentation, project management and team structure, metrics, and available tools. Credit not granted for both CMP SCI 4500 and CMP SCI 5500.

5520 Object Oriented Analysis and Design (3)
Prerequisites: CMP SCI 4500, CMP SCI 5500, or consent of the instructor. This course concentrates on modeling using a visual language such as UML, in the context of a generic object-oriented development process. It introduces the object world, analysis/design goals as the driving development force, different system views, use cases, static and dynamic models, diagrams, modeling and patterns, and principles of responsibility assignments. The course may be supplemented with a CASE tool. Topics are the same as CMP SCI 4520 but material is covered at a greater depth and additional projects are required. Credit not granted for both CMP SCI 4520 and CMP SCI 5520.

5540 Software Systems Architectures (3)

Prerequisites: One of the following: CMP SCI 4500, CMP SCI 5500, CMP SCI 4520, CMP SCI 5520, or consent of the instructor. This course is concerned with the design, modeling, and evaluation of complex software systems at the architectural level of abstraction. It covers basic principles of architectural system design, and may cover topics such as multi-tiered and packaged architectures, model-view and model-service separation, design support for distributed and client-server applications, design patterns, package interfaces, notation, persistence and GUI frameworks. Topics are the same as CMP SCI 4540 but material is covered at a greater depth and additional projects are required. Credit not granted for both CMP SCI 4540 and CMP SCI 5540).

5560 Software Development Processes (3)

Prerequisites: One of the following: CMP SCI 4500, CMP SCI 5500, CMP SCI 4520, CMP SCI 5520, or consent of the instructor. This course is an in-depth study of software development processes, in the context of an actual project. Discussion will include object-oriented processes such as the Rational Unified Process, as well as process management issues such as scheduling, risk-assessment, various metrics, and the selection of appropriate development methodology and tools. Topics are the same as CMP SCI 4560 but material is covered at a greater depth and additional projects are required. Credit not granted for both CMP SCI 4560 and CMP SCI 5560.

5610 Advanced Databases (3)

Prerequisites: Graduate standing and consent of instructor. This course is an in-depth study of database techniques, including normalization theory, object-oriented databases, statistical databases, distributed databases, and failure recovery. The course will also involve substantial readings from the current literature.

5620 Intelligent Information Retrieval (3)

Prerequisites: CMP SCI 4300 or consent of instructor. This course studies the use of AI techniques for the development of adaptive information retrieval systems. Techniques for analysis of information by statistical syntactical, and logical methods are also studied. Topics related to multimedia information are also discussed.

5640 Multimedia Information Systems (3)
Prerequisites: CMP SCI 4410 or CMP SCI 5400. This course studies the technical and human issues related to the design, construction, and use of computer programs that combine text, audio, video, graphics, animation, and graphical user interfaces. It also surveys applications and tools.

5700 Computer Systems (3)
Prerequisites: 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.

5730 Client/Server Computing (3)

Prerequisite: CMP SCI 4770 or MSIS 6836. The course will study communications systems in the context of ISO standards for systems interconnection. There will be hands on exposure to development of client-server applications.

5740 Parallel and Distributed Computing (3)

Prerequisites: Background in computer organization or architecture, or consent of instructor. This course introduces the fundamentals of parallel computation and algorithm design. It discusses general techniques for designing efficient parallel algorithms for fixed-connection parallel network architectures such as arrays, trees, and hypercubes.

5760 Advanced Operating Systems and Network Management (3)
Prerequisites: CMP SCI 4760 or consent of instructor. This course provides a survey of contemporary operating systems principles, including overall design strategies for operating systems. The course also discusses communication and synchronization techniques for concurrent processes, and statistical analysis of job scheduling, process scheduling, I/O scheduling, and memory management.

5780 Systems Administration (3)
Prerequisite: CMP SCI 4760 or 4770 and MSIS 6838. The course will identify and study major issues of relevance to systems and networks management. It covers a wide range of topics from a basic primer on networking topics from the systems perspective to advanced technical issues of user authentication, encryption, and mail privacy. The course will discuss the latest advances in network management tools and computer security protocols.

5870 Computer Science Seminar (1-3)
Prerequisites: Graduate standing and consent of instructor. This is a seminar on various topics. Substantial student reading and participation is expected. It may be taken more than once for credit with the consent of the department.

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.

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.

6320 Advances in Evolutionary Computation (3)
Prerequisites: 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.

6340 Genetic Programming (3)
Prerequisites: 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.

6410 Topics in Computer Graphics (3)
Prerequisites: 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.

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.

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.

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

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.

1320 Applied Statistics I (3)
Prerequisite: MATH 1800 or 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.

2320 Applied Statistics II (3)
Prerequisite: MATH 1320, or equivalent. This course is a continuation of MATH 1320.  It provides a survey of a variety of important statistical methods which are useful in analyzing data.  Topics include single and multi-factor analysis of variance, simple and multiple linear regression, analysis of categorical data, and non-parametric statistical methods.

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

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.

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.

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.

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.

4320 Regression Models in Statistics (3)
Prerequisites: 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.

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.

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.