- CSC 241 INTRODUCTION TO COMPUTER SCIENCE I
- CSC 242 INTRODUCTION TO COMPUTER SCIENCE II
- CSC 300 DATA STRUCTURES IN JAVA I
- CSC 301 DATA STRUCTURES IN JAVA II
- CSC 321 DESIGN AND ANALYSIS OF ALGORITHMS
- CSC 373 COMPUTER SYSTEMS I
- CSC 374 COMPUTER SYSTEMS II
- CSC 394 SOFTWARE PROJECTS (Capstone)

or GPH 395 COMPUTER GRAPHICS SENIOR PROJECT (Capstone)

or MAT 398 SENIOR CAPSTONE SEMINAR (Capstone) - MAT 140 DISCRETE MATHEMATICS I
- MAT 141 DISCRETE MATHEMATICS II
- One of the following three-course sequences:
- Calculus Sequence (option 1)
- MAT 147 CALCULUS WITH INTEGRATED PRECALCULUS I
- MAT 148 CALCULUS WITH INTEGRATED PRECALCULUS II
- MAT 149 CALCULUS WITH INTEGRATED PRECALCULUS III
- Calculus Sequence (option 2)
- Calculus for Mathematics and Science Majors Sequence (option 3)
- MAT 160 CALCULUS FOR MATHEMATICS AND SCIENCE MAJORS I
- MAT 161 CALCULUS FOR MATHEMATICS AND SCIENCE MAJORS II
- MAT 162 CALCULUS FOR MATHEMATICS AND SCIENCE MAJORS III
- Calculus with Scientific Applications Sequence (option 4)
- MAT 260 MULTIVARIABLE CALCULUS I
- MAT 262 LINEAR ALGEBRA
- 3 CDM Major Electives
- 3 MAT Major Electives
- 1 CDM or MAT Major Elective

Students must take 7 Major Field electives chosen from the grouped list below. Of these, 3 must be CDM courses and 3 must be MAT courses, and 1 could be either a CDM or MAT course.

Students must earn a grade of C- or higher in all major elective courses.

It is recommended that students concentrate on one or two areas for their advanced classes to achieve depth, but they are not required to do so. Students are strongly encouraged to discuss course selection with an advisor. Students may wish to arrange with a professor to take an independent study or a research experience (MAT 399 or CSC 399 or IT 300) in order to explore a subject more deeply than is possible in a scheduled course.

The courses in the theory area explore the mathematical and logical foundations of computer science.

- MAT 302 COMBINATORICS
- MAT 303 THEORY OF NUMBERS
- MAT 351 PROBABILITY AND STATISTICS I
- MAT 310 ABSTRACT ALGEBRA I
- MAT 311 ABSTRACT ALGEBRA II
- MAT 312 ABSTRACT ALGEBRA III
- MAT 335 REAL ANALYSIS I
- MAT 372 LOGIC AND SET THEORY
- CSC 235 PROBLEM SOLVING
- CSC 327 PROBLEM SOLVING FOR CONTESTS
- CSC 333 CRYPTOLOGY
- CSC 344 AUTOMATA THEORY AND FORMAL GRAMMARS
- CSC 347 CONCEPTS OF PROGRAMMING LANGUAGES
- CSC 348 INTRODUCTION TO COMPILER DESIGN
- CSC 358 SYMBOLIC PROGRAMMING
- CSC 387 OPERATIONS RESEARCH I: LINEAR PROGRAMMING

or MAT 387 OPERATIONS RESEARCH I:LINEAR PROGRAMMING - CSC 389 THEORY OF COMPUTATION

The computational methods area investigates quantitative and computational methods in computer science

- CSC 331 SCIENTIFIC COMPUTING
- MAT 385 NUMERICAL ANALYSIS I
- MAT 386 NUMERICAL ANALYSIS II
- MAT 330 METHODS OF COMPUTATION AND THEORETICAL PHYSICS I
- MAT 331 METHODS OF COMPUTATION AND THEORETICAL PHYSICS II
- MAT 384 MATHEMATICAL MODELING

