The Computer Science curriculum is traditional, at least in the early courses. The first two courses in the major are taught in Java, which is an excellent language for introducing object-oriented concepts. 

The following list of courses represents current or recent course offerings. See the course catalog for updated information.

  • 54-144 Explorations in Computing
    This course is an introduction to the discipline of computer science with an emphasis on applications in the liberal arts. Topics include basic programming constructs, basic data structures, algorithmic computation, selection, iteration, interactive user interfaces, abstraction and reasoning about computer programs. This is an introductory course intended for humanities, social science and fine arts majors. May not be used for the Computer Science major or minor. Cannot be taken after successful completion of 54-184, 54-284, or 54-454 without departmental approval. (NS)
  • 54-184 Computer Science I
    This is the standard first course in computer programming in an object-oriented style. It is primarily intended for students pursuing a major or minor in computer science, mathematics or other disciplines in the natural sciences. Topics include primitive types and operations, assignment, conditional execution, iteration, arrays, classes, methods, recursion, encapsulation, type extension, inheritance and reasoning about programs. The course includes a laboratory component designed to explore applications and to enhance conceptualization. (Each semester) (NS)
  • 54-281 Colloquium in Computer Science in This Seminar-Style Course, Each Student Will Give a Lecture on a Topic in Computer Science N
    Presentation of one lecture and participation in discussions is required. This course may be repeated for credit, but may not be counted toward the major or minor. Must be taken Pass/D/F. Prerequisite: Prior or concurrent enrollment in Computer Science 54-284, and permission of the instructor.
  • 54-284 Computer Science II
    This course is a continuation of 54-184 Computer Science I, with an emphasis on abstract data objects such as lists, stacks, queues, trees and graphs, and test-first programming using the automated testing paradigm JUnit. Topics include algorithms for searching, sorting, traversing, inserting and deleting, and reasoning about these algorithms. The course includes a laboratory component designed to explore applications and to enhance conceptualization. Prerequisite: Computer Science 54-184 or permission of instructor. (Spring) (NS)
  • 54-291 Puzzling Programs
    Given a precise program specification and a few input/output examples, students will gain experience quickly devising a solution that passes a suite of unseen (and generally more complicated) input/output examples. Teamwork, troubleshooting code based on very limited feedback from automated systems, effectively reading problem descriptions, and discerning relevant details will be practiced. This course (or prior enrollment in this course) is required for students wishing to compete in the South Central USA Regional ACM Programming Contest. This course may be repeated for credit, but may not be counted towards the major or minor. Must be taken P/D/F. Prerequisite: Computer Science 54-184. (Fall)
  • 54-301 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-302 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-303 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-304 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-384 Discrete Mathematics
    This course investigates concepts fin the modeling of discrete phenomena. Topics include logic, structure of proof, set theory, combinatorics, graphs, induction and recurrence relations. Also Mathematics 52-384. Prerequisites: Mathematics 52-154, Computer Science 54-184, and either Mathematics 52-254 or Computer Science 54-284, or permission of instructor. (Fall) (NS)
  • 54-394 Computer Organization
    This course studies computer architecture, internal representation of data, assembly language programming, subroutines and parameter passing, design of machine language instruction sets, bus structure, digital logic, and support for parallelism. The course includes a laboratory component designed to explore applications and to enhance conceptualization. Prerequisite: Computer Science 54-284 or permission of instructor. (Fall) (NS)
  • 54-414 Operations Research
    Formulation and solution of problems with management, economics, engineering and science applications using modeling, optimization techniques, and simulation. Topics include linear and integer programming, simplex method, duality, sensitivity analysis, branch and bound algorithm, transportation and assignment problems, network optimization, and problem solving using optimization software. Also 52-414 and 30-414. Prerequisites: 52-154 (Calculus I) and either 30-474 (Finance) or 52-674 (Linear Algebra) or permission of the instructor.
  • 54-424 Artificial Intelligence
    This course studies the use of computer algorithms to emulate the cognitive and problem solving capabilities of humans. Topics include: search, optimization, reinforcement learning, evolutionary computation, statistical methods and (deep) neural networks. Prerequisite: Computer Science 54-284 or permission of instructor. (NS)
  • 54-454 Algorithms
    An introduction to the design and analysis of algorithms and their implementation in C++. Topics include: greedy, divide-and-conquer, dynamic programming, graph, and randomized algorithms; asymptotic analysis and computational tractability (e.g. NP-completeness); practical data structures (stacks, trees, queues, graphs, hash tables, heaps). (Spring) (NS)
  • 54-474 Programming Languages
    A study of the principles and practice in the design and implementation of imperative, functional, logic and object-oriented programming languages. Prerequisite: Computer Science 54-394 or permission of instructor. (Fall) (NS)
  • 54-514 Database Management
    A study of the logical and physical organization of data in conventional database systems. Topics include functional dependencies, normal forms, relational and other data models, indexing and concurrency control. Prerequisite: Computer Science 54-284 or permission of instructor. (NS)
  • 54-524 Introduction to Numerical Analysis
    See Mathematics 52-524. (NS)
  • 54-644 Computer Systems
    An introduction to operating systems and computer networks. Topics include process control, scheduling, threads, concurrency, memory management, virtual memory, network protocol layers, packets, routing and network security. Prerequisite: Computer Science 54-394. (Spring) (NS)
  • 54-844 Seminar in Special Topics
    A limited enrollment seminar not generally covered in other courses. This course may be repeated for credit as topics vary. (NS)
  • 54-894 Senior Seminar in Software Engineering
    Introduction to techniques and theories for the development of large software systems. This course will fulfill the capstone requirement in Computer Science. Topics include: software design and quality, ethics, professional issues, the study of current software engineering trends, theory and practice. Each student will contribute substantially to a major semester project, do at least one major individual presentation, and have significant class participation. Each student will take the Major Field Test. Prerequisite: Six courses in the major at the 300 level or above, and permission of instructor. Must have completed one of Computer Science 54-454, 54-514, or 54-474. (Spring) (NS) (WA)

