Course Requirements
Mathematical Foundations
Algorithms and Structured Programming
Advanced Courses
Students can choose advanced computer science and mathematics classes from different area groupings: theory of computation, computational mathematics, artificial intelligence, data analysis, graphics, and computer vision. It is recommended that students select one or two area groupings 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 choose seven courses from the following area groupings. At least three of the courses have to be in computer science (or graphics) and at least three in mathematics. Courses not on this list need to be approved by an advisor. In particular, 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.
Theory of Computation
The courses in the theory area explore the mathematical and logical foundations of computer science.
Computational Methods
The computational methods area investigates quantitative and computational methods in computer science.
Artificial Intelligence
For students with an interest in the computational relations between syntax and semantics.
Data Analysis
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.
Graphics
The graphics courses are intended for students who want to study the technical and mathematical foundations of computer graphics and animation.
Computer Vision
Computer vision studies the mathematical and algorithmic underpinnings of image analysis and image processing.
Capstone Course
- One course from the following capstone courses, depending on interest and coursework:
Students need to make sure that they cover all prerequisites of their respective capstone (possibly using open electives).
Open Electives
Open elective credit also is required to meet the minimum graduation requirement of 192 hours.
MAT 150
CALCULUS I
Limits, continuity, the derivative, rules of differentiation, exponential and logarithmic functions, related rates and other applications.
Prerequisites:
MAT 131 or placement by test is a prerequisite for this class.
MAT 151
CALCULUS II
Applications of the derivative, extrema, curve sketching, definite and indefinite integrals, applications of the integral.
Prerequisites:
MAT 150 or MAT 160 or MAT 170 is a prerequisite for this class.
MAT 152
CALCULUS III
Techniques of integration, L'Hopital's rule, improper integrals, series and sequence Taylor polynomials.
Prerequisites:
MAT 151 or MAT 161 or MAT 171 is a prerequisite for this class.
MAT 147
CALCULUS WITH INTEGRATED PRECALCULUS I
Limits, continuity, the derivative, rules of differentiation, and applications, with precalculus review included for each topic. The full MAT 147-8-9 sequence will cover all the material of MAT 150-1-2 plus additional precalculus material.
Prerequisites:
MAT 130 or equivalents or placement by test is a prerequisite for this class.
MAT 148
CALCULUS WITH INTEGRATED PRECALCULUS II
Extrema, curve sketching, related rates, definite and indefinite integrals, applications of the integral, exponential and logarithmic functions, with precalculus review included for each topic.
Prerequisites:
MAT 147 is a prerequisite for this class.
MAT 149
CALCULUS WITH INTEGRATED PRECALCULUS III
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.
Prerequisites:
MAT 148 is a prerequisite for this class.
MAT 160
CALCULUS FOR MATHEMATICS AND SCIENCE MAJORS I
Limits, continuity, the derivative, rules of differentiation, exponential and logarithmic functions, related rates and other applications. 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.
Prerequisites:
MAT 131 or placement by test is a prerequisite for this class.
MAT 161
CALCULUS FOR MATHEMATICS AND SCIENCE MAJORS II
Applications of the derivative, extrema, curve sketching, definite and indefinite integrals, applications of the integral. Course meets for an additional 1.5 hour lab session each week in order to cover the material in greater depth.
Prerequisites:
MAT 147 or MAT 150 or MAT 160 or MAT 170 is a prerequisite for this class.
MAT 162
CALCULUS FOR MATHEMATICS AND SCIENCE MAJORS III
Techniques of integration, L'Hopital's rule, improper integrals, series and sequences, Taylor polynomials. Course meets for an additional 1.5 hour lab session each week in order to cover the material in greater depth.
Prerequisites:
MAT 151 or MAT 161 or MAT 171 is a prerequisite for this class.
MAT 170
CALCULUS I WITH SCIENTIFIC APPLICATIONS
The course will cover 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.
Prerequisites:
MAT 131 or placement by test is a prerequisite for this class.
MAT 171
CALCULUS II WITH SCIENTIFIC APPLICATIONS
The course will cover 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.
Prerequisites:
MAT 150 or MAT 160 or MAT 170 is a prerequisite for this class.
MAT 140
DISCRETE MATHEMATICS I
Combinatorics, graph theory, propositional logic, singly-quantified statements, operational knowledge of set theory, functions, number systems, methods of direct and indirect proof.
Prerequisites:
MAT 130 or above or equivalents or placement by test is a prerequisite for this class.
MAT 141
DISCRETE MATHEMATICS II
Methods of direct and indirect proof, set theoretic proofs, sequences, mathematical induction, recursion, multiply-quantified statements, relations and functions, complexity.
Prerequisites:
MAT 140 is a prerequisite for this class.
MAT 260
MULTIVARIABLE CALCULUS I
Vectors in 2-space and 3-space, vector-valued functions, cylindrical and spherical coordinates, multivariable functions, partial differentiation with applications to extrema.
Prerequisites:
MAT 149 or MAT 152 or MAT 162 or MAT 172 is a prerequisite for this class.
MAT 262
LINEAR ALGEBRA
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.
Prerequisites:
MAT 260 is a prerequisite for this class.
CSC 241
INTRODUCTION TO COMPUTER SCIENCE I
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.
CSC 242
INTRODUCTION TO COMPUTER SCIENCE II
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
CSC 321
DESIGN AND ANALYSIS OF ALGORITHMS
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.
CSC 300
DATA STRUCTURES IN JAVA I
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. 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
CSC 309
C++ FOR PROGRAMMERS
This course covers the essentials of C and C++ programming, focusing primarily on the topics of memory management and object-oriented programming. Topics include pointers and dynamic allocation, operator overloading, copy constructors and destructors, inheritance and polymorphism. PREREQUISITE(S): CSC 242 or CSC 243 or CSC 224 or proficiency in another programming language.
CSC 373
COMPUTER SYSTEMS I
A course on computer systems topics, focusing on machine-level programming and architecture and their relevance for application programming. Information representations, assembly language and debuggers, processor architecture, program optimization, memory hierarchy and caching. PREREQUISITE: ((CSC 383 or CSC 393 or CSC 301) and Math 140) or (CSC 224 or CSC 261 or CSC 309 ) and graduate standing.)
CSC 374
COMPUTER SYSTEMS II
A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Linking, processes, virtual memory, dynamic memory allocation, system level I/O, networking and network programming, concurrent servers and web services. PREREQUISITE: CSC373
MAT 399
INDEPENDENT STUDY
Variable credit.
CSC 399
INDEPENDENT STUDY
Independent study supervised by an instructor. Independent study form required. Can be repeated for credit. Variable Credit. PREREQUISITE(S): None.
IIT 300
INSTRUMENTATION LAB
Basic electronic skills for scientific research. Electrical measurements, basic circuit analysis, diode and transistor circuits. Transistor and integrated amplifiers, filters, and power circuits. Basics of digital circuits, including Boolean algebra and design of logic circuits. (Taught at Illinois Institute of Technology as PHYS 300)
MAT 302
COMBINATORICS
Methods of counting and enumeration of mathematical structures. Topics include generating functions, recurrence relations, inclusion relations, and graphical methods.
Prerequisites:
MAT 141 or MAT 215 is a prerequisite for this class.
MAT 303
THEORY OF NUMBERS
A study of properties of integers: divisibility; Euclid's Algorithm; congruences and modular arithmetic; Euler's Theorem; Diophantine equations; distribution of primes; RSA cryptography.
Prerequisites:
MAT 141 or MAT 215 is a prerequisite for this class.
MAT 351
PROBABILITY AND STATISTICS I
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.
Prerequisites:
MAT 261 is a prerequisite for this class.
MAT 310
ABSTRACT ALGEBRA I
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.
Prerequisites:
MAT 262 and (MAT 141 or MAT 215) are a prerequisite for this class.
MAT 311
ABSTRACT ALGEBRA II
Continuation of 310.
Prerequisites:
MAT 310 is a prerequisite for this class.
MAT 312
ABSTRACT ALGEBRA III
Continuation of 311.
Prerequisites:
MAT 311 is a prerequisite for this class.
MAT 335
REAL ANALYSIS I
Real number system, completeness, supremum, and infimum, sequences and their limits, lim inf, lim sup, limits of functions, continuity.
Prerequisites:
(MAT 149 or MAT 152 or MAT 162 or MAT 172) and (MAT 141 or MAT 215) are a prerequisite for this class.
MAT 372
LOGIC AND SET THEORY
Topics in axiomatic set theory, formal logic, and computability theory.
Prerequisites:
MAT 141 or MAT 215 is a prerequisite for this class.
CSC 235
PROBLEM SOLVING
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.
CSC 327
PROBLEM SOLVING FOR CONTESTS
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
CSC 333
CRYPTOLOGY
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) and MAT 140
CSC 344
AUTOMATA THEORY AND FORMAL GRAMMARS
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
CSC 347
CONCEPTS OF PROGRAMMING LANGUAGES
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.
CSC 348
INTRODUCTION TO COMPILER DESIGN
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
CSC 387
OPERATIONS RESEARCH I: LINEAR PROGRAMMING
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.
MAT 387
OPERATIONS RESEARCH I:LINEAR PROGRAMMING (CROSS-LISTED AS MAT 487)
The Linear Programming problem and its dual; the simplex method; transportation and warehouse problems; computer algorithms and applications to various fields.
CSC 389
THEORY OF COMPUTATION
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.
CSC 358
SYMBOLIC PROGRAMMING
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.
CSC 331
SCIENTIFIC COMPUTING
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.
MAT 385
NUMERICAL ANALYSIS I
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.
Prerequisites:
(MAT 220 or MAT 262) and (MAT 149 or MAT 152 or MAT 162 or MAT 172) is a prerequisite for this class.
A&S 491
ADMINISTRATIVE THEORY AND BEHAVIOR
This course concerns theoretical concepts and empirical research relating to administrative behavior in organizations with special reference to educational organizations. Concepts are examined within the typical decisional framework of supervisors, chief school business officers, principles, and superintendents, and similar positions in the helping professions. Assignments are individualized.
Prerequisites:
Status as an Advanced Masters Education student is a prerequisite for this class.
MAT 386
NUMERICAL ANALYSIS II (CROSS-LISTED WITH MAT 486 & CSC 386/486)
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.
Prerequisites:
MAT 385 is a prerequisite for this class.
MAT 330
METHODS OF COMPUTATION AND THEORETICAL PHYSICS I
Computational and theoretical methods in ordinary diffential equations, complex numbers, systems of equations, phase piane analysis, bifurcations. Applications to damped, driven osciuators, electronics.
MAT 331
METHODS OF COMPUTATION AND THEORETICAL PHYSICS II
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.
Prerequisites:
MAT 261 is a prerequisite for this class.
MAT 384
MATHEMATICAL MODELING
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.
Prerequisites:
(MAT 220 or MAT 262) and (MAT 348 or MAT 351) are a prerequisite for this class.
CSC 301
DATA STRUCTURES IN JAVA II
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, data structures supporting disjoint-set operations, 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
CSC 393
DATA STRUCTURES IN C++
This course covers the design, implementation, application and analysis of algorithms on a variety of data structures, including lists, stacks, queues, trees, heaps, hash tables and grpahs. Implementation is done in C++, in particular with the use of templates and the C++ standard template library (STL). PREREQUISITE(S): CSC 262 or CSC 309
CSC 357
EXPERT SYSTEMS
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.
CSC 380
FOUNDATIONS OF ARTIFICIAL INTELLIGENCE
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.
CSC 328
DATA ANALYSIS FOR EXPERIMENTERS
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.
CSC 334
ADVANCED DATA ANALYSIS
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.
MAT 354
MULTIVARIATE STATISTICS (CROSS-LISTED WITH MAT 454)
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.
Prerequisites:
MAT 262 and MAT 353 are a prerequisite for this class.
MAT 359
SIMULATION MODELS AND MONTE CARLO METHOD
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.
Prerequisites:
MAT 341 and MAT 353 are a prerequisite for this class.
CSC 367
INTRODUCTION TO DATA MINING
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
MAT 261
MULTIVARIABLE CALCULUS II
Multiple integration, line and surface integrals, change of variable in multiple integration, Green's and Stokes' theorems.
Prerequisites:
MAT 260 is a prerequisite for this class.
MAT 352
PROBABILITY AND STATISTICS II
Joint probability distributions and correlation; law of large numbers and the central limit theorem; sampling distributions and theory of estimation.
Prerequisites:
MAT 351 is a prerequisite for this class.
MAT 353
PROBABILITY AND STATISTICS III
Principles of hypothesis testing; most powerful tests and likelihood ratio tests; linear regression; one-way analysis of variance; categorical data analysis, nonparametric statistics.
Prerequisites:
MAT 352 is a prerequisite for this class.
MAT 355
STOCHASTIC PROCESSES
Discrete Markov chains and random walks, birth and death processes, Poisson processes, queuing systems, and renewal processes. Cross-listed with MAT 455.
Prerequisites:
MAT 353 is a prerequisite for this class.
MAT 357
NONPARAMETRIC STATISTICS
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.
Prerequisites:
PREREQUISITE: MAT 349 or 353
MAT 370
ADVANCED LINEAR ALGEBRA
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.
Prerequisites:
MAT 262 and (MAT 141 or MAT 215) are a prerequisite for this class.
MAT 356
APPLIED REGRESSION ANALYSIS
Simple linear, multiple, polynomial and general regression models. Selection of best regression equation and examination of residuals for homoscedasticity and other diagnostic. Use of statistical software. Cross-listed with MAT 456.
Prerequisites:
MAT 353 and (MAT 220 or MAT 262) is a prerequisite for this class.
MAT 358
APPLIED TIME SERIES AND FORECASTING
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.
Prerequisites:
MAT 341 and MAT 353 are a prerequisite for this class.
MAT 337
COMPLEX ANALYSIS
Complex functions; complex differentiation and integration; series and sequences of complex functions.
Prerequisites:
MAT 261 and MAT 335 is a prerequisite for this class.
GPH 211
PERCEPTUAL PRINCIPLES FOR DIGITAL ENVIRONMENTS I
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.
GPH 212
PERCEPTUAL PRINCIPLES FOR DIGITAL ENVIRONMENTS II
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.
GPH 325
SURVEY OF COMPUTER GRAPHICS
(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
GPH 329
COMPUTER GRAPHICS DEVELOPMENT II
(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)
GPH 339
ADVANCED RENDERING TECHNIQUES
An introduction to shading techniques for highly realistic computer generated imagery. Texturing basics. Design, acquisition and application of layered textures to produce realistic dirt and aged surfaces. Turntables. Basic illumination and reflectance models. Elements of procedural texturing for organic surface materials such as wood and marble. The course includes an introduction to an industry standard shading language that is a powerful prototyping tool for both offline and real-time rendering environments. Students work in teams to produce convincingly organic environments. PREREQUISITE(S): GPH 325 or GPH 321 or (ANI 339 and GPH 355)
GPH 336
SMOOTH SURFACE MODELING FOR GRAPHICS AND ANIMATION
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).
GPH 372
PRINCIPLES OF COMPUTER ANIMATION
(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.
MAT 381
FOURIER ANALYSIS AND SPECIAL FUNCTIONS
The course covers the basic principles of discrete and continuous Fourier analysis and some of its applications currently used in scientific modeling. Students will use the computer to implement the computational algorithms developed in the course. Some of the topics covered will include Fourier transforms and their application to signal and image processing, discrete Fourier series, the fast Fourier transform algorithm and applications to digital filtering, and the Radon transforms and its applications to tomography.
Prerequisites:
MAT 262 is a prerequisite for this class.
CSC 381
INTRODUCTION TO DIGITAL IMAGE PROCESSING
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
CSC 382
APPLIED IMAGE ANALYSIS
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
CSC 394
SOFTWARE PROJECTS
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
GPH 395
COMPUTER GRAPHICS SENIOR PROJECT
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.
MAT 398
SENIOR CAPSTONE SEMINAR
Topics vary from year to year. This course does not count toward the mathematical major or minor credit.