For students with an interest in the computational relations between syntax and semantics.

For students who are interested in statistical and computational analysis of data. Many of the courses in this area require the student to take MAT 351-353.

- CSC 328 DATA ANALYSIS FOR EXPERIMENTERS
- CSC 334 ADVANCED DATA ANALYSIS

or MAT 354 MULTIVARIATE STATISTICS - CSC 367 INTRODUCTION TO DATA MINING
- MAT 261 MULTIVARIABLE CALCULUS II
- MAT 351 PROBABILITY AND STATISTICS I
- MAT 352 PROBABILITY AND STATISTICS II
- MAT 353 PROBABILITY AND STATISTICS III
- MAT 355 STOCHASTIC PROCESSES
- MAT 357 NONPARAMETRIC STATISTICS
- MAT 370 ADVANCED LINEAR ALGEBRA
- MAT 356 APPLIED REGRESSION ANALYSIS
- MAT 358 APPLIED TIME SERIES AND FORECASTING
- MAT 359 SIMULATION MODELS AND MONTE CARLO METHOD

The graphics courses are intended for students who want to study the technical and mathematical foundations of computer graphics and animation.

- MAT 337 COMPLEX ANALYSIS
- MAT 261 MULTIVARIABLE CALCULUS II
- MAT 385 NUMERICAL ANALYSIS I
- GPH 211 PERCEPTUAL PRINCIPLES FOR DIGITAL ENVIRONMENTS I
- GPH 212 PERCEPTUAL PRINCIPLES FOR DIGITAL ENVIRONMENTS II
- GPH 325 SURVEY OF COMPUTER GRAPHICS
- GPH 329 COMPUTER GRAPHICS DEVELOPMENT II
- GPH 336 SMOOTH SURFACE MODELING FOR GRAPHICS AND ANIMATION
- GPH 372 PRINCIPLES OF COMPUTER ANIMATION

Computer vision studies the mathematical and algorithmic underpinnings of image analysis and image processing.

- MAT 261 MULTIVARIABLE CALCULUS II
- MAT 335 REAL ANALYSIS I
- MAT 385 NUMERICAL ANALYSIS I
- MAT 370 ADVANCED LINEAR ALGEBRA
- MAT 384 MATHEMATICAL MODELING
- CSC 381 INTRODUCTION TO DIGITAL IMAGE PROCESSING
- CSC 382 APPLIED IMAGE ANALYSIS

Open elective credit also is required to meet the minimum graduation requirement of 192 hours.

Students in this degree must meet the following requirements:

- Complete a minimum of 192 credit hours (generally 48 courses)
- Earn a grade of C- or higher in WRD 103, WRD 104, and all Major and Minor courses
- Earn a grade of D or higher in all other Liberal Studies and Open Elective courses
- Maintain a cumulative GPA of 2.0 or higher

An introduction to problem solving, algorithms and structured programming using a higher-level programming language. The course will focus on skills for developing algorithms, and for writing and debugging programs. Students will learn how and when to use loops, conditionals, and functional abstractions in the context of problems motivated by real world applications. PREREQUISITE(S): MAT 130 or Mathematics Diagnostic Test placement into MAT 140.

An intermediate course in problem solving, algorithms and programming. Programming skills are further strengthened through more complex and larger programming assignments. The assignments will also be used to introduce different Computer Science areas (e.g. a Client/Server application for the Distributed Systems area). Classes and object oriented programming are motivated and introduced. PREREQUISITE(S): CSC241

