Mathematics and Computer Science
Search to Grinnell College Frontdoor  
Logo Picture
College Catalog
General Provisions
Organization of the Curriculum
Department of Mathematics and Computer Science
Mathematics and Computer Science

Member of the Division of Science

A. Royce Wolf, Chair, Arnold Adelberg, Marc Chamberland, Christopher French, Benjamin Gum, Eugene Herman, Charles Jepsen, Keri Kornelson, Shonda Kuiper, Emily Moore, Thomas Moore, Samuel Rebelsky, David Romano, Karen Shuman, Nikolay Silkin, John Stone, Henry Walker.

Study of the mathematical sciences develops logical thinking and quantitative ability; mathematical skills in rigorous deductive analysis and in the use of data are germane to many disciplines. The curriculum of the department is divided into two basic parts: mathematics and computer science. Each provides a combination of fundamental theory and widely applicable material of interest to all students of liberal arts. The curriculum further prepares majors who plan careers in pure or applied mathematics, probability and statistics, or computer science, in the natural or social sciences, in teaching, or in other professions.

Mathematics

Depending on their background and interests, students may enter the study of mathematics at different points. Those with good preparation normally start in 131, while those with less preparation may start in 123, and those with advanced standing in 133 or 215. Thereafter, the student's intellectual curiosity, interests, and abilities and the needs of various disciplines determine the particular mathematics courses selected. Several courses make use of the department's network of workstations for graphics, computation, data analysis, and numeric experimentation.

Mathematics majors pursue many interests. All are encouraged to study in depth at least one field, such as physics or economics, in which mathematics is applied extensively. Some enjoy working on challenging problems, such as those presented in the Putnam Examination or the Mathematical Contest in Modeling, both of which are national mathematics competitions; many present talks to the Math Journal Club. Visiting lecturers extend the curriculum beyond the classroom, as do opportunities for students to do summer research in mathematics.

The Mathematics Major

A minimum of 32 credits in mathematics and computer science. Required are at least four courses in mathematics at the 300-400 level, including Math 316 and 321 (the "Foundations" courses) and at least one of the year sequences: Math 321-324, 321-326, 316-331, 316-338, 335-336. Courses numbered below 123 do not satisfy major requirements.

Strongly recommended: A working knowledge of a modern computer programming language; coursework in another department in which mathematics or statistics is used in a substantial way; and (for students considering graduate work) a reading knowledge of French, German, or Russian.

To be considered for honors in mathematics, graduating seniors, in addition to meeting the College's general requirements for honors, must demonstate excellence in the major. The department applies the following criteria:

  • Completion of two disjoint full-year upper-division sequences in mathematics.
  • Participation in local activities related to mathematics, judged to be excellent by members of the department. Such activities might include completing the Senior Seminar, giving Math/CS Journal Club talks, actively participating in the Problem-Solving Seminar, doing independent projects in mathematics, or carrying out summer research under the direction of members of the department.
  • Performance in the study or use of mathematics, judged to be excellent by mathematicians outside the department. Evidence of such performance might include an outstanding score in the Putnam Competition or the Iowa Mathematics Competition, a score at or above the 75th percentile on the Graduate Record Examination in Mathematics, an award in the Mathematical Competition in Modeling, a prize-winning or refereed talk at a mathematical conference or colloquium, a paper accepted by a refereed mathematical journal, or summer research conducted elsewhere.

Up to 8 credits can be earned for any combination of Math 123, 124, 131, subject to the following constraints:

1. Upon successful completion (grade C or better) of either Math 124 or Math 131, no further credits may be earned in any of these three courses.

2. If a student completes all three of Math 123, 124, and 131, the student's credit is cancelled in the first of these courses in which the student earned a grade of F or D. Also, the grade for that course will no longer be counted in computing the student's GPA.



115 Introduction to Statistics (Fall or Spring) 4 credits

