### Courses

## Computer Science Courses

**CSCI 101 Introduction to Computer Science (4)**

An introductory survey of computer science designed for liberal arts students, including such topics as machine architecture, language translation, artificial intelligence, and noncomputability.

**CSCI 157 Introduction to Modeling and Programming (4)**

An introduction to creative modeling of both natural and virtual worlds, in which students gain understanding of human interaction with computing devices as well as the expertise needed for further course work in computer science. Lab experiences using the explicit notation of a programming language reinforce the application of abstractions while affording practice in algorithmic problem solving and relevant theory.

**CSCI 257 Data Structures (4)**

Focuses on data abstraction, algorithm design and analysis, recursion, and the implementation of larger programs.
*Prerequisite: CSCI 157.*

**CSCI 270 Computer Systems and Organization (4)**

This course explores levels of abstraction in computer systems, processors and related hardware components, instruction sets, program execution, and process management.
*Prerequisite: CSCI 157.*

**CSCI 276 Multimedia Programming and Design (4)**

An introduction to object-oriented programming techniques that underlie the creation, manipulation, and transmission of digital media, including digital photography, audio, and video. Topics include scaling and transforming pictures, sound waveform visualization and manipulation, MIDI, chromakey, frame-based animation, and compression, encoding, and transmission of digital media over the Internet.
*Prerequisite: CSCI 157.*

**CSCI 284 Database Design with Web Applications (4)**

This course provides students with a working knowledge of the power and potential of modern networked databases as well as of common uses and abuses. Students receive hands-on experience with open source development tools, which are widely used for building and placing databases on the web. Database development is explored, from conceptual elaboration through design and implementation, and interview techniques for effective database design are considered. Programming techniques are introduced for building, maintaining, accessing, interacting, and protecting the information in large data depositories. Discussions include consideration of concerns driving policy decisions for amassing and managing sensitive, and sometimes dangerous, information collections.
*Prerequisite: CSCI 157.*

**CSCI 286 Computer Mapping and Geolocation (4)**

An introduction to computer location algorithms and networks with an emphasis on fundamental principles, this course provides basic understanding of location services and underlying technologies, including comparisons of popular mapping and geolocation programming technologies appropriate for web and mobile platforms.
*Prerequisite: CSCI 257.*

**CSCI 290 Data Mining (4)**

Data mining is the automated analysis of large quantities of data to extract previously unknown patterns such as clusters, anomalies, relationships, and dependencies. As large columns of data accumulate, techniques are needed to make sense of the stored information and predict future trends. Data mining applications have become important in fields such as finance, healthcare, manufacturing, and marketing. This course introduces students to the principal ideas in statistical learning, including areas such as classification, clustering, and data extraction. Along the way, students develop problem-solving skills and an understanding of programming techniques and data structures.
*Prerequisite: CSCI 257 or CSCI 284.*

**CSCI 320 Analysis of Algorithms (4)**

Systematic study of algorithms and their complexity, searching and sorting, pattern matching, geometric and graph algorithms, NP-complete and intractable problems.
*Prerequisite: CSCI 257 and MATH 215.*

**CSCI 326 Functional Programming (4)**

Data abstraction and data-driven recursion, higher-order functions, and the management of state. An exploration of the functional paradigm in the context of concurrent and distributed computing.
*Prerequisite: CSCI 257.*

**CSCI 344 Robotics (4)**

An overview of the field of robotics with special emphasis on motion planning. In addition to basic computer science concepts, introductions to the necessarily related fields of mechanical and electrical engineering will be provided as appropriate. Computer simulations will be used and students will get hands-on experience with real world robotics through assignments using project component kits.
*Prerequisite: CSCI 257 and MATH 215.*

**CSCI 356 Artificial Intelligence (4)**

Knowledge representation, expert systems, natural language processing, computer vision, machine learning, game playing, cognition.
*Prerequisite: CSCI 257 and MATH 215.*

