# Mathematics and Computer Science

### Division of Natural Sciences and Mathematics

Austin A. Lobo, Chair

Eugene Hamilton

Matthew Kibler

Shaun Ramsey

Heather M. Russell

Nathaniel Schwartz

The Mathematics and Computer Science Department’s curriculum gives students technical knowledge along with a broad foundation of reasoning and analytical skills that can be applied to many fields. Graduates can pursue graduate work in computer science or mathematics, teach in secondary schools, work as professionals in government and industry, or use quantitative and computing techniques in the natural sciences or social sciences. All students must master the relevant basic mechanical concepts necessary to perform the fundamental operations related to mathematics or computer programming. The learning environment places emphasis on reasoning and problem-solving and communications skills. Students are required to make oral presentations in classes and at seminars and to write detailed papers and reports for regular classes and for their Senior Capstone projects.

#### Freshman/Sophomore Courses

Provided they have the necessary prerequisites, students planning to take one quantitative course for distribution credit may take any course in this department; students planning to take two quantitative courses may take any combination of two courses in mathematics and/or computer science.

In mathematics, the calculus sequence of MAT 201, MAT 202, and MAT 203 is the gateway to the major; the analogous sequence for computer science consists of CSI 201, CSI 202, and CSI 203. Prospective majors should begin course work in these sequences in their first semester at the College.

The Department strongly advises students not to take a course unless they received a grade of C or better in the prerequisite course.

#### The Major in Mathematics

Normally a student with good preparation in mathematics who intends to major in mathematics or one of the natural sciences will start in the calculus sequence with MAT 201, but a student who has had some work in calculus or who has received advanced placement credit for calculus may start with a more advanced course, and is encouraged to consult with the department chair to make such arrangements.

Mathematics majors are eligible for the teacher education program. In order to assure proper scheduling, students wishing to become certified to teach mathematics should inform the chairs of both the Mathematics and Education Departments as soon as possible.

The major in mathematics consists of the senior capstone plus a minimum of eleven courses: three gateway courses, two theory courses, and six electives:

Three Gateway Courses:

MAT 201 Differential Calculus

MAT 202 Integral Calculus

MAT 203 Multivariable Calculus

A Minimum of Two Theory Courses from:

MAT 311 Real Analysis I

MAT 312 Real Analysis II

MAT 322 Abstract Algebra

MAT 325 Vector Spaces

Six Electives Chosen From:

MAT 240 Discrete Mathematics

MAT 316 Complex Analysis

MAT 318 Probability

MAT 327 Number Theory

MAT 330 Foundations of Geometry

MAT 340 Numerical Analysis

MAT 345 Differential Equations

MAT 294, 394, 494 Special Topics in Mathematics

Any of MAT 311, MAT 312, MAT 322, MAT 325 that was not counted as a theory course.

CSI 201 Computer Science I

CSI 202 Computer Science II

CSI 350 Theory of Computation

CSI 370 Analysis of Algorithms

CSI 380 Organization of Programming Languages

#### The Minor in Mathematics

The minor in mathematics consists of MAT 201, MAT 202, MAT 203, and any four other courses that count for the major. However, at least one of these must be a theory course from the list above.

#### The Major in Computer Science

Typically, a student with good background preparation who intends to major in computer science will start in the computer science sequence with CSI 201. However, a student who has received advanced placement credit for computer science may start at a higher level and is encouraged to consult with the department chair to make such arrangements.

The major in computer science consists of the senior capstone plus a minimum of twelve courses: six core courses, four theory and systems courses, and two electives.

Six Core Courses:

MAT 201. Differential Calculus

CSI 201. Computer Science I

CSI 202. Computer Science II

CSI 203. Object Oriented Programming

CSI 240. Discrete Mathematics (cross-listed as MAT 240)

CSI 250. Introduction to Computer Organization and Architecture

Four Theory and Systems Courses:

CSI 350. Theory of Computation

CSI 360. Database Systems

CSI 370. Design and Analysis of Algorithms

CSI 480. Software Engineering

Two Electives Chosen From:

CSI 340. Numerical Analysis

CSI 380. Organization of Programming Languages

CSI 394. Special Topics in Computing

CSI 450. Operating Systems

CSI 460. Artificial Intelligence

CSI 470. Computer Networks

CSI 494. Special Topics in Computing

#### The Minor in Computer Science

The minor in computer science consists of MAT 201, CSI 201, CSI 202, CSI 203, CSI 250, and any two of the following: CSI 240, CSI 340, CSI 350, CSI 360, CSI 370, CSI 380, CSI 394, CSI 450, CSI 460, CSI 470, CSI 480, CSI 494.

#### Mathematics Course Descriptions

**MAT 109. Statistics**