Also listed as Social Studies 115. Introduces the notions of variability and uncertainty and such common statistical concepts as point and interval estimation and hypothesis testing. Data-oriented, with real-world examples chosen from the social and biological sciences. The computer is used for data analysis and to illustrate probabilistic and statistical concepts. Prerequisites: two years of high school algebra and second semester of first-year standing, or permission of instructor. STAFF.

123 Functions and Differential Calculus (Fall) 4 credits

An introductory course in mathematics and the first in a two-course sequence. This first semester is an introduction to the differential calculus of functions of one variable with an extensive review of precalculus topics such as algebra and functions. This review, together with an emphasis on developing problem-solving skills, is designed to help students learn to do mathematics at the college level. Mathematics 123-124 has the same calculus content as Mathematics 131. Prerequisite: two years of high school algebra. KORNELSON, WOLF.

124 Functions and Integral Calculus (Spring) 4 credits
A continuation of Mathematics 123. An introduction to the integral calculus of functions of one variable. Topics include the definite integral, techniques of integration, and applications of the integral. Successful completion of this course prepares students for Mathematics 133. Prerequisite: Mathematics 123. KORNELSON.

131 Calculus I (Fall or Spring) 4 credits

The normal first course in mathematics and the first in a two-course sequence. An introduction to the differential and integral calculus of functions of one variable. Also introduces a few concepts and methods of differential equations. Prerequisites: good preparation, including trigonometry, or departmental placement. STAFF.

133 Calculus II (Fall or Spring) 4 credits

A continuation of Mathematics 131. Topics include functions of more than one variable: partial and total derivatives, multiple integrals, vector-valued functions, parametrized curves, and applications to differential equations. Prerequisite: Mathematics 124 or 131. STAFF.

209 Applied Statistics (Spring) 4 credits+

The course covers the application of basic statistical methods such as univariate graphics and summary statistics, basic statistical inference for one and two samples, linear regression (simple and multiple), one- and two-way ANOVA, and categorical data analysis. Students use statistical software to analyze data and conduct simulations. A student who takes Mathematics 209 cannot receive credit for Mathematics 115. Prerequisite: Mathematics 133. STAFF.

215 Linear Algebra (Fall or Spring) 4 credits+

A unified study of the concepts underlying linear systems and linear transformations and of the techniques for using them. Topics: matrix algebra, rank, orthogonality, vector spaces and dimension, eigenvectors and eigenvalues. Typical applications: fitting lines and curves to data, Markov processes, linear differential equations. Prerequisite: Mathematics 133. STAFF

218 Combinatorics (Fall or Spring) 4 credits+

An introduction to the basic objects, numbers, and techniques of combinatorics. Includes combinations, permutations, partitions, and graphs; binomial and other coefficients; inclusion-exclusion, recurrence relations, and generating functions and series. Prerequisite: Mathematics 215. FRENCH, E. MOORE.

220 Differential Equations (Fall or Spring) 4 credits+

First and second order differential equations; series solutions and Fourier series; linear and nonlinear systems of differential equations; applications. Prerequisite: Mathematics 215. CHAMBERLAND, WOLF.

271 Problem-Solving Seminar (Fall) 1 credit

Students solve challenging mathematics problems and present solutions. Prepares students to take the Putnam Examination, if they wish. Prerequisite: Mathematics 133 or concurrent registration in Mathematics 133 or permission of instructor. May be repeated for credit. S/D/F only. STAFF.

306 Mathematical Modeling* (Spring) 4 credits+

An introduction to the process and techniques of modeling "real-world" situations, using topics from linear algebra and differential equations. Appropriate mathematics, including numerical methods, developed when needed. Models drawn from both the social and natural sciences. Prerequisite: Mathematics 220 or permission of instructor. CHAMBERLAND.

309 Design and Analysis of Experiments (Spring) 4 credits+

In addition to a short review of hypothesis testing, confidence intervals, and 1-way ANOVA, this course incorporates experiments from several disciplines to explore design and analysis techniques. Topics include factorial designs, block designs (including latin square and split plot designs), random, fixed and mixed effects models, crossed and nested factors, contrasts, checking assumptions and proper analysis when assumptions are not met. Prerequisites: Mathematics 209, Mathematics 336, or permission of instructor. KUIPER, MOORE.