**CSCI 360 Principles of Interactive Computer Graphics (4)**

Introduction to interactive computer graphics including 2D and 3D viewing, clipping, hidden line/surface removal, shading, interaction handling, geometrical transformations, projections, and hierarchical data structures. Brief introductions to related and dependent fields of physically-based modeling and scientific visualization will be included.
*Prerequisite: CSCI 257 and MATH 215.*

**CSCI 370 Computer Architecture (4)**

Advanced processor design including pipelining, speculative execution, hyperthreading and their effects on program execution. The memory hierarchy and virtual memory design.
*Prerequisite: CSCI 257 and CSCI 270.*

**CSCI 376 Programming Languages (4)**

Imperative, object-oriented, declarative, and functional programming language paradigms.
*Prerequisite: CSCI 257 and MATH 215.*

**CSCI 415 Special Topics (2 or 4)**

This course explores emerging concepts, methodologies, and applications to other disciplines in the field of computer science.
*Prerequisite: CSCI 257.*

**CSCI 428 Operating Systems (4)**

Process management, memory management, processor scheduling, file systems, concurrent programming, distributed processing, security.
*Prerequisite: (CSCI 270 or CSCI 370) and MATH 215.*

**CSCI 444 Independent Study (2 or 4)**

An opportunity for advanced students to pursue topics of special interest.
*Prerequisite: Instructor prerequisite override required.*

## Mathematics Courses

**MATH 100 Topics in Mathematics (4)**

Intended for prospective majors outside of mathematics, computer science, and the physical sciences, this course focuses on one or more important areas of mathematics with emphasis on the creativity and power of abstract representation, mathematical inquiry, and logical reasoning. Specific past topics have included calculus, probability, number theory, group theory, and encryption. Current topics vary by instructor.

**MATH 101 Calculus I (4)**

An elementary course introducing the student to the basic concepts of calculus: functions, transcendental functions, limits, derivatives, and integrals. Emphasis on problem solving.
*Prerequisite: Placement.*

**MATH 102 Calculus II (4)**

A continuation of Calculus I. Topics include further theory and applications of integration, techniques of integration, and introduction to series. Some work with a computer is included.
*Prerequisite: MATH 101 or placement.*

**MATH 207 Multidimensional Calculus (4)**

Calculus of several variables. Vectors, partial and directional derivatives, space curves, gradients, maxima and minima, linear and differentiable transformations, vector fields, line integrals, multidimensional Riemann integrals, and applications in physics and geometry are considered.
*Prerequisite: MATH 102 or placement.*

**MATH 210 Linear Algebra (4)**

A course designed to provide some important mathematical tools useful in a variety of fields. Systems of linear equations, vectors and matrices, determinants, vector spaces, linear transformations, inner and cross products, and eigen values and canonical forms are considered.
*Prerequisite: MATH 102 or placement.*

**MATH 212 Differential Equations (4)**

Ordinary differential equations, with applications. Methods of numerical approximation, power series, and Laplace transforms. Existence and uniqueness of solution.
*Prerequisite: MATH 102 or placement.*

**MATH 215 Discrete Mathematical Structures (4)**

This course is required for most courses in mathematics or computer science numbered 300 or above. Topics normally include the following: logic, sets, functions, relations, graphs and trees, mathematical induction, combinatorics, recursion, and algebraic structures. The subject matter is to be of current interest to both mathematics and computer science students.
*Prerequisite: MATH 101 or higher or placement.*

**MATH 303 Analysis I (4)**

A rigorous treatment of continuity, differentiation, and integration for functions of a real variable. The course also includes convergence of series and sequences of functions as well as topology of the real line.
*Prerequisite: MATH 207 and MATH 215.*

**MATH 305 Abstract Algebra I (4)**

A study of these important algebraic structures: integral domains, polynomials, groups, vector spaces, rings and ideals, fields, and elementary Galois theory.
*Prerequisite: MATH 215.*