Introduction to the appropriate methods for analyzing data and designing experiments. After a study of various measures of central tendency and dispersion, the course develops the basic principles of testing hypotheses, estimating parameters, and reaching decisions.

**MAT 110. Precalculus Mathematics**

The objective of this course is to prepare students to undertake Mathematics 201. Topics studied will include a review of algebra, properties of transcendental functions including trigonometry, and elementary analytic geometry. Prerequisite: permission of the department. Students who have successfully completed a calculus course or who have received advanced placement credit for calculus may not enroll in this course.

**MAT 120. Chaos and Fractals**

This course is an introduction to the rapidly developing science of complexity. It is a discussion of the tools—fractals, chaos, and self-organization—being refined for the purpose of understanding such things as the fractured and irregular structures of Nature, surprise and unpredictability, and the emergence of lifelike properties from inanimate matter. The theme of the course is that complexity can arise from simple origins, such as the repeated application of elementary processing rules. The course emphasizes the use of the computer for visualization. Practical application of these ideas in medicine and engineering will be discussed, as will examples of the connections between complexity in the sciences and that in the humanities and the arts.

**MAT 135. Finite Mathematics**

Linear programming, matrices, sets and counting, Markov process, difference equations, and graphs. The course will emphasize developing, analyzing, and interpreting mathematical models.

**MAT 201. Differential Calculus**

Analytic geometry, the derivative and differential, elementary functions, limits, continuity, and applications.

**MAT 202. Integral Calculus**

The indefinite integral, the definite integral, the fundamental theorem of the integral calculus, sequences, series, and applications. Prerequisite: Mathematics 201 or permission of the instructor.

**MAT 203. Multivariable Calculus**

Vectors, partial derivatives, and multiple integrals for functions of several variables. Line and surface integrals. Prerequisite: Mathematics 202 or permission of the instructor.

**MAT 221. Communication, Patterns, and Inventions in Mathematics**

This course is designed for students in the Elementary Education Certification Program and for students planning to complete the Secondary Education Certification Program in an area other than mathematics. The framework of the course consists of four themes: Number Systems and their Operations, Algebra and Functions, Geometry and Measurement, Data Analysis, Statistics, and Probability. Emphasis throughout is on reasoning and problem solving using concepts and procedures from all four areas. Substantial amounts of both reading and writing will be required and students will be expected to demonstrate both orally and in writing a thorough understanding of the concepts and the ability to communicate this understanding to others.

**MAT 240. Discrete Mathematics (cross-listed as CSI 240 )**

An introduction to logic, reasoning, and the discrete mathematical structures that are important in computer science. Topics include proposition logic, types of proof, induction and recursion, sets, combinatorics, functions, relations, and graphs.

**MAT 311, MAT 312. Real Analysis I and II**

A rigorous treatment of calculus. Topics include limits, continuity, sequences and series, differentiation and integration, compactness, completeness, and calculus of several variables. Prerequisite: Mathematics 202 and at least one of Mathematics 322, Mathematics 325, Mathematics 327, or Mathematics 330, or permission of the instructor.

**MAT 316. Complex Analysis**

Theory of functions of a complex variable, including applications to problems in the theory of functions of a real variable. Cauchy’s Integral Formula and its application to the calculus of residues. Prerequisite: Mathematics 203 or permission of the instructor.

**MAT 318. Probability**

Events and their probabilities, dependence and independence. Bayes Theorem. Variates and expected values. Theorems of Bernoulli and De Moivre. Special distributions. Central limit theorem and applications. Prerequisite: Mathematics 202 or permission of the instructor.

**MAT 322. Introduction to Abstract Algebra**

Introduction to groups, rings, and fields. Other topics may include integral domains, polynomial rings, and extension fields. Prerequisite: Mathematics 202.

**MAT 325. Vector Spaces**

Axiomatic treatment of vector spaces. Adjoint spaces. Linear transformations. Elementary spectral theory. Proof of the Cayley-Hamilton Theorem. Prerequisite: Mathematics 202.

**MAT 327. Theory of Numbers**

Factorization of integers. Congruences and residue classes. Theorems of Euler, Fermat, Wilson, and Gauss. Primitive roots. Quadratic residues and the reciprocity theorem. Prerequisite: Mathematics 202.

**MAT 330. Foundations of Geometry**

A critical study of the basic concepts of geometry. This course begins with an axiomatic approach to Euclidean geometry which includes careful proofs of its principal theorems. The course will continue with an examination of various types of non-Euclidean geometries which may include spherical geometry, projective geometry, and/or hyperbolic geometry. Prerequisite: Mathematics 202.

**MAT 340. Numerical Analysis (cross-listed as CSI 340)**

Solution of equations and systems of equations by iteration and elimination, numerical differentiation and integration, assessment of accuracy, methods of interpolation and extrapolation. Prerequisite: Mathematics 203 or permission of the instructor.

