Catalog 2015-2016

Mathematics and Computer Science

Teaching Faculty

Professors Barel, D. Campbell (chair), Ferrer, and D. Sutherland 
Associate Professor Goadrich
Assistant Professors Camfield and Yorgey 
Instructor Seme

Description

The Department of Mathematics and Computer Science offers a major in Mathematics, a major in Computer Science, and minors in Mathematics, Applied Mathematics, and Computer Science. A student may double major in Mathematics and Computer Science or major in one discipline and minor in the other. Students majoring in Mathematics may not minor in Applied Mathematics.


Three years of high school mathematics, including two years of algebra and one year of geometry, or equivalent preparation, are necessary for all courses offered in the Department. Trigonometry/Precalculus is strongly recommended. A student who studied calculus before enrolling in Hendrix College may receive course credit for MATH 130 Calculus I if he or she takes MATH 140 Calculus II with consent of the instructor and passes it with a grade of C or better. Alternatively, a student may receive course credit for MATH 140 Calculus II if he or she takes MATH 230 Multivariable Calculus or MATH 260 Differential Equations with consent of the instructor and passes it with a grade of C or better.

AP Credit

Mathematics

A student who scores a 4 or higher on the Calculus AB exam or a 3 or higher on the Calculus BC exam will receive course credit for MATH 130 Calculus I. In addition, a student scoring 4 or higher on the Calculus BC exam will receive course credit for MATH 140 Calculus II .

Computer Science

A student who scores a 3 or higher on the Computer Science A exam will receive course credit for CSCI 150 Foundations of Computer Science.

Major in Mathematics

11 courses distributed as follows:

  • MATH 130 Calculus I
  • MATH 140 Calculus II
  • MATH 270 Linear Algebra
  • MATH 290 Introduction to Advanced Mathematics
  • 1 of the following two-course sequences:
              MATH 320 Algebra and MATH 420 Seminar in Algebra  
                        or
              MATH 350 Real Analysis and MATH 450 Seminar in Analysis  
  • 2 courses chosen from the following:
              any mathematics courses numbered 230 or above
              CSCI 151 Data Structures and Object-Oriented Developmnent
              CSCI 380 Theory of Computation
              CSCI 385 Scientific Computing
              ECON 300 Intermediate Microeconomics
              ECON 430/530 Management Science
              PHYS 380 Classical Mechanics
  • 3 additional courses chosen from the following:
              Any mathematics courses numbered 300 or above
              CSCI 380 Theory of Computation
  • Year-long MATH 497  Senior Seminar

Note(s):

  • A working knowledge of a high-level computer language such as Python or Java is strongly recommended.  

  • Those preparing for graduate studies in mathematics should take MATH 230  Multivariable Calculus , MATH 260 Differential Equations , MATH 320  Algebra , and MATH 350  Real Analysis .

 

Major in Computer Science

12 courses distributed as follows:

  • CSCI 150 Foundations of Computer Science
  • CSCI 151 Data Structures and Object-Oriented Development
  • MATH 130 Calculus I
  • MATH 240 Discrete Mathematics
  • CSCI 230 Computing Systems Organization
  • CSCI 250 Scalable Software Design and Development
  • CSCI 280 Algorithms and Problem-Solving Paradigms
  • CSCI 340 Database and Web Systems
                 or
    CSCI 420 Operating Systems and Concurrent Computing
  • One of the following:
          CSCI 380 Theory of Computation
          CSCI 385 Scientific Computing
          MATH 340 Combinatorics
  • CSCI 410 Technical Communication and Analysis
  • 2 additional CSCI courses numbered 300 or above
  • Year-long CSCI 497  Senior Seminar  

Note(s):

  • Seniors majoring both in mathematics and in computer science should enroll in CSCI 497 Computer Science: Senior Seminar in the Fall semester and MATH 497 Mathematics: Senior Seminar in the Spring. 
  • A student who studied programming before enrolling at Hendrix College may take CSCI 151 Data Structures and Object Oriented Development with consent of the instructor. If the student passes the course with a C or better, the CSCI 150 Foundations of Computer Science requirement for the computer science major and minor will be waived for that student. The student will also be eligible to take any other CSCI course that has CSCI 150 Foundations of Computer Science as a prerequisite.

