Catalog 2018-2019

Mathematics and Computer Science

Teaching Faculty

Professors Barel, Campbell, Ferrer (chair), and D. Sutherland 
Associate Professors Camfield and Goadrich 
Assistant Professors Downes 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, Computer Science, and Data Analytics. 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. Students in either major may minor in Data Analytics.


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.  A student who studied programming before enrolling in Hendrix College may receive course credit for CSCI 150  Foundations of Computer Science (w/Lab) if he or she takes CSCI 151  Data Structures (w/Lab) 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 (w/Lab).

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 (w/Lab)
         CSCI 285 Scientific Computing
         CSCI 365 Functional Programming
         CSCI 380 Theory of Computation
         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 (w/Lab)
  • CSCI 151 Data Structures (w/Lab)
  • MATH 130 Calculus I
  • MATH 240 Discrete Mathematics
  • CSCI 230 Computing Systems Organization
  • CSCI 320 Operating Systems & Concurrency
                 or 
    CSCI 340 Database and Web Systems
  • CSCI 352 Scalable Software
  • CSCI 382 Algorithms and Problem-Solving Paradigms
  • One of the following: 
          CSCI 285  Scientific Computing
          CSCI 365 Functional Programming
          CSCI 380 Theory of Computation
          MATH 340 Combinatorics
  • 1 additional CSCI course numbered 200 or above
  • 1 additional CSCI course numbered 300 or above
  • CSCI 410 Senior Seminar   

 

Note(s):

Those preparing for graduate studies in Computer Science should take MATH 140 Calculus II, MATH 270 Linear Algebra, and MATH 310 Probability and Statistics. It is highly recommended to take CSCI 320 Operating Systems & Concurrency, CSCI 360 Programming Languages, and CSCI 380 Theory of Computation. It is also important to take additional upper-level courses in computing topics that they wish to pursue in graduate school.

     

    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.

     

    Minors

    Minor in Applied Mathematics

    7 courses distributed as follows:

    • CSCI 150  Foundations of Computer Science (w/Lab)
    • MATH 130  Calculus I
    • MATH 140  Calculus II
    • At least two courses chosen from: 
                CSCI 285  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 (w/Lab)
    • CSCI 151  Data Structures (w/Lab)
    • 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

     

    Minor in Data Analytics

    6 courses distributed as follows:

    • CSCI 150 Foundations of Computer Science
    • 1 course from:
                BUSI 250 Principles of Statistics
                MATH 215 Introductory Statistics
                MATH 310 Probability and Statistics
                PSYC 290 Statistics
                SOCI 210 Social Statistics
    • 1 course from:
                CSCI 151 Data Structures
                CSCI 270 Computational Humanities
                CSCI 285 Scientific Computing
                CSCI 335 Artificial Intelligence
                CSCI 340 Database and Web Systems
                MATH 365 Mathematical Models
    • 2 elective courses from:
                ANTH 335 Geographic Information Science
                BIOL 465 Molecular Evolution and Bioinformatics
                BIOL 480 Field Ecology
                BUSI 390 Accounting Information Systems and Database Management
                ECON 400 Econometrics and Forecasting
                ECON 430 Management Science
                POLI 460 Applied Statistical Methods
                POLI 202 Empirical Research Methods OR PSYC 295 Research Methods
    • 1 additional course from the two previous lists

    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

     

    Program Course Listings

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

    Mathematics Courses

    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. Students who already have credit for MATH 130/140/230/260 are not allowed to take this course without instructor permission.

    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. This course is a .25 credit activity course and may be repeated for additional credit. Note that there is a limit of two course credits from partial credit courses that can be used toward the 32 courses required for graduation. Students must complete four semesters of the seminar in order to receive Odyssey SP credit. Prerequisite: MATH 130 or MATH 140 or consent of instructor

    MATH 130 or MATH 140 or consent of instructor
    MATH 215

    Introductory Statistics

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

    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 Math-WII

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

    Found of Computer Science (w/Lab)

    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 (w/ Lab)

    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, heaps, hash tables, graphs) and programming techniques such as recursion and sorting algorithms. Other topics include analysis of algorithm complexity, automated unit testing, inheritance. Programming assignments focus on the design and implementation of algorithms and data structures using the Java language. Laboratory course. Prerequisite: CSCI 150 or consent of instructor.

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

    Computational Humanities

    A survey of the tools and techniques of computation as applied to concepts in humanities. Covers the use of computing to analyze and synthesize textual, visual, and aural data, as well as the creation of new digital artifacts using computation. Topics normally include natural language processing and translation, information retrieval, sentiment analysis, document clustering, data visualization, procedural music generation, and digital art. Prerequisite: CSCI 150

    CSCI 150
    CSCI 285

    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 320

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

    Scalable Software

    Introduction to the computer science concepts necessary for the development of software systems targeted at mobile devices. Further exploration of object-oriented development, testing concepts introduced in CSCI 151. Emphasis is paced on user-centric interface design and writing precise requirements. Projects also incorporate network programming and mobile device sensor data. Assignments emphasize the integration of multiple concepts when developing realistic software applications. Several projects are completed in teams. 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 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 382

    Algorithms & Prob SolvingParadigms

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

    A combination of readings, writing assignments, oral presentations, and independent project work integrates the lessons from each student's undergraduate studies. Students create and revise project documentation, assess the content of formal writing about computing subjects, investigate ethical issues in computing, and complete an independent capstone project. Students also prepare themselves for professional work by resume writing and the creation of a professional portfolio. Prerequisite: CSCI 151

    CSCI 151
    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?