314 Topics in Applied Mathematics* (Spring) 4 credits+

Topics include , but are not limited to, one of the following: Chaos and Fractals (one- and two-dimensional discrete dynamics, iterated function systems, fractal dimension), Fourier Analysis (fast Fourier transform, Fourier series, wavelets), or Partial Differential Equations (heat and wave equation, eigenfunction expansions). May be repeated for credit. Prerequisite: Mathematics 220. STAFF.

316 Foundations of Analysis (Spring) 4 credits+

A thorough study of the topology of the real line and of limits of functions of one real variable. This theory is then used to develop the theory of the derivative and integral of functions of one real variable and also sequences and series of real numbers and functions. Prerequisite: Mathematics 218 or 220. SHUMAN.

321 Foundations of Abstract Algebra (Fall) 4 credits+

The study of algebraic structures, with emphasis on formal systems such as groups, rings, and fields. Prerequisite: Mathematics 218 or 220. E. MOORE, WOLF.

324 Number Theory* (Spring) 4 credits+

The primary subject matter of this course is elementary number theory from an algebraic viewpoint. Topics include congruencies, quadratic reciprocity, sums of powers and Diophantine analysis. An introduction to algebraic number theory, emphasizing algebraic integers and unique factorization, is included. Prerequisite: Mathematics 321. WOLF.

326 Field Theory* (Spring) 4 credits+

The study of fields, including such topics as vector spaces and canonical forms, algebraic extensions, finite and cyclotomic fields, geometric constructions and Galois Theory. Prerequisite: Mathematics 321. STAFF.

331 Topology* (Fall) 4 credits+

General and/or metric topology. Fundamental theorems on continuous mappings and on compact and connected sets. Particular emphasis on the real line and Euclidean n-space. Prerequisite: Mathematics 316. STAFF.

335 Probability and Statistics I (Fall) 4 credits+

An introduction to the mathematical theory of probability and statistical inference. Discrete and continuous distributions will be considered. The limit theorems of probability, including the Law of Large Numbers and the Central Limit Theorem, will be introduced. Prerequisites: Mathematics 215 and any of 209, 218, or 220. STAFF.

336 Probability and Statistics II (Spring) 4 credits+ A systematic treatment of mathematical statistics based on probability theory. Topics will include: principles of estimation and hypothesis testing, regression, sampling distributions, decision theory and nonparametric inference. Applications will be given. Prerequisite: Mathematics 335. STAFF.

338 Complex Analysis* (Fall) 4 credits+

Theory of analytic functions of a complex variable, based on a preliminary study of the complex number system. Prerequisite: Mathematics 316 or permission of instructor. CHAMBERLAND.

341 Automata, Formal Languages, and Computational Complexity (Spring) 4 credits+

See Computer Science 341.

444 Senior Seminar (Spring) 4 credits+

Advanced course varying content. typically with a geometric emphasis. Strongly recommended for students considering further work in mathematics. Requires independent work. Prerequisites: Mathematics 316 and 321. May be repeated for credit. KORNELSON.

*Not offered every year.

Computer Science

Many courses throughout the College touch upon various aspects of computing, and the computer is used as an important research tool in a great number of academic disciplines.

Formal coursework is concentrated within the Department of Mathematics and Computer Science, and students with good problem-solving skills normally start in 151. Students with less preparation start in 103, while students interested in a general overview of computer science take 105. After consultation with the department, students with advanced preparation might start in 153 or a higher level course. The curriculum combines a strong emphasis on basic concepts and fundamental techniques with laboratory work and experimentation. Considerable use is made of the department's Local Area Network (LAN), which includes more than 70 workstations.

The computer science major includes a careful study of the principal areas of computer science as well as important mathematical topics that are central to the discipline of computing. Students regularly supplement this formal coursework with independent projects and internships. In addition, students often work with faculty throughout the College on a wide variety of special projects that involve computing.

The Computer Science Major