Senior Capstone Experience

The Senior Capstone Experience for the mathematics major and the computer science major consists of an undergraduate research portfolio and participation in two semesters of the Senior Seminar course. MATH 497 Senior Seminar and CSCI 497 Senior Seminar are non-credit courses that meet biweekly to guide students through the process of developing a senior undergraduate research project. The undergraduate research portfolio consists of the senior project and any other research projects completed by the student outside of regular course work. The grade for the Senior Capstone Experience is based on the portfolio and an oral presentation of the senior project.

Minor in Mathematics

6 courses distributed as follows:

  • MATH 130 Calculus I
  • MATH 140 Calculus II
  • MATH 240 Discrete Mathematics
              or
    MATH 270 Linear Algebra
  • MATH 290 Introduction to Advanced Mathematics
  • 1 mathematics course numbered 230 or above
  • 1 mathematics course numbered 300 or above

Minor in Applied Mathematics

7 courses distributed as follows:

  • CSCI 150 Foundations of Computer Science
  • MATH 130 Calculus I
  • MATH 140 Calculus II
  • At least two courses chosen from:
              CSCI 385 Scientific Computing
              MATH 310 Probability and Statistics
              MATH 365 Mathematical Models
  • Up to two courses chosen from:
              MATH 230 Multivariable Calculus
              MATH 260 Differential Equations
              MATH 270 Linear Algebra
  • Other courses such as MATH 490 Advanced Topics may be approved by department when appropriate

Minor in Computer Science

6 courses distributed as follows:

  • CSCI 150 Foundations of Computer Science
  • CSCI 151 Data Structures and Object-Oriented Development
  • MATH 130 Calculus I
  • Any CSCI course numbered 200 or above
              or
    MATH 240 Discrete Mathematics
  • 1 additional CSCI course numbered 200 or above
  • 1 additional CSCI course numbered 300 or above

Program Course Listings

The courses for this program are organized into the following categories:

Mathematics Courses

MATH 110

Mathematics in a Global Context

An historical survey of mathematical ideas (arithmetic, geometry, algebra) in various cultural contexts. The emphasis is on the mathematical content. Note: This course is not available for credit to students who have had MATH 130 or its equivalent. These students are referred, instead, to MATH 280.

Historical Perspectives HP
Quantitative Studies QS
MATH 115

Mathem in Contemporary Issues

A survey of mathematics used to solve current problems, including analysis of political and social structures, problem solving, and abstraction. Topics may include voting methods, power distributions, apportionment, fair division, graph theory, coding theory, scheduling, personal finance, geometry/fractals and statistics.

Quantitative Studies QS
Social and Behavioral Analysis SB
MATH 120

Functions and Models

Study of algebraic, trigonometric, exponential and logarithmic functions within the context of mathematical modeling

Quantitative Studies QS
MATH 130

Calculus I

Study of limits, differentiation, and integration of functions of one variable. Prerequisite: MATH 120 or its equivalent

MATH 120 or its equivalent
Natural Science Inquiry NS
Quantitative Studies QS
MATH 140

Calculus II

Further aspects of integration of functions of one variable. Infinite series. Prerequisite: MATH 130 or advanced placement

MATH 130 or advanced placement
Natural Science Inquiry NS
Quantitative Studies QS
MATH 195

Mathematical Problem Solving

Practical sessions in solving challenging problems in mathematics (possible sources: periodicals, problem collection books, or Putnam exams). The class meets biweekly to discuss solutions and receive new assignments. Most problems are solved between sessions, individually or in groups. A student receives one course credit after four semesters of successful problem solving. Prerequisite: MATH 130 or MATH 140 or consent of instructor

MATH 130 or MATH 140 or consent of instructor
Special Projects SP
MATH 215

Statistical Analysis

An introduction to some of the mathematical and statistical methods used in the analysis of social and natural scientific phenomena with an emphasis on the interpretation of experimental and survey data. Topics include elementary and combinatorial designs, basic statistical methods, correlation and inference, and regression analysis. Applications to the students’ major disciplines are included throughout the course as well as in one or more substantial projects. This course will not satisfy any requirements for a major or minor in mathematics. Students may not receive credit for both this course and another introductory statistics course such as PSYC 290 or BUSI 250. Prerequisite: Sophomore standing or higher