This is the first course in a two-course sequence on data structures using Java. The course introduces basic Java programming, reviews recursion, introduces asymptotic notations, and focuses mainly on linear data structures including arrays, linked lists and their variants, stacks and queues, and data structures supporting disjoint-set operations. The implementation of the basic operations on each data structure are discussed and analyzed in terms of their efficiency. The applications covered highlight and exploit the unique characteristics of the data structures, and emphasize problem solving and recursive thinking. Prerequisite(s): CSC 242 or CSC 243

This is the second course in a two-course sequence on data structures using Java. The course focuses mainly on the following data structures, their analysis, and their applications: trees (search trees, balanced search trees), heaps, associative arrays, hash tables, and data structures for representing graphs. The implementation of the basic operations on each data structure are discussed and analyzed in terms of their efficiency. The applications discussed highlight and exploit the unique characteristics of the different data structures, and emphasize problem solving and recursive thinking. Prerequisite(s): CSC 300

Techniques for designing algorithms including: analyzing algorithms (big-O, recurrence relations) and divide-and-conquer (quicksort, mergesort). Additional topics chosen from: the greedy method, dynamic programming, backtracking, branch-and-bound and string matching. PREREQUISITE(S): (CSC 301 or CSC 383 or CSC 393) and MAT140. MAT141 Recommended.

A course on computer systems topics, focusing on machine-level programming and architecture and their relevance for application programming. Information representations, assembly language, C programming, and debuggers, processor architecture. PREREQUISITE: (CSC 383 or CSC 393 or CSC 300) and Math 140

A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Caching, memory hierarchy, performance optimization, linking, processes, virtual memory, dynamic memory allocation, system level I/O. PREREQUISITE: CSC 373

Students will be provided with experience in team design, implementation and testing of a large software project. PREREQUISTE(S): CSC 301 or CSC 383 or CSC 393 or IM 360

A group project involving analysis, design, creation, implementation and testing of a large project such as an animation, an interactive multimedia presentation or a video game. Portfolio creation and critique. Discussion of strategies for graduate school and the job market. PREREQUISITE(S): GPH 338 or GPH 372.

Topics vary from year to year. This course does not count toward the mathematical major or minor credit.

Methods of direct and indirect proof, set theoretic proofs, sequences, mathematical induction, recursion, multiply-quantified statements, relations and functions, complexity.

Combinatorics, graph theory, propositional logic, singly-quantified statements, operational knowledge of set theory, functions, number systems, methods of direct and indirect proof.

Limits, continuity, the derivative, rules of differentiation, and applications, with precalculus review included for each topic. The full MAT 147-8-9 sequence covers all the material of MAT 150-1-2 plus additional precalculus material.

Extrema, curve sketching, related rates, definite and indefinite integrals, applications of the integral, exponential and logarithmic functions, with precalculus review included for each topic.

Techniques of integration, L'Hopital's rule, improper integrals, Taylor polynomials, series and sequences, first-order differential equations, with precalculus review included for each topic.

Limits, continuity, the derivative, rules of differentiation, applications of the derivative, extrema, curve sketching, and optimization. This course meets for an additional 1.5-hour lab session each week for enrichment and problem solving.

Definite and indefinite integrals, the Fundamental Theorem of Calculus, applications of the integral, exponential and logarithmic functions, inverse trigonometric functions, techniques of integration. This course meets for an additional 1.5-hour lab session each week for enrichment and problem solving.

L'Hopital's rule, improper integrals, sequences and series, Taylor polynomials. This course meets for an additional 1.5-hour lab session each week for enrichment and problem solving.

Limits, continuity, the derivative, rules of differentiation, applications of the derivative, extrema, curve sketching, and optimization. Course meets for an additional 1.5 hour lab session each week in order to cover the material in greater depth. Students considering a math major are advised to take the 160 or 170 sequence.

Definite and indefinite integrals, the Fundamental Theorem of Calculus, applications of the integral, exponential and logarithmic functions, inverse trigonometric functions, techniques of integration. Course meets for an additional 1.5 hour lab session each week in order to cover the material in greater depth.