A minimum of 32 credits (at least 28 in Computer Science and at least four in Mathematics). Required are Mathematics 218, one of Computer Science 152, or 153, 201, one of Computer Science 211 or 213, one of Computer Science 223 or 362, and Computer Science 301, 302, and 341. Computer Science courses numbered below 151 do not satisfy major requirements.

All majors are encouraged to take statistics (Mathematics 209 or 335-336), Physics 220, and a course in technology and society (such as a foundation course in Technology Studies). Students considering graduate school in computer science should take both Computer Science 211 and 213. Students planning to work in industry should take Computer Science 223 together with coursework in another discipline that uses computing in a significant way. Students considering a career in computing are encouraged to participate in an independent project, internship, or research experience.

In applying the College's limit of 48 credits within one department that students may count toward graduation, up to 12 credits of mathematics will be exempted for students majoring in computer science. Double majors in the two disciplines are not allowed.

To be considered for honors in computer science, graduating seniors, in addition to meeting the College's general requirements for honors, must demonstrate excellence in the major. The department applies the following criteria:

A. Completion of Computer Science 211 and 213, and a 300-level course in mathematics or computer science that is not used to fulfill another requirement.

B. Participation in local activities related to computer science, judged to be excellent by members of the department. Such activities might include giving Math/CS Journal Club talks, doing independent projects in computer science, carrying out summer research under the direction of members of the department, or developing a successful software package.

c. Performance in the study or use of computer science, judged to be excellent by computer scientists outside the department. Evidence of such performance might include a score at or above the 75th percentile on the Graduate Record Examination in Computer Science, an award in the Mathematical Competition in Modeling, a prize-winning or refereed talk at a computer science conference or colloquium, a paper accepted by a refereed computer science journal, summer research conducted elsewhere, or development of a successful software package (assessed by outside referees or evaluators).

105 An Algorithmic and Social Overview of Computer Science (Spring) 4 credits

A study of core topics and great ideas in the field of computer science, focusing on underlying algorithmic principles and social implications. Topics may include multimedia and hypermedia, networks, architecture, programming languages, software design, artificial intelligence, databases, cryptography, and the theory of computing. Incudes formal laboratory work. Prerequisites: None. WALKER.

151 Fundamentals of Computer Science I (Fall or Spring) 4 credits

A lab-based introduction to basic ideas of computer science, including recursion, abstraction, state, information-hiding, and the design and analysis of algorithms. Includes introductory programming in a high-level, functional language. Prerequisites: None. STAFF.

152 Fundamentals of Computer Science II (Fall or Spring) 4 credits

Builds upon Computer Science 151 to study object-oriented problem-solving, the design and analysis of common algorithms, fundamental abstract data types and data structures, and elements of testing and verification. Also provides an overview of the field of computer science. Includes team projects and formal laboratory work. Prerequisite: Computer Science 151. STAFF.

153 Computer Science Fundamentals (Spring) 4 credits

Study of basic concepts of computer science, with an emphasis on problem-solving techniques from functional and object-oriented perspectives. Functional elements include data types, procedures as first-class objects, recursion, and binding. Classes, objects, and methods are introduced as basic elements of object-oriented problem-solving. Examples of core data types and classes include stacks, queues, priority queues, trees, and lists. Additional topics include the representation of data and some elements of algorithm analysis. Includes formal laboratory work. A student who receives credit for Computer Science 153 cannot receive credit for Computer Science 151 or 152. Prerequisite: Three semesters of high school computer science or departmental placement. STAFF.

201 Memory Management, Data Representation, and Formal Methods (Spring) 4 credits

Study of machine-level representations of data and techniques for managing storage, using formal methods of program design and a low- or mid-level programming language, such as C. Topics include Boolean logic and proof, language semantics, assertions and invariants, numerical approximations and errors, pointers, memory allocation and deallocation, and the run-time stack. Prerequisites: Computer Science 152, 153, or Computer Science 151 and additional programming experience in an imperative language, or permission of the instructor. STAFF.

205 Computational Linguistics* (Fall) 4 credits+