**MAT 345. Differential Equations**

Elementary methods for the solution of ordinary differential equations, including the expansion of the solution in an infinite series. Prerequisite: Mathematics 203 or permission of the instructor.

**MAT 194, MAT 294, MAT 394, MAT 494. Special Topics in Mathematics**

Study of an area of mathematics not covered in other courses. Students are urged to suggest possible topics to the department as their interests and needs develop. Prerequisite: Permission of the instructor.

**MAT 190, MAT 290, MAT 390, MAT 490. Internship**

**MAT 195, MAT 295, MAT 395, MAT 495. On-campus Research**

**MAT 196, MAT 296, MAT 396, MAT 496. Off-campus Research**

**MAT 197, MAT 297, MAT 397, MAT 497. Independent Study**

**MAT SCE. Senior Capstone Experience**

The Senior Capstone Experience in mathematics consists of two components:

a senior thesis and oral presentation AND

the solution and oral presentation of six approved problems or equivalent.

Each major will research and write a senior thesis with the supervision of a faculty member and will make an oral presentation on the thesis at a departmental seminar. Each major should have a thesis topic selected and approved by the end of his/her junior year. The senior capstone in mathematics will be graded Pass, Fail, or Honors.

Capstone problems may be selected from a departmental list of approved problems or from current issues of the following journals: Mathematics Magazine, The American Mathematical Monthly, The College Mathematics Journal, Math Horizons, The AMATYC Review, SIAM Review, Journal of Recreational Mathematics, and School Science and Mathematics. Students may also earn credit for problems solved while participating in teams in the annual ACM Programming Contest or the COMAP Mathematical Contest in Modeling. A maximum of three such problems may be credited toward the six required capstone problems. The department strongly recommends that each major complete at least two capstone problems by the end of his/her junior year. Capstone problem credit may also be earned for the oral presentation of the review of an approved scholarly paper in Mathematics. Papers may be chosen from the journals mentioned above as well as from other sources after consultation with a faculty member from the department.

Weekly seminars of the majors and faculty in the department are scheduled to provide information about careers, graduate school, thesis topics, and research areas, as well as to enable each major to make presentations of problem solutions and to make the required presentation on the thesis. All mathematics majors are enrolled in the seminar and will receive a pass/fail grade at the end of the semester.

The Senior Capstone Experience in mathematics is graded as Pass, Fail, or Honors.

#### Computer Science Course Descriptions

**CSI 100. Basics of Computing**

The course introduces students to a wide range of topics in computer science. The material covered includes such important concepts as algorithms, hardware design, computer organization, system software, language models, programming, artificial intelligence, and social issues of computing. Students will gain a fundamental understanding and proficiency in programming with Java/JavaScript, Hypertext Markup Language (HTML), and Visual Basic. Students will become proficient in the use of 1) e-mail, 2) computer virus protection, 3) File Transfer Protocols, and 4) the following applications of Microsoft Office: MS Excel, MS Word, MS FrontPage, Windows Messenger, and MS PowerPoint.

**CSI 201. Computer Science I**

The objectives of this course are threefold: (a) to introduce problem-solving methods and algorithmic development; (b) to teach an object-oriented programming language; and c) to teach how to design, code, debug, and document programs in an object oriented environment using techniques of good programming style.

**CSI 202. Computer Science II**

The objectives of this course are twofold: (a) to study data structures, such as stacks, queues, trees, dictionaries, tables, and graphs, their efficiency, and their use in solving computational problems; and (b) to gain proficiency in an object-oriented programming language. Exercises in that language will provide an opportunity to design and implement the data structures. Prerequisite: Computer Science 201 and Mathematics 201 or permission of the instructor.

**CSI 203. Object Oriented Programming**

This course gives a deep understanding of object-oriented programming, and the design and coding of applications programs using Java. The use of Java for graphics and graphical user interfaces, multithreading, connectivity with databases and across networks will be covered. Students will be required to design and write a large application for a final course project that incorporates GUIs and a selection of the principles taught. Prerequisite: Computer Science 202 and Mathematics 201.

**CSI 240. Discrete Mathematics (cross-listed as MAT 240)**

An introduction to logic, reasoning, and the discrete mathematical structures that are important in computer science. Topics include proposition logic, types of proof, induction and recursion, sets, combinatorics, functions, relations, and graphs.

**CSI 250. Introduction to Computer Organization and Architecture**

Principles of computer organization and architecture are introduced, including interfacing and communication, register and memory organization, digital logic, representation of data, and introduction to assembly language. Prerequisite: Computer Science 202 and Mathematics 201.

**CSI 340. Numerical Analysis (cross-listed as MAT 340)**