Sophomore standing or higher
Quantitative Studies QS
MATH 230

Multivariable Calculus

Vectors and coordinate systems in two and three dimensions, vector-valued functions, functions of several variables, extrema, multiple integrals, vector fields, including fundamental theorems of vector calculus. Emphasis is placed on developing geometric intuition. Prerequisite: MATH 140 or consent of instructor

MATH 140 or consent of instructor
MATH 240

Discrete Mathematics

An introduction to the discrete paradigm in mathematics and computer science. Topics include induction, recursion, logic, algorithmic problem-solving, asymptotic analysis of algorithms, graph theory, number theory, and counting techniques. Prerequisite: MATH 130 or consent of instructor

MATH 130 or consent of instructor
Natural Science Inquiry NS
MATH 260

Differential Equations

Study of ordinary differential equations and systems of equations, through the use of analytic, qualitative/geometric, and numerical techniques. Applications from physics, biology, chemistry, engineering, economics, and psychology are presented. Prerequisite: MATH 140

MATH 140
Natural Science Inquiry NS
MATH 270

Linear Algebra

Solving linear systems, matrix algebra, vector spaces and linear transformations, eigenvectors, orthogonality. Prerequisite: MATH 130

MATH 130
Natural Science Inquiry NS
MATH 280

History of Mathematics

A survey of mathematical ideas and discoveries in their historical context. The course combines mathematics (proofs and problems) with readings on its development. Offered in alternate years. Prerequisite: MATH 130 or consent of instructor

MATH 130 or consent of instructor
Historical Perspectives HP
Writing Level 2 W2
MATH 290

Intro to Advanced Mathematics

Fundamentals of set theory, logic, and functions. Emphasis is on developing the students’ theorem-proving skills, independent work, written and oral communication skills, and ability to critique others’ work. Prerequisite: MATH 140 and completion of, or concurrent enrollment in, MATH 240 or MATH 270

MATH 140 and completion of, or concurrent enrollment in, MATH 240 or MATH 270
Writing Level 2 W2
MATH 310

Probability and Statistics

Theory of probability and mathematical statistics including an introduction to basic concepts of probability theory, discrete and continuous random variables, distribution theory, moment-generating functions, and the Central Limit Theorem. Other topics may include the theory of statistical inference, point estimation, confidence intervals, regression, hypothesis testing, and analysis of variance. Offered in alternate years. Prerequisite: MATH 140

MATH 140
MATH 320

Algebra

Introduction to classical algebraic systems and their morphisms. Topics include groups, rings, fields, substructures, ideals, homomorphisms, and quotients. Offered in alternate years. Prerequisite: MATH 290

MATH 290
MATH 340

Combinatorics

Continues the ideas of counting, graph theory, and algorithms from Mathematics 240. Topics may include Ramsey Theory, designs, coding theory, generating functions, and optimization. Offered in alternate years. Prerequisite: MATH 240 or MATH 290

MATH 240 or MATH 290
MATH 350

Real Analysis

A rigorous study of the structure of the real line and the properties of real-valued functions. Topics include sequences, limits, continuity, differentiability, and integrability. Offered in alternate years. Prerequisite: MATH 290

MATH 290
MATH 365

Mathematical Models

Methods used to model, gather, interpret, and evaluate data critically. Topics may include model building, signal processing, numerical analysis, and stochastic processes. Offered in alternate years. Prerequisite: MATH 140

MATH 140
Natural Science Inquiry NS
MATH 420

Seminar in Algebra

Algebraic topics that extend the fundamental ideas in MATH 320 will be presented. Offered in alternate years. Prerequisite: MATH 320

MATH 320
MATH 450

Seminar in Analysis

Analytic topics that extend the fundamental ideas in MATH 350 will be presented. Offered in alternate years. Prerequisite: MATH 350

MATH 350
MATH 490

Adv Topics: Complex Variables