L'Hopital's rule, improper integrals, sequences and series, Taylor polynomials. Course meets for an additional 1.5 hour lab session each week in order to cover the material in greater depth.

The course covers the following topics using examples from the sciences: Functions as models, logarithmic scale graphing, exponential growth and decay, difference equations and limits of sequences, geometric series, functions and limits, trigonometric functions and their limits, continuity, limits at infinity, the derivative, differentiation rules, derivatives of trigonometric and exponential functions, related rates, derivatives of inverse and logarithm functions. Course meets for an additional lab session each week during which time students will work on applied mathematics projects based on the topics covered in the course. Students majoring in the sciences should consult with their major department to decide between the 160 and 170 sequences.

The course covers the following topics using examples from the sciences: Applications of the derivative including approximation and local linearity, differentials, extrema and the Mean Value Theorem, monotonicity and concavity, extrema, inflection points, graphing, L'Hospital's Rule, optimization, and the Newton-Raphson method, antiderivaties, the definite integral, Riemann sums, the Fundamental Theorem of Calculus, area, cumulative change, average value of a function, and techniques of integration: substitution rule and integration by parts. Course meets for an additional lab session each week during which time students will work on applied mathematics projects based on the topics covered in the course. Course meets for an additional lab session each week during which time students will work on applied mathematics projects based on the topics covered in the course.

This course is designed for students in the life sciences and covers some topics from MAT 152, differential equations and an introduction to the Calculus of functions of several variables. Specific topics are as follows. Numerical integration, partial fraction expansions, Taylor approximations of a function, differential equations, separation of variables, slope fields, Euler's existence theorem, polygonal approximations to solutions of differential equations, the logistic equation and allometric growth models, equilibiria of differential equations and their stability, applications of stability theory, functions of several variables, partial derivatives, directional derivative and the gradient. Course meets for an additional lab session each week during which time students will work on applied mathematics projects based on the topics covered in the course.

Vectors, dot and cross products, lines and planes, cylinders and quadric surfaces, vector-valued functions, parametrization of plane curves and three dimensional curves, arc length, curvature and normal vector, functions of several independent variables, partial derivatives, the chain rule, directional derivatives, differentials, extreme values.

Systems of linear equations and matrices; vectors in n-space; vector spaces: linear combinations, linear independence, basis; linear transformations, change of basis, eigenvalues and eigenvectors.

Methods of counting and enumeration of mathematical structures. Topics include generating functions, recurrence relations, inclusion relations, and graphical methods.

A study of properties of integers: divisibility; Euclid's Algorithm; congruences and modular arithmetic; Euler's Theorem; Diophantine equations; distribution of primes; RSA cryptography.

Probability spaces, combinatorial probability methods, discrete and continuous random variables and distributions, moment generating functions, development and applications of the classical discrete and continuous distributions.

The first quarter of a 3-quarter sequence. Topics in the sequence include the integers; abstract groups, rings, and fields; polynomial rings; isomorphism theorems; extension fields; and an introduction to Galois theory. MAT 303 is highly recommended.

A continuation of topics from MAT 310: Groups, rings, fields, polynomial rings, isomorphism theorems, extension fields, and an introduction to Galois theory.

A continuation of topics from MAT 311: Groups, rings, fields, polynomial rings, isomorphism theorems, extension fields, and an introduction to Galois theory.

Real number system, completeness, supremum, and infimum, sequences and their limits, lim inf, lim sup, limits of functions, continuity.

Topics in axiomatic set theory, formal logic, and computability theory.

How do you solve a problem? In this course we discuss different problem solving techniques and strategies such as modeling, establishing subgoals, and searching and pruning. The techniques will be presented as part of a theoretical framework, but there will be significant emphasis on solving problems in familiar domains such as games, newspaper articles, philosophy, and simple geometry and logic. At the end of the course, students will have built a repertoire of problem solving tools that will allow them to make an informed choice of approach towards new problems.

