### 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 105 “Garbage In, Garbage Out": Ethical, Legal, and Social Issues in a Computerized World (4)**

An examination of a wide array of social, legal, and ethical issues related to the ubiquity and range of computing and computers. Topics explored include computer activism, computer crime, the fourth amendment and expectation of privacy, intellectual property protection, computer surveillance, identity theft, secure communication, and digital forgery. No computing experience is required.
*Open only to new first-year students.*

**CSCI 120 Introduction to Environmental Computing (4)**

The course includes an introduction to common software programs used in geographic information systems (GIS) and provides an overview of GIS-related technologies. It also introduces students to a deeper understanding of the Internet as a computing technology and how it can be used best to share environmentally-oriented research and information with the public. The class covers hypertext markup language, basic design, layout, construction, setup and maintenance of a web site as the support structure for online publication of environmental content. Existing environmental web sites provide valuable case studies for analysis and improvement.

**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 180 Business Data Communications and Computer Networks (4)**

This course offers a balanced approach between technical and practical aspects of data communications, providing an exploration of how things work as well as how they can be applied to create business solutions. Data communications and computer networks are essential for the functioning of banking systems, financial markets, trade, and local and global businesses, which must manage those systems, plan for technological growth, and reduce the security vulnerabilities that are introduced by those systems. Topics covered include distributed data processing, Internet architecture and protocols, client-server computing, local and wide area networks, wireless communications, and network security.

**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 310 Theory of Computation (4)**

An introduction to the theoretical foundations of computing including abstract models of computing machines, the grammars the machines recognize, and classes of languages.
*Prerequisite: CSCI 257 and MATH 215.*

**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 348 Databases (4)**

An introduction to the design of databases for the systematic collection, organization, and retrieval of large quantities of related information. The relational data model will be used with a design process that begins with conceptual modeling and ends with the physical data organization. The course includes topics such as normalization, SQL, data quality management, implementation issues, database administration, and data warehousing.
*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 Organization (4)**

Levels of abstraction in computer organization, processors and related hardware components, instruction sets, program execution, and the memory hierarchy.
*Prerequisite: CSCI 257.*

**CSCI 376 Programming Languages (4)**

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

**CSCI 411 Computer Networks and Architecture (4)**

Computer network design and performance, communication protocols, LAN standards, internetworking, congestion control, routing, client/server programming, network security.
*Prerequisite: CSCI 270 or CSCI 370.*

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

This course explores emerging concepts, methodologies, and applications to other disciplines in the field of computer science. Topics may vary from offering to offering, and the course may be repeated for credit when topics differ.
*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 430 Machine Learning (4)**

Study of intelligent problem-solving, searching algorithms, inference systems, and machine intelligence. Topics covered include Bayesian decision theory and pattern recognition techniques such as neural networks, genetic algorithms, and traditional artificial intelligence methodologies.
*Prerequisite: CSCI 257 and MATH 210.*

**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 301 Introduction to Numerical Analysis (4)**

Includes interpolation and curve-fitting, quadrature, iterative methods in linear and non-linear algebra, difference equations, and applications of the above to the approximate solution of ordinary and partial differential equations.
*Prerequisite: MATH 207 and MATH 215.*

**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. Repeatable for credit with change of topic.
*Prerequisite: MATH 215.*

**MATH 403 Honors Seminar (4)**

Study of a selected topic. Participants in the seminar include the mathematics faculty and invited students.

**MATH 410 Mathematical Methods in Physics (4)**

Vector spaces and linear operators, with applications. Fourier series, boundary value problems, orthogonal functions.
*Prerequisite: MATH 212.*

**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 420 Geometry (4)**

Topics in Euclidean and non-Euclidean geometry are discussed. Particular emphasis is on the axiomatic approach in the study of geometry.
*Prerequisite: MATH 215.*

**MATH 430 Calculus on Manifolds (4)**

Multivariable calculus including the inverse and implicit function theorems, manifolds (spaces that locally resemble Euclidean space), differential forms, and Stokes' Theorem for compact, oriented k-manifolds.
*Prerequisite: MATH 210 and MATH 215.*

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