The course starts with an introduction to the complex numbers and the complex plane. We then proceed to what it means for a function of one complex variable to be differentiable (or analytic) and explore some fascinating consequences of this. We will show how the notion of differentiability with complex variables is quite different than differentiability with real variables. Topics covered will include analyticity and the Cauchy-Riemann equations, complex integration, Cauchy’s Theorem, power series, the residue theorem, and applications. Prerequisite: MATH 230 or MATH 260 or MATH 270 or permission of the instructor.

MATH 230 or MATH 260 or MATH 270 or permission of the instructor.
MATH 497

Mathematics: Senior Seminar

A required seminar for all senior mathematics majors which meets throughout the academic year. Each student develops an individual research project under the direction of a faculty advisor and presents the results both orally and in written form. Students also majoring in computer science should enroll in CSCI 497 in one semester and MATH 497 in the other.

Undergraduate Research UR
Back to Program Course Listings

Computer Science Courses

CSCI 135

Robotics Explorations Studio

Introduction to mechanical design and computer programming in the context of building and programming mobile robots. Mechanical design topics include vectors and forces, Newton’s Laws, gears, motors, rotational motion, friction, and the design process. Computer science topics include an introduction to programming, the programming of sensors and motors, and an introduction to artificial intelligence. Other topics include application of scientific method, teamwork skills, technical writing, and the relationship between the science fiction portrayal of robots and current technological reality. Cross-listed as PHYS 135.

Natural Science Inquiry with Lab NS-L
CSCI 150

Foundations of Computer Science

Introduction to computational problem-solving and computer programming. Topics include imperative programming constructs (variables, loops, conditionals, functions, recursion, file processing), basic object-oriented constructs (classes, objects), and some fundamental algorithms and data structures (dictionaries, arrays, linked lists, regular expressions). Students learn through studying the Python programming language. Laboratory course.

Natural Science Inquiry with Lab NS-L
Quantitative Studies QS
CSCI 151

Data Structures

Builds on skills acquired in CSCI 150, placing emphasis on object-oriented software design and data abstraction. Students are introduced to data structures (lists, stacks, queues, trees, graphs) and programming techniques such as recursion and sorting algorithms. Other topics covered include analysis of algorithm complexity, automated unit testing, version control, multithreading, inheritance and programming of mobile devices. Programming assignments focus on the design and implementation of algorithms and data structures using the Java language. Laboratory course. Prerequisite: CSCI 150 and either completion of or enrollment in MATH 130 or consent of instructor

CSCI 150 and either completion of or enrollment in MATH 130 or consent of instructor
Natural Science Inquiry with Lab NS-L
CSCI 230

Computing Systems Organization

A study of the layers of abstraction composing the design of modern computing systems. Topics include numeric representation, digital logic, CPU design, machine and assembly language, the program stack, virtual machines, compilers, assemblers, memory management and device drivers. Prerequisite: CCI 150

CCI 150
CSCI 235

Intelligent Robotics

A study of the application of artificial intelligence to solving problems in robotics. Topics include subsumption, planning, machine learning, vision, neural networks, localization, and mapping. Students configure provided implementations of algorithms to control physical robots. Prerequisite: CSCI/PHYS 135 or CSCI 150

CSCI/PHYS 135 or CSCI 150
Special Projects SP
CSCI 250

Scalable Software

Introduction to the computer science concepts necessary for the development of large software systems. Further exploration of object-oriented development, testing, and version control techniques introduced in CSCI 151. Emphasis placed on user-centric interface design and writing precise requirements. Projects will incorporate relevant technologies for modern software design, including network programming, parser generators, databases, and mobile devices. Assignments emphasize the integration of multiple concepts in the context of developing realistic software applications. Students complete several projects in teams. Prerequisite: CSCI 151

CSCI 151
Natural Science Inquiry NS
CSCI 280

Algo & Prob Solving Paradigms

Introduction to algorithm design strategies that build upon data structures and programming techniques introduced in earlier courses. Strategies discussed include brute-force, divide-and-conquer, dynamic programming, problem reduction, and greedy algorithms. Topics covered include graph traversal and shortest paths, string matching, searching, sorting, and advanced data structures such as balanced search trees, heaps, hash tables, state machines, and union-find structures. The course includes an introduction to complexity theory and the complexity classes P and NP. Prerequisites: CSCI 151 and MATH 240