**MATH 306 Abstract Algebra II (4)**

A study of these important algebraic structures: integral domains, polynomials, groups, vector spaces, rings and ideals, fields, and elementary Galois theory.
*Prerequisite: MATH 305.*

**MATH 311 Functions of a Complex Variable (4)**

An introduction to analytic functions. Rational, exponential, logarithmic, and trigonometric functions in the complex plane, Cauchy's integral formula, Taylor series, Laurent series, residues, poles, and conformal mapping are considered along with applications to physical problems and other areas of mathematics.
*Prerequisite: MATH 207 and MATH 215.*

**MATH 313 Algebraic Number Theory (4)**

Largely an algebraic study of the standard number-theoretic functions, congruences, primes, quadratic residues, and other topics selected according to the interests of the students and instructor.
*Prerequisite: MATH 215.*

**MATH 314 Topology (4)**

An introduction to point-set topology with emphasis on Euclidean spaces and applications to analysis. Topics include connectedness, compactness, countability conditions, separation properties, metric spaces, continuity, homeomorphisms, and product spaces.
*Prerequisite: MATH 215.*

**MATH 321 Probability and Statistics I (4)**

A treatment of probability and a logical development of the framework of mathematical statistics. Topics include random variables, distribution functions, sampling, and statistical inference.
*Prerequisite: MATH 207 and MATH 215.*

**MATH 322 Probability and Statistics II (4)**

A treatment of probability and a logical development of the framework of mathematical statistics. Topics include random variables, distribution functions, sampling, and statistical inference.
*Prerequisite: MATH 321.*

**MATH 330 History of Mathematics (4)**

A survey of classical mathematics from ancient times to the development of calculus, together with selected topics from the history of modern mathematics.
*Prerequisite: MATH 102.*

**MATH 332 Mathematical Modeling (4)**

An introduction to the creation of mathematical models, both deterministic and probabilistic, for the description of problems drawn from physical, biological, social, and environmental sources.
*Prerequisite: MATH 215 and CSCI 157.*

**MATH 334 Partial Differential Equations and Modeling (4)**

This course addresses the techniques and theory of partial differential equations. Many physical and biological applications and models are explored, including the heat equation, the wave equation, and LaPlace's equation. Significant attention is given to both theory and applications.
*Prerequisite: MATH 207 and MATH 212.*

**MATH 401 Analysis II (4)**

A concentrated study of the theory of functions of a real variable. Abstract methods are emphasized. Students are active participants in the presentation.
*Prerequisite: MATH 303.*

**MATH 402 Special Topics (4)**

Study of a variable topic in mathematics.
*Prerequisite: MATH 215.*

**MATH 416 Algebraic Topology (4)**

An introduction to algebraic and combinational topology with emphasis on applications to analysis and Euclidean geometry. Topics covered include simplicial homology, the fundamental group, covering spaces, the higher homotopy groups, and the homology sequence.
*Prerequisite: MATH 314.*

**MATH 444 Independent Study (2 or 4)**

An opportunity for advanced students to pursue topics of special interest.
*Prerequisite: Instructor prerequisite override required.*

## Statistics Courses

**STAT 204 Elementary Statistics (4)**

An introduction to statistics covering these topics: probability, binomial and normal distributions, mean, median, variance, standard deviation, the distinction between sample and population, t-distribution, hypothesis testing, confidence intervals, and linear regression. Not open for credit with ECON 201.

**STAT 214 Statistical Modeling (4)**

This course focuses on choosing, fitting, assessing, and using statistical models. Topics include simple and multiple linear regression, logistic regression, and multifactor analysis of variance. Intended for students in the physical, natural or social sciences.
*Prerequisite: STAT 204 and CSCI 157.*

**STAT 444 Independent Study (2 or 4)**

An opportunity for advanced students to pursue topics of special interest.
*Prerequisite: Instructor prerequisite override required.*