An examination of computational techniques for producing and processing text in natural languages and an introduction to the theoretical basis for those techniques, both in linguistics and in computer science. Topics include generative grammars, parsing, algorithms for automatic indexing, information retrieval, and natural-language interfaces. Prerequisites: Introduction to General Linguistics 114 and Computer Science 151 or 153. J. STONE.

211 Computer Organization and Architecture* (Fall) 4 credits+

Study of both traditional and alternative computer architectures. Introduction to digital logic, microcode, Von Neumann architectures, data representations, fetch/execute model, RISC/CISC, instruction formats and addressing, machine and assembly language, memory architecture and algorithms, I/O architecture, and elements of distributed systems. Includes formal laboratory work. Prerequisite: Computer Science 201 or permission of the instructor. STAFF.

213 Operating Systems and Parallel Algorithms* (Fall) 4 credits+

Study of the principal components of typical operating systems and an introduction to parallel algorithms. Topics from operating systems: storage management, scheduling, concurrent processing, synchronization, data protection, and security. Discussion of models of parallelism and algorithms for problems in such areas as lists, trees, searching, sorting, graphs, geometry, and strings. Includes formal laboratory work. Prerequisite: Computer Science 201 or permission of the instructor. STAFF.

223 Software Design (Fall) 4 credits+

Study of software life cycle and its consequences. Consideration of various algorithms with an emphasis on strategies that can be applied. Emphasis on design, coding, testing, and documenting of large software packages through work on a large project. Prerequisite: Computer Science 152 or 153. STAFF.

261 Artificial Intelligence* (Fall) 4 credits+

An introduction to current principles, approaches, and applications of artificial intelligence, with an emphasis on problem-solving methods, knowledge representation, reasoning with uncertainty, and heuristic search. Study of a range of AI approaches, such as rule-based systems, neural networks, and systems for machine learning. Review of several applications areas such as game playing, natural language processing, robotics, theorem proving, and perception. Prerequisite: Computer Science 152 or 153. STAFF.

301 Algorithms (Fall) 4 credits+

Study of structures used to organize data and of the algorithms used to manipulate these structures. Assignments to implement data structures and to use them in computer science and other applications programs. Emphasis on mathematical principles behind the data structures. Prerequisites: Computer Science 152 or 153 and Mathematics 218. STAFF.

302 Programming Language Concepts (Spring) 4 credits+

Description and analysis of key issues in the design, syntax, semantics, and implementation of programming languages, with examples from several high-level languages, illustrating important paradigms (functional, object-oriented, imperative, declarative). Additional topics may include denotational semantics, type-inference algorithms, program verification, and the lambda calculus. Computer Science 301. STAFF.

341 Automata, Formal Languages, and Computational Complexity (Spring) 4 credits+

Also listed as Mathematics 341. A formal study of computational devices, their related languages, and the possibility and difficulty of computations. Examples are pushdown automata and Turing machines, context-free languages and recursively enumerable sets, and the halting problem and NP-completeness. Prerequisites: Computer Science 152 or 153 and Mathematics 218. STAFF.

362 Compilers (Spring) 4 credits+

Study of traditional and modern techniques for implementation of high-level languages, through either interpretation or translation to low-level languages. Topics include formalisms for describing syntax and semantics of languages, theory of parsing, regular expressions, intermediate languages, and optimization. Students construct interpreters or compilers for high-level languages. Includes formal laboratory work. Prerequisite: Computer Science 201 or permission of the instructor. STAFF.

364 Computer Networks* (Spring) 4 credits+

This course focuses on the communications protocols used in computer networks: their functionality, specification, verification, implementation, and performance. The course also considers the use of network architectures and protocol hierarchies to provide more complex services. Existing protocols and architectures are used as the basis of discussion and study. Includes formal laboratory work. Prerequisite: Computer Science 201 or permission of the instructor. STAFF.

*Not offered every year.


  Academics Admission Alumni Athletics Calendar Catalog Comment Directory Library Offices Students ITS  
Error processing SSI file