CSCI 151 and MATH 240
CSCI 335

Artificial Intelligence

An introduction to the design, analysis, implementation, and application of classical and contemporary algorithms in artificial intelligence. Topics include intelligent robot behavior, theorem-proving systems, heuristic search, alpha-beta search, metaheuristic optimization, neural networks, and machine learning. Prerequisite: CSCI 151

CSCI 151
CSCI 340

Database and Web Systems

A study of designing and using a database management system (DBMS) and of developing Web applications. Topics include HTML, CSS, the JavaScript language, relational database theory, techniques for supporting ACID properties, and frontiers in database research. As part of a large team, students design and develop a system using both Web and mobile front ends that interacts with a DBMS using SQL. Prerequisite: CSCI 151

CSCI 151
CSCI 360

Programming Languages

An introduction to the design and implementation of modern programming languages, from small domain-specific languague to large-scale general purpose languages. Topics include abstraction, interpreters, compilers, type checking, embedded domain-specific languages, language design as problem-solving strategy and social aspects of language designing, adoption, and use. As a final project, each student will create and implement a language of their own design. Prerequisite: CSCI 230

CSCI 230
CSCI 370

Interactive Game Development

An introduction to contemporary tools and algorithms for building interactive games. Students will learn fundamental design mechanics and implement a substantial development project. Topics may include steering and flocking behavior, path finding algorithms, finite state machines, behavior trees, alpha-beta pruning, Monte Carlo Tree Search, shaders, 3D modeling, animation, procedural content generation, and the intersection of games and society. Prerequisite: CSCI 151

CSCI 151
CSCI 380

Theory of Computation

Covers basic topics in automata, computability, and complexity theory, including: models of computation (finite automata, Turing machines and RAMs); regular sets and expressions; recursive, r.e., and non-r.e. sets and their basic closure properties; complexity classes; determinism vs. non-determinism, with and without resource bounds; reductions and completeness; practice with NP- and P-completeness proofs; and the complexity of optimization and approximation problems. Prerequisite: MATH 240

MATH 240
CSCI 385

Scientific Computing

Students study problems arising from the physical, biological, and/or social sciences and the algorithms and theory used to solve them computationally. Included among the problems are numerical methods for maximizing a function and solving a differential equation. Prerequisite: MATH 130 and CSCI 150

MATH 130 and CSCI 150
CSCI 397

Cross-Disciplinary Project

In this course intended for computer science minors, the student completes a semester-long project investigating the relationship of the student's major with computing. Typically, this involves developing software to solve a computational problem in the major discipline. This course must be taken as an independent study, supervised by a computer science faculty member in consultation with a faculty member in the student's major discipline. Prerequisite: CSCI 151

CSCI 151
Special Projects SP
CSCI 410

Technical Communication & Analysis

Focuses on written and oral communication concerning computing, with a secondary emphasis on quantitative performance analysis and reading and research skills. Among the written assignments are design documents and user documentation; a research paper and presentation are the culminating assignments. Fundamental communication skills receive special attention. Prerequisite: Senior standing. Prerequisite: CSCI 151

Senior standing. Pre CSCI 151
Writing Level 2 W2
CSCI 420

Operating Systems & Concurrency

Basic principles of modern operating systems design: emphasis on concurrency including problems (nondeterminism), goals (synchronization, exclusion) and methods (semaphores, monitors); resource management including memory management and processor scheduling; file systems; interrupt processing; and multithreaded programming. Prerequisite: CSCI 230

CSCI 230
CSCI 490

AdvTop:Functional Programming

An in-depth, hands-on introduction to functional programming in Haskell. Topics include algebraic data types and pattern matching, recursion and induction, folds, lambda calculus, laziness, functors, and monads. The last few weeks of the semester will focus on computer-checked formal proofs using the functional language/proof assistant Agda. Prerequisites: CSCI 150 and MATH 240.

CSCI 150 and MATH 240.
CSCI 497

Title Unavailable

Back to Program Course Listings

Question about the Catalog?