Computer Science

Undergraduate

Computer science is an exciting field with applications to many disciplines across the humanities, social sciences, and sciences. The main role of a computer scientist is that of a problem solver. A degree in computer science signifies formal training in computational and analytical approaches to problem solving as well as the skills necessary to develop software to tackle new challenges. These computational approaches can be applied to a wide spectrum of problems, including protein folding and flexibility, modeling and forecasting bird migration, improving the capabilities of search engines to retrieve the most relevant documents, understanding how the connectedness provided by social networks impact the lives we lead, supporting scientists in the management and analysis of the data they collect, and more.

Program Overview

Problem solving in computer science starts with the identification of a challenge, such as planning a spacecraft trajectory, enabling a swarm of robots to deliver a pizza, or finding the best possible answers to your web query. The Computer Science program is constructed to build the conceptual understanding and skills necessary for computational problem solving. The curriculum engages you in core topics that range from learning how to program to building computer systems using boolean algebra to developing software methodologies that ensure robust programs to analyzing algorithms for correctness and cost. Co-curricular activities and programs, including embedded peer mentoring at the introductory level, seek to support students by cultivating a community of learning.

Computer scientists also develop and analyze the algorithms that reach into biology, chemistry, physics, economics and business, that are transforming mathematical research and that provide new tools and media for art and music.

The importance of the liberal arts in the study of computer science

Strong communication and collaboration skills and the ability to think broadly and flexibly set our graduates apart. Our graduates pursue industry positions at technology giants, found their own startups and study at competitive graduate schools, including Carnegie Mellon, Stanford, MIT and Brown.

Why study computer science?

We are living in the midst of a revolution powered by computers that is infused throughout almost all aspects of society — communication, transportation, medical, commerce and entertainment — to name a few.

Beyond the daily interactions you may have with social networks or smartphones, technology has impacted other fields. Scientific research often uses experimentation done on computer models rather than the real world. Climate change research, for example, uses computer models because it is not possible to design and carry out an experiment to evaluate the effects of carbon emissions on the environment.

Medicine and medical research rely extensively on computers. Drug discovery research, for example, can involves studying computer models of proteins, viruses and drugs prior to actually synthesizing and experimenting with potential drugs.

The Discipline of Computer Science

Computer science studies how to solve problems with computers. This problem solving can be viewed from many angles:

  • Logic. How can you describe a solution to a problem so precisely that a computer (a device that, at its core, can only execute extremely simple instructions, very quickly) can execute it?
  • Algorithms. How do you compose logical steps together to solve a problem? How do you do so efficiently? How do you prove mathematically that your algorithm is correct?
  • Abstraction. Problems that are solved with computers tend to be large and complicated. Developing abstractions allow a computer scientist to decompose a problem into smaller pieces, solve those pieces individually and combine the results to form a comprehensive solution.
  • Computability. What problems are solvable by computers? Currently, some things that are very easy for people to do are still very difficult for computers. There are even problems that we know can never be solved by computers. Still other problems have simple algorithms, but the algorithms would take many years to calculate the solutions to problems of any realistic size. How do we know if a problem is intractable?

Beyond these essential elements of computational thinking, computer science encompasses many more specialized fields, including: information retrieval, software engineering, computational geometry, computer graphics and animation, computer architecture, networking, programming languages, robotics and more.

Community Voices

Spotlight on Computer Science students and alums

Amelia Henzel ’26

she/her

Emmanuella Umoye ’25

she/her

Cynthia Obianuju Akanaga ’25

she/her

Studying Computer Science at Mount Holyoke

Selecting courses in your first year

Interested in getting started with computer science?

The computer science department offers multiple ways to begin study of computer science, both for students considering a CS major and those who are curious about CS but looking for an introduction that is not programming-intensive.

For those considering a major or minor in computer science

If you are interested in a major or minor in computer science, the recommended entry point is any COMSC-151 offering. This is a programming-intensive course introducing the use of computers as a problem-solving tool. There are a variety of COMSC-151 offerings (for example, COMSC-151AA,COMSC-151AR, COMSC-151DS, COMSC-151HC, and COMSC-151MD) which all cover the same essential material but with differing motivating examples.

Some semesters, the department offers an alternative and slightly slower-paced entry point to the major or minor: COMSC-150. This course should be followed by COMSC-121; the combination of the two is equivalent to COMSC-151.

Students with prior programming experience may take a placement test to determine eligibility to skip the above and start with COMSC-205.

For those who are CS-curious

If you are interested in exploring computer science, with a less intensive programming experience, the department typically offers at least one non-major course each semester (for example, COMSC-100, COMSC-106, COMSC-108, and COMSC-109).

Any member of the computer science faculty can answer your questions about your course of study.

Courses and Requirements

Introductory courses focus on the fundamentals of programming, enabling students to implement ideas and approaches in code. Intermediate and advanced courses offer breadth and depth in areas such as computing systems, artificial intelligence, robotics, networking and algorithms.

Learning Goals

The computer science curriculum is designed to encourage students to:

  • Develop the critical thinking skills to solve problems by designing and implementing algorithms.
  • Develop the analytical skills for reasoning about algorithmic complexity.
  • Be able to design, implement, test, and document computer programs that solve substantial computational problems.
  • Build skills for developing a working understanding of a complex code base and ability to effectively modify it.
  • Be able to think at multiple levels of detail and abstraction.
  • Develop a foundation that allows and encourages learning new and relevant skills and technologies as the field evolves.
  • Understand the interplay between theory and practice.
  • Understand the interplay between software and hardware.
  • Be able to communicate clearly in written and oral form.
  • Be able to work effectively on a team.

More specifically, students are expected to master the following concepts:

  • Computer programming — including working knowledge of at least two programming languages in different paradigms.
  • Data structures: an ability to use and implement fundamental abstract data types including queues, stacks, balanced search trees, hash tables, and graphs.
  • Abstraction to manage complexity.
  • Recursion and induction.
  • Algorithmic problem-solving: an ability to design, code, analyze, and prove the correctness of algorithms using recursive divide-and-conquer, dynamic programming, and greedy approaches.
  • The conceptual organization of computers—including both computer architecture (the hardware level) and operating system issues.
  • Data storage on a computer.
  • Applications of computing: an understanding of how computers, algorithms, programs, and/or data structures are used in several application areas.

Contact us

The Department of Computer Science teaches students to examine, at one extreme, the core question of what can be computed and at the other, whether the combination of algorithms and computers can lead to intelligence.

Next Steps

Apply to Mount Holyoke

Mount Holyoke seeks intellectually curious applicants who understand the value of a liberal arts education and are driven by a love of learning. As a women's college that is gender diverse, we welcome applications from female, trans and non-binary students.

Financing your education

Everyone’s financial situation is unique, and we’re here to make sure cost does not get in the way of an exceptional education.