This course prepares students to compete in programming contests. More broadly, it covers problem solving techniques in an informal, fun, and hands-on setting. This course will improve your analytical and programming skills and is thus recommended for all students and not just the competitors among us. This course can be taken for credit twice. PREREQUISITE(S): CSC 301 or CSC 383

Introduction to the methods of cryptography and cryptanalysis. Topics include classical cryptography (codes, substitution ciphers, transposition ciphers), block and stream ciphers (Feistel networks, DES), and public key cryptography (RSA, Key agreement, signature schemes). Optional topics include zero-knowledge protocols, quantum cryptography, and history. PREREQUISITE(S): (CSC 211 or CSC 241 or CSC 243) and MAT 140

An introduction to the most important abstract models of computation and their applications: finite state machines and pushdown automata. Explores the relationship between regular expressions and formal grammars and automata. PREREQUISITE(S): (CSC 301 or CSC 383) and MAT 141

Syntax of programming languages: regular expressions, finite automata, context-free grammars, parsing. Scoping, binding, parameter passing, exception handling. Declarative programming languages. Typing, polymorphism. Runtime systems: dynamic loading, byte-code verification, security managers, garbage collection, versioning. PREREQUISITE(S): (CSC 301 or CSC 383 or CSC 393) and CSC 374.

An overview of the design of a compiler for a general purpose programming language; tools for designing the components of the compiler; implementing the compiler; run time environments. PREREQUISITE(S): (CSC 301 or CSC 383 or CSC 393) and CSC 373

The Linear Programming problem and its dual; the simplex method; transportation and warehouse problems; computer algorithms and applications to various fields. PREREQUISITE(S): MAT 220 and any introductory programming course.

The Linear Programming problem and its dual; the simplex method; transportation and warehouse problems; computer algorithms and applications to various fields. (CROSS-LISTED AS MAT 487)

This course introduces students to the research base of organizational theory, the politics of education, and foundations of building level instructional leadership. Multiple theories are examined in light of the students? experience in educational settings. This examination of theory in light of experience provides the students with a framework for analyzing both familiar educational institutions and the theories that support educational institutions. Through a study of administrative and organizational theory using those settings with which students are most familiar, students will become more reflective of the theoretical base that will inform their future practice as administrators.

This course presents fundamental numerical algorithms for solving problems in scientific computing and computational finance. Areas covered include: error analysis, computer arithmetic, linear algebra, optimization problems, numerical integration (solvers), ordinary differential equations (ODE). The emphasis of the course is on the design of the algorithms, and their analysis. Algorithms will be implemented using mathematical software. PREREQUISITE(S): (CSC 212 or CSC 262 or CSC 224 or CSC 300) , and 2 course calculus sequence or instructor's permission.

Use of a digital computer for numerical computation. Error analysis, Gaussian elimination and Gauss-Seidel method, solution of non-linear equations, function evaluation, cubic splines, approximation of integrals and derivatives, Monte Carlo methods. Cross-listed with MAT 485.

Theory and algorithms for efficient computation, including the Fast Fourier transform, numerical solution of non-linear systems of equations. Minimization of functions of several variables. Sparse systems of equations and corresponding eigenvalue problems. (CROSS-LISTED WITH MAT 486 & CSC 386/486)

Computational and theoretical methods in ordinary diffential equations, complex numbers, systems of equations, phase plane analysis, and bifurcations. Applications to damped, driven oscillators, and to electronics.

Computational and theoretical methods in ordinary differential equations, complex numbers, systems of equations, phase plane analysis, bifurcations. Applications to damped, driven oscillators, electronics. Lab Fee. COREQUISITE(S): MAT 261.

Modeling of real world problems using mathematical methods. Includes a theory of modeling and a study of specific models, selected from deterministic, stochastic, continuous, and discrete models. Cross-listed with MAT 484.