The Mathematics curriculum is traditional, although many of the best practices for mathematics classrooms (technology, group projects, inquiry-based learning, writing mathematics, etc.) are being incorporated where appropriate to enhance the traditional topics.

The following list of courses represents current or recent course offerings. See the course catalog for updated information.

  • 52-104 Explorations in Mathematics
    This course presents the spirit and beauty of mathematics through topics chosen by the instructor, emphasizing the role that mathematics plays in society. Topics may include mathematics in art and literature, Euclid's Elements, game theory and voting theory. The mathematical content may include geometry, algebra, and number systems. The course is suitable for a general audience with a broad spectrum of backgrounds and abilities and also satisfies requirements for EC-6 or 4-8 teacher certification. This course may not be used for the Mathematics major or minor. (Fall, each year; and Spring, odd years) (NS)
  • 52-114 Introduction to Statistics
    This course provides students in the social and biological sciences with the skills necessary to perform elementary statistical analysis. Topics include descriptive measures, probability, sampling theory, random variables, binomial and normal distributions, estimation and hypothesis testing, analysis of variance, regression and correlation. This course may not be used for the Mathematics major or minor. (Each semester) (NS)
  • 52-124 Elementary Function Theory
    This course investigates relations, functions and general properties of functions. Some of the elementary functions considered are polynomials, rational functions, exponentials, logarithms and trigonometric functions. An objective of this course is to prepare students for Calculus I. This course may not be used for the Mathematics major or minor. (Fall) (NS)
  • 52-154 Calculus I
    This is a first course in single variable differential and integral calculus. Topics include limits, continuity, differentiation, integration, the Fundamental Theorem of Calculus, the method of substitution, and applications (e.g., optimization, related rates, consequences of the Mean Value Theorem). Prerequisite: Mastery of high school-level pre-calculus (algebra, trigonometry, exponential and logarithmic functions). (Each semester) (NS)
  • 52-204 Topics in Mathematics
    This course investigates a topic in Mathematics that varies according to the interests of professor. This course may be repeated with a change in the topic. (NS)
  • 52-254 Calculus II
    Topics include techniques of integration, applications of integration (e.g., volumes of solids of revolution, arc length, work), improper integrals, introductory differential equations, infinite series, power series, Taylor's Theorem, and polar coordinates. Prerequisite: Mathematics 52-154. (Each semester) (NS)
  • 52-291 Putnam Power Hour
    This course is designed to sharpen problem solving abilities. Students will tackle challenging problems from the William Lowell Putnam Competitions of previous years and study some of the published solutions. Students enrolled in this course will be encouraged to compete in the Putnam Competition in early December. This course may be repeated for credit, but may not be counted toward the major or minor, and must be taken P/D/F. Prerequisite: Consent of instructor.
  • 52-301 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 52-302 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 52-303 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 52-304 Selected Topics
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 52-354 Calculus III
    This is a course in multivariable calculus. Topics include vectors, vector-valued functions and functions of several variables, partial differentiation, multiple integration, applications of partial differentiation, applications of multiple integrals, line integrals, Green's Theorem, and surface integrals. Prerequisite: Mathematics 52-254. (Fall, every year; Spring, even years) (NS)
  • 52-384 Discrete Mathematics
    See Computer Science 54-384. (Fall) (NS)
  • 52-404 Geometry
    This course investigates various approaches to geometry. Topics may include synthetic geometry, analytic geometry, projective geometry, Euclidean geometry and non-Euclidean geometry. Prerequisite: Permission of instructor. (Fall, odd years) (NS)
  • 52-414 Operations Research
    See Computer Science 54-414 and Business 30-414.
  • 52-454 Math Methods in Physical Science II
    See Physics 53-454.
  • 52-524 Introduction to Numerical Analysis
    This course investigates the derivations and applications of numerical techniques most frequently used by scientists: interpolation, approximation, numerical differentiation and integration, zeroes of functions and solution of linear systems. It is cross-listed as Computer Science 54-524. Prerequisites: Mathematics 52-254, 52-674, and Computer Science 54-184, or permission of instructor. (NS)
  • 52-574 Probability and Mathematical Statistics
    This course is a calculus-based, mathematical introduction to the fundamental principles of probability theory and applications. Topics include combinatorial analysis used in computing probabilities, the axioms and properties of probability, conditional probability, independence of events, discrete and continuous random variables, the standard distributions, expected value and variance, joint distributions, distributions of a function of a random variable, and sampling distributions. Also included are theoretical results such as Bayes Theorem, Central Limit Theorem, Law of Large Numbers, the Empirical Rule, Hypothesis Testing and Confidence intervals at least for a single mean and a single proportion . Prerequisite: Mathematics 52-254. (Spring) (NS)
  • 52-674 Linear Algebra
    This course is an introduction to the basic structure of proofs, linear equations and matrices, vector spaces, linear mappings, determinants, quadratic forms, vector products and groups of symmetries. Prerequisite: Mathematics 52-154 and one approved MAT or CSC course at the 200-level or above, or permission of instructor. (Each semester) (NS)
  • 52-684 Algebraic Structures
    This course investigates the theory of sets, relations, functions, groups and rings. A rigorous approach to learning and writing proofs is emphasized. Prerequisite: Mathematics 52-674 or permission of instructor. (Fall) (NS)
  • 52-754 Differential Equations
    This course investigates the theory and application of differential equations. Topics include both linear and nonlinear first order ordinary differential equations, numerical solutions, and higher order linear ordinary differential equations. Solution techniques may include undetermined coefficients, variation of parameters, power series solutions, and Laplace transforms. Additional topics may be chosen from linear systems, nonlinear systems and Fourier series analysis of partial differential equations with boundary conditions. Prerequisite: Mathematics 52-354, or permission of instructor. (Spring) (NS)
  • 52-834 Complex Analysis
    This course investigates the algebra and geometry of complex numbers. Topics include analytic and harmonic functions, series, contour integration, conformal maps and transformations. Prerequisite: Mathematics 52-354 or permission of instructor. (Fall, even years) (NS)
  • 52-844 Seminar in Special Topics
    This course is a limited enrollment seminar in a major area of mathematics not generally covered in other courses. Topics may include but are not limited to advanced analysis, combinatorics, logic and history of mathematics. The course may be repeated for credit as topics vary. (NS)
  • 52-854 Real Analysis
    This course investigates the algebra and topology of the real numbers. Topics include completeness, sequences, limits and continuity, differentiation, the Mean-Value Theorem, Taylors Theorem and infinite series. May also include sequences and series of functions. A rigorous approach to learning and writing proofs is emphasized. Prerequisite: Mathematics 52-674, or permission of instructor. (Fall) (NS)
  • 52-874 Seminar in Advanced Topics
    This course is intended to provide additional depth in one of the core subject areas offered in the department. It primarily serves as a second-semester course in algebraic structures, differential equations, or real analysis. The course may be repeated for credit as topics vary. Prerequisite: Permission of instructor. (NS)
  • 52-894 Senior Seminar in Mathematical Modeling
    This course will fulfill the capstone requirement in Mathematics. Since it serves as a culmination of the student's undergraduate mathematical experience, a balance is sought between application and theory. Topics may include optimization methods with sensitivity analysis, numerical and analytic methods, linear and non-linear differential and difference equations, curve and surface fitting, statistics, and stochastic methods. Topics may vary with the instructor. Applications will be taken from the social and natural sciences. Collaboration and significant class participation are expected. Each student will take the Major Field Test. A major semester project resulting in a written paper and an oral presentation is required from each student; an external presentation may also be required. Prerequisites: Six courses in the major at the 300 level or above, Computer Science 54-184, and permission of instructor. Must have completed one of MAT52-574, MAT52-674, or MAT52-754. (Fall) (NS) (WA) (WA)