Solution of equations and systems of equations by iteration and elimination, numerical differentiation and integration, assessment of accuracy, methods of interpolation and extrapolation. Prerequisite: Mathematics 203 or permission of the instructor.

**CSI 350. Theory of Computation**

Formal models of computation such as finite state automata, pushdown automata, and Turing machines will be studied along with corresponding formal languages, e.g., regular languages and context-free languages. Uncomputability, including the halting problem, and computational complexity including the classes P and NP and NP-completeness will be studied. Prerequisite: Computer Science 202 and Computer Science 240.

**CSI 360. Database Systems**

An introduction to the design and use of databases together with insights into the key issues related to the use of database systems. The course covers the entity-relationship model; the hierarchical, network, and relational data models, and their languages; functional dependencies and normal forms; the use of SQL language, and the design and implementation of relational databases using MS ACCESS and MySQL. Prerequisite: Computer Science 202 and Computer Science 240, or permission of the instructor.

**CSI 370. Design and Analysis of Algorithms**

The topic of this course is the design of computer algorithms and techniques for analyzing their efficiency and complexity. Types of algorithms include greedy algorithms, divide and conquer algorithms, dynamic programming, searching and sorting. Prerequisite: Computer Science 202, Computer Science 240.

**CSI 380. Organization of Programming Languages**

The objectives of this course are to develop an understanding of the organization of programming languages, to introduce the formal study of specifying and analyzing programming languages, and to continue developing skills in programming and solving problems begun in previous courses. Prerequisite: Computer Science 202 and Computer Science 240.

**CSI 450. Operating Systems**

Introduction to operating systems including tasking, memory management, process scheduling, file systems, protection, and distributed systems. Prerequisite: Computer Science 250.

**CSI 460. Artificial Intelligence**

Explores the principles and techniques involved in programming computers to do tasks that usually are thought of as requiring intelligence when done by people. State-space and heuristic search techniques, logic and other knowledge representations, and statistical and neural network approaches are applied to problems such as game playing, planning, the understanding of natural language, and computer vision. Prerequisite: Computer Science 202.

**CSI 470. Computer Networks**

This course covers the principles, structure, and operation of computer networks. Emphasis will be placed on understanding the protocols and mechanisms used in the Internet, and in local and wide-area networks. The student will write application-level programs running on the LINUX or Windows operating systems. Prerequisite: Computer Science 240, Computer Science 250, and a strong background in C++ and Java.

**CSI 480. Software Engineering**

A capstone course on information management covering the principles and practice of software project specification, design, testing, and production. The course incorporates real-world problems from industry and uses the “Six Sigma” structure and CASE tools for the project management and software development. Prerequisite: Computer Science 203 (or Computer Science 202 with permission of the instructor).

**CSI 194, CSI 294, CSI 394, CSI 494. Special Topics in Computing**

Study of an area of computer science not covered in other courses. Students are urged to suggest possible topics to the department as their interests and needs develop. Prerequisite: Permission of the instructor.

**CSI 190, CSI 290, CSI 390, CSI 490. Internship**

**CSI 195, CSI 295, CSI 395, CSI 495. On-campus Research**

**CSI 196, CSI 296, CSI 396, CSI 496. Off-campus Research**

**CSI 197, CSI 297, CSI 397, CSI 497. Independent Study**

**CSI SCE. Senior Capstone Experience**

The Senior Capstone Experience in Computer Science can take one of two forms:

a senior thesis and oral presentation on a topic in theoretical computer science; OR

a senior programming project with a written exposition and oral presentation.

Each major choosing the thesis option will research and write a senior thesis with the supervision of a faculty member and will make an oral presentation on the thesis at a departmental seminar. Each major choosing the thesis option should have a thesis topic selected and approved by the end of his/her junior year. For students with double majors in mathematics and computer science, this thesis may also satisfy the thesis requirement of the Senior Capstone Experience for a major in mathematics.

Each major choosing the programming project option will complete the project with the supervision of a faculty member and will also complete a written exposition and make an oral presentation on the project at a departmental seminar. Each major choosing the programming project option should have a project selected and approved by the end of his/her junior year.

For students with double majors in mathematics and computer science, the senior programming project may be awarded credit for some of the problems to be done as part of the Senior Capstone Experience for a major in mathematics. The Chair will decide the number. Students may also earn credit for problems solved while participating in teams in the annual ACM Programming Contest or the COMAP Mathematical Contest in Modeling.

A maximum of three problems from these alternative sources may be credited toward the six required capstone problems in mathematics.

Weekly seminars of the majors and faculty in the department are scheduled to provide information about careers, graduate school, thesis ideas, and research areas, as well as to enable each major to make the required presentation on the thesis or programming project.

The Senior Capstone Experience in computer science is graded as Pass, Fail, or Honors.