An in-depth survey of important concepts, problems, and techniques in artificial intelligence, including search, knowledge representation, logical reasoning, and reasoning with uncertainty. A particular focus and a unifying theme of the course will be the concept of intelligent agents. No prior knowledge of AI is required. The course is particularly suitable for graduate and advanced undergraduate students who want to gain the technical background necessary to build intelligent systems, or who want to prepare for more advanced work in AI. The concepts and techniques learned in this course will be directly applicable to many other areas of computer science including software design, distributed systems, databases, and information management and retrieval. PREREQUISITE(S): CSC 301 or CSC 383 or CSC 393.

A study of the development of expert systems. Students will use commercial packages to develop standalone and embedded expert systems. Topics will include rule-based systems, decision trees, forward and backward chaining, inference, reasoning with uncertainty, and intelligent agents. PREREQUISITE(S): CSC 301 or CSC 383 or CSC 393.

Concepts of symbolic programming as embodied in the language LISP. Basic data and control structures of LISP: symbolic expressions, the interpreter, functions, recursion, iteration. Techniques for prototyping and building conceptually advanced systems in an environment that encourages procedural and data abstraction. Advanced topics may include Prolog, intelligent tutoring systems, intelligent agents, and natural language processing. Assignments will focus on basic AI techniques, but the class is intended for anyone who will need to rapidly develop large complex systems. PREREQUISITE(S): CSC 301 or CSC 383 or CSC 393.

The use of statistical software in conducting an analysis of variance in a variety of settings and the interpretation of generated results. Analysis of variance for completely randomized, randomized block, and Latin square designs; for factorial experiments; for incomplete block designs; with missing data; for fixed-effects, random-effects, and mixed-effects models; and for experiments with repeated measures. The analysis of covariance. PREREQUISITE(S): CSC324 or MAT 353.

The course will teach advanced statistical techniques to discover information from large sets of data. The course topics include visualization techniques to summarize and display high dimensional data, dimensional reduction techniques such as principal component analysis and factor analysis, clustering techniques for discovering patterns from large datasets, and classification techniques for decision making. The methods will be implemented using standard computer packages. PREREQUISITE(S): CSC 324 or consent of instructor.

The multivariate normal distribution. Hypothesis tests on means and variances including the multivariate linear model. Classification using the linear discriminant function. Principal components and factor analysis. PREREQUISTE(S): MAT 353 and 262, or consent of instructor. (CROSS-LISTED WITH MAT 454)

Techniques of computer simulation of the classical univariate and multivariate probability distribution models, and such random processes as random walk, Markov chains, and queues. Cross-listed with MAT 459.

The course is an introduction to the Data Mining (DM) stages and its methodologies. The course provides students with an overview of the relationship between data warehousing and DM, and also covers the differences between database query tools and DM. Possible DM methodologies to be covered in the course include: multiple linear regression, clustering, k-nearest neighbor, decision trees, and multidimensional scaling. These methodologies will be augmented with real world examples from different domains such as marketing, e-commerce, and information systems. If time permits, additional topics may include privacy and security issues in data mining. The emphasis of this course is on methodologies and applications, not on their mathematical foundations. PREREQUISITE(S): IT 223

Joint probability distributions and correlation; law of large numbers and the central limit theorem; sampling distributions and theory of estimation.

Principles of hypothesis testing; most powerful tests and likelihood ratio tests; linear regression; one-way analysis of variance; categorical data analysis, nonparametric statistics.

Discrete Markov chains and random walks, birth and death processes, Poisson processes, queuing systems, and renewal processes. Cross-listed with MAT 455.

Inference concerning location and scale parameters, goodness of fit tests, association analysis and tests of randomness using distribution free procedures. Bootstrap techniques. Smoothing methodologies. Cross-listed with MAT 457.

Vector spaces, basis and dimension; matrix representation of linear transformations and change of basis; diagonalization of linear operators; inner product spaces; diagonalization of symmetric linear operators, principal-axis theorem, and applications. Cross-listed MAT 470.

