Catalog 2016-2017

Mathematics and Computer Science

Teaching Faculty

Professors Barel, Campbell (chair), Ferrer, and D. Sutherland
Associate Professors Camfield and Goadrich
Assistant Professor Yorgey
Visiting Assistant Professor Reynolds
Instructors Seme and Tillis


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
         CSCI 365 Functional Programming
         CSCI 380 Theory of Computation
         CSCI 385 Scientific Computing
         ECON 300 Advanced Microeconomic Theory
         ECON 430 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 non-credit 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
  • MATH 130 Calculus I
  • MATH 240 Discrete Mathematics
  • CSCI 230 Computing Systems Organization
  • CSCI 250 Scalable Software
  • CSCI 280 Algorithms and Problem-Solving Paradigms
  • CSCI 340 Database and Web Systems
                 or
    CSCI 420 Operating Systems & Concurrency
  • One of the following:
          CSCI 380 Theory of Computation
          CSCI 385 Scientific Computing
          MATH 340 Combinatorics
  • 2 additional CSCI courses numbered 300 or above
  • CSCI 410  Senior Seminar  

Note(s):

  • A student who studied programming before enrolling at Hendrix College may take CSCI 151 Data Structures 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

Mathematics

The Senior Capstone Experience for the mathematics major consists of an undergraduate research portfolio and participation in two semesters of the Senior Seminar course. MATH 497 Senior Seminar is a 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 and will be determined collectively by the department faculty.

 

Computer Science

The Senior Capstone Experience for the computer science major is satisfied by completing a substantial computing project.  Projects may involve software development, writing a literature review, or creating educational materials for particular topics or technologies.  These projects will normally be completed as part of the required CSCI 410 Senior Seminar course, under the supervision of the course instructor.  The capstone grade for each student will be determined collectively by the department faculty.

Computer science majors wishing to graduate with distinction will undertake a year-long senior undergraduate research project (earning UR Odyssey credit) to satisfy the capstone requirement.  Each research project will be undertaken in close collaboration with a faculty member from the department.  Each project will culminate in a public presentation, typically during the Spring semester of the senior year.  Students interested in this option should have at least a 3.0 GPA in the major.  Ideally, students will begin project discussions with departmental faculty by the end of the junior year; in any event, the research project should begin by the end of the second week of the senior year.

 

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
  • 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

Title Unavailable

MATH 115

Mathematics 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
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 BUSI 250, PSYC 290, or SOCI 210. 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
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
MATH 270

Linear Algebra

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

MATH 130
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

Introduction to AdvancedMathematics

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
Writing Level 2 W2
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
Writing Level 2 W2
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: Any MATH course numbered 230 or higher

Any MATH course numbered 230 or higher
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

Mathematics: Advanced Topics

A topics course in mathematics. This course can be repeated for additional credits as long as the section topics are different. Recent section topics include Game Theory, Image Processing, Topology, Number Theory, Complex Variables. Consult the online course schedule for information about the topics currently scheduled to be taught. Prerequisite: Consent of instructor

Consent of instructor
MATH 497

Mathematics: Senior Seminar

A required non-credit seminar for all senior mathematics majors which meets biweekly 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.

Undergraduate Research UR
Back to Program Course Listings

Computer Science Courses

CSCI 135

Title Unavailable

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: CSCI 150

CSCI 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

Title Unavailable

CSCI 280

Title Unavailable

CSCI 335

Artificial Intelligence

In this course, students implement and employ machine learning and search algorithms to create software to solve problems in three major application areas of Artificial Intelligence: action selection, natural language processing, and image classification. Writing assignments emphasize careful scientific analysis of student-conducted AI experiments and analytical thinking about AI applications. Prerequisite: CSCI 151

CSCI 151
Writing Level 2 W2
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
Service to the World SW
CSCI 360

Programming Languages

An introduction to the design and implementation of modern programming languages, from small domain-specific languages 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 design, 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 365

Functional Programming

An in-depth, hands-on introduction to functional programming in Haskell. Topics include algebraic data types and pattern matching, recursion, induction, folds, lambda calculus, laziness, functions, and monads. The last few weeks of the semester focus on computer-checked formal proofs, exploring the deep connection between functional programs and formal logic. Prerequisites: CSCI 150 and one of MATH 240 or MATH 290

CSCI 150 and one of MATH 240 or MATH 290
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, recursively enumerable, and non-recursively enumerable 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

Title Unavailable

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

Senior Seminar-WII

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 will be design documents and user documentation; a research paper and presentation will be the culminating assignments. Fundamental communication skills will receive special attention. Prerequisite: Senior standing.

Senior standing.
Writing Level 2 W2
CSCI 420

Title Unavailable

CSCI 490

Computer Science: Advanced Topics

A topics course in computer science. This course can be repeated for additional credits as long as the section topics are different. Recent section topics include Interactive Game Development, Functional Programming, Artificial Intelligence, Distributed Computing. Consult the online course schedule for information about the topics currently scheduled to be taught. Prerequisite: Consent of instructor

Consent of instructor
Back to Program Course Listings

Question about the Catalog?