Skip to main content


  • It stands for Applied and Computational Mathematics Emphasis, but it means “the best, the peak, the summit, or the point of perfection.”

  • It provides you with both mathematical and computational tools to solve problems in science, business, technology, industry, medicine, economics, and engineering.  ACME graduates have a lot of flexibility in job opportunities and graduate study, and a strong social support network, thanks to the ACME cohort system. 

  • ACME teaches students powerful new ways to think about a wide variety of real-world problems and applications of mathematics. Specific subjects include

    • Mathematical analysis, approximation, and modeling
    • Algorithm design and analysis
    • Scientific computing
    • Theory and practice of optimization
    • Probability and probabilistic modeling
    • Machine learning and data science
    • Dynamical systems and optimal control
  • ACME teaches you to communicate across disciplines. Many subjects give different names to the same mathematical ideas. We help you understand the ideas and develop the dictionary to translate what you know into the language that scientists, data analysts, economists, and others can understand.

  • Successful completion of the program indicates the graduate has a strong work ethic and powerful problem-solving skills.  Many employers are eager to recruit ACME graduates because they recognize ACME as a demanding program that teaches many useful skills. ACME graduates have also gone on to top graduate programs in a wide variety of disciplines. 

  • The heart of the ACME program is the junior and senior core. In the last two years of their program, students take the core classes (8 credits each semester) together with a fixed cohort of fellow students. This cohort allows them to develop friendships, research collaborations, and social support that will help them throughout the program and long after graduation. The fixed cohort also makes learning more effective, because things you learn in one class get used and reinforced in other classes.

    Each student also chooses a concentration in a subject where they can apply the mathematics they are learning in ACME. This helps students learn to comunicate across disciplines and use powerful mathematical and computational ideas to solve problems in new and exciting ways. A list of current concentrations is posted here,  and custom-designed concentrations are also possible.

    Normally students spend their first two years at the university finishing prerequisites and general education requirements as well as choosing and working on their concentration classes. Once the prerequisites are done they can start the junior core. New cohorts of the junior core begin each fall semester.

  • ACME is great preparation for graduate school in many subjects. Graduates of the ACME program have been very successful in getting admitted into excellent graduate schools in a variety of subjects with generous fellowships and financial aid.

    1. Take the prerequisites.
    2. Go to the College Advisement Center and declare the ACME Emphasis in the Math Major 
    3. Sign up for the junior core, which consists of the following four classes. These classes are interlinked in an important way and must therefore all be taken simultaneously.  They are offered every Fall semester:
      1. Mathematical Analysis, & Computer Lab: Math 340/341
      2. Algorithms: Design and Optimization, & Computer Lab: Math 320/321
  • Calculus: Math 112, 113, & 314
    Proofs & Logic: Math 290
    Linear Algebra: Math 213 and Math 215
    Analysis: Math 341
    Introduction to Programming: CS 111 (or equivalent)
    Differential Equations: Math 334 (Note that 334 is not a prerequisite to the Junior core, so it may be taken during the junior year.)

  • Students usually complete an internship (or a research position) in the spring and summer between their junior and senior years.

  • No. We recommend you spend the spring and summer working on an internship or research.

  • You should have basic foundation of computer programming including the course CS 111 (or equivalent background in computing, like completion of the computing labs in the EMC2 program). Beyond that, it is useful to learn some Python. One way to get started in Python is to try the ACME Python Essentials labs, posted at For those who already have some programming skills, we recommend trying some of the problems at

    If you have extra time before the program starts and want to further solidify your coding skills, we recommend taking CS 235. It is not required for ACME majors, but it has proven helpful to many in the program.

  • The Python programming language.

  • Many students appreciate having a personal computer for the convenience of coding and working on projects from home, however, ACME has over 70 desktop machines that you will have access to while you are in the program, so it is not strictly necessary to have a personal computer as long as you are able to come to campus. You will also have access to these machines if you have memory- or time-intensive programs that you need to run.

    If you already have a computer that is working well, and meeting your needs, chances are it will work well for ACME. Our computing lab assignments are Python-based, so there are a large number of options for you to complete the labs, regardless of your operating system.

    If you would like to buy or rent a computer, we recommend that you use an operating system with which you are comfortable and get a computer with enough memory and processing speed to meet your needs for the remainder of your studies. A few operating systems that are commonly used by ACME students include Mac OS, Ubuntu (Linux), and Windows. An important feature to look for is the ability to access a unix/linux kernel (this is easy on Linux and Macs, and also possible on Windows). We don’t have any specific recommendations about how much memory or processing speed to get.