Simple linear, multiple, polynomial and general regression models. Selection of best regression equation and examination of residuals for homoscedasticity and other diagnostics. Use of statistical software. Cross-listed with MAT 456.

Development of the Box-Jenkins methodology for the identification, estimation, and fitting of ARIMA, and transfer-function stochastic models for the purpose of analyzing and forecasting stationary, non-stationary, and seasonal time series data. The course emphasizes practical time-series data analysis using computer packages and includes applications to economic, business, and industrial forecasting. Cross-listed with MAT 512.

Complex functions; complex differentiation and integration; series and sequences of complex functions.

Lagrange multipliers, double and iterated integrals, area by double integrals, triple integrals, triple integrals in cylindrical and spherical coordinates, line integrals, vector fields, conservative vector fields and potential functions, Green?s Theorem, surface integrals, Stokes? Theorem, Gauss? Theorem.

An introduction to the visual, non-verbal principles incorporated in the effective presentation of on-screen environments. This course emphasizes the use of two-dimensional elements and their organization.

Further experience with the visual, non-verbal principles incorporated in effective presentation of on-screen environments. This course emphasizes the use of three-dimensional elements, spaces and their organization. PREREQUISITE(S): ART 105, GD 105, GPH 211 or HCI 402.

(Formerly GPH 371) A survey of basic 3D techniques, including interaction of light and color. The relationship between visual effect and geometry. Visual effects of rendering, texturing and lighting algorithms. Procedurally based modeling and an introduction to procedural animation techniques. PREREQUISITE(S): CSC 212 or CSC 262 or IM 330

(Formerly CSC 329) Basic graphics architecture. Coordinate systems. Three-dimensional representations and transformations. Simple visible-surface algorithms. Introduction to illumination. Gouraud and Phong shading. Antialiasing. Texture mapping and elements of animation. Students create a graphics package using a high-level graphics API such as OpenGL. PREREQUISITE(S): GPH 321 or(CSC 393 and either MAT 220 or MAT 262)

Parametric curves and surfaces. Continuity of curves and surfaces. Hermite, Bezier, B, and Catmull-Rom splines. Integer, adaptive and interactive generation of curves and surfaces. Surface subdivision. Quadric surfaces. Surface use in animations. (PREREQUISITE(s): GPH 329).

(Formerly CSC 372) This course will cover a range of topics in introductory 3D Computer Animation. Topics covered will include key framing, interpolation, hierarchies, inverse kinematics, particle systems, and the basics of physically based simulation and modeling. PREREQUISITE(S): GPH329.

Components of an image processing system and its applications, elements of visual perception, sampling and quantization, image enhancement by histogram equalization, color spaces and transformations, introduction to segmentation (edge detection algorithms), and morphological image processing. PREREQUISITE(S): Calculus or Linear Algebra

Fundamentals of computational image analysis will be explored in terms of its two most important components, image information extraction and modeling of image patterns. These components will be studied in the context of image representation, segmentation, classification, retrieval and recognition. The course will be useful for students interested in image analysis related to areas such as image databases, multimedia management, animation, GIS, computer graphics, medical imaging, remote sensing and robotics. Specific topics include, but are not limited to segmentation, multi-scale representation, shape analysis, texture analysis, Fourier analysis, wavelets, Gabor and fractal analysis, template matching, and object recognition. PREREQUISITE(S) CSC 381

Variable credit.

Independent study supervised by an instructor. Independent study form required. Can be repeated for credit. Variable Credit. PREREQUISITE(S): None.

This course involves the exploration of a research topic under the supervision of a research advisor. PREREQUISITE(S): Consent of dean.

Advanced topics in the mathematical foundations of computation. Topics may include random access and Turing machines, recursive functions, algorithms, computability and computational complexity, intractable problems, NP-complete problems. PREREQUISITE(S): CS321 or CS344.