Resources for... William & Mary
William & Mary W&M menu close William & Mary

Undergraduate Program


We have a high faculty-student ratio. We will know your name.

Hackathons, contests, research, and conferences are part of the student experience.

Employers look for W&M graduates because of their exceptional skills: both soft and hard.

Computer Science is revolutionizing the way we live. Computer scientists are remaking the world in ways unimaginable a generation ago. 

You can be part of that.

As a student of computer science, you will have many opportunities to conduct research. You’ll also have the company of other excellent students in a program that emphasizes community

Our graduates find careers with employers ranging in size from Fortune 500 companies to small start-up firms. Employers consistently mention the exceptional quality of our graduates and how well-rounded they are.

Major in Computer Science

A major in Computer Science leads to a B.S. in Computer Science. The degree requires a minimum of 12 courses, of which 8 are specifically named and 4 are elective. Proficiency in basic mathematics is also required.

If you intend to major in Computer Science, you should complete Computer Science 141, 241, 243 and at least one other 300-400 level Computer Science course by the end of your sophomore year. Mathematics 111 and 112 should also be completed by that time.

Check out our prerequisite chart for an overview of courses leading to the computer science major. The detailed requirements for a Computer Science B.S. degree can be found in the Undergraduate Catalog. Not all courses listed in the course catalog are available every semester.  Please check the course schedule for the most up-to-date listing of courses.

Qualifying majors may choose to pursue an Honors project in the senior year.

Minor in Computer Science

A minor in Computer Science requires Computer Science 141, Computer Science 241, either Computer Science 243 or Mathematics 214, and any nine elective credits chosen from 300-400 level Computer Science courses excluding Computer Science 320, 430, and 498. Math 413 and 414 may be counted toward partial fulfillment of the requirement for nine elective credits.

The Undergraduate Catalog details the requirements for the computer science minor.

Get Started in Computer Science

A degree in Computer Science requires basic courses in the principles of computer science and mathematics. If you intend to major in Computer Science, by the time you finish your sophomore year, you should complete

  • Computer Science 141: Computational Problem Solving,
  • Computer Science 241: Data Structures,
  • Computer Science 243: Discrete Structures of Computer Science,
  • at least one other 300-400 level Computer Science course, and
  • Mathematics 111 and 112 (the calculus sequence). 

See the Prerequisite Chart/ Plan of Study for other course dependencies.

If you DO NOT have test or transfer credit

Both computer science majors and minors must receive credit for either CSCI 140: Computational Problem Solving in Data Science or CSCI 141: Computational Problem Solving, before taking any other CSCI course. If you do not have transfer or test credit for one of these courses, start here.

If you DO have test or transfer credit

If you come to W&M with credit for CSCI 140 or 141, you may start with CSCI 241: Data Structures or CSCI 243: Discrete Structures of Computer Science.

Mathematics Courses

Taking mathematics courses strongly enhances the outcome of learning computer science concepts. Computer science students should start taking Calculus (MATH 111 and 112) as soon as possible.

Be aware that MATH 214, Foundations of Mathematics, can substitute for CSCI 243, but this course has MATH 112 (Calculus II) as a prerequisite.

For High School Students

If you are a prospective Computer Science major, we strongly recommend that you complete calculus and an AP or IB computer science course while still in high school. Do well on the tests so you can take CSCI 241 or CSCI 243 in your first semester at W&M. This will give will have more time to take advantage of opportunities for research or study abroad in your junior and senior years.

See the Undergraduate Catalog for details on how AP or IB test scores count towards credit hours [pdf].

One-Year M.S. Program

The department offers a program designed to enable particularly well-prepared students to obtain an M.S. in Computer Science 12 or 15 months after receiving their bachelors degrees.

Plan of Study
  1. Take CSCI 141, 241, 243, 303, 304 and 312 (thereby obtaining a minor in computer science). You must have earned a B or better in these courses, and have an overall GPA of 3.0 by the end of your Junior year to qualify for this program.
  2. By the end of your Junior year, register your interest in the One-Year-M.S. with the Department of Computer Science. Following registration, a computer science advisor will be assigned to you, if needed.
  3. In your Senior year take any two of the following courses for graduate credit: CSCI 520, 523, 524, 526, 527, 534, 535, 542, 544. (All of these are cross-listed as 400-level courses and are offered once per year.)
  4. During the Fall semester of your Senior year, apply for regular admission to the Computer Science Graduate Program, clearly indicating an interest in the One-year M.S. Degree Program.
  5. If admitted, you will select a research advisor. You will work with this advisor to complete the remaining M.S. requirements.

The one-year M.S. degree is based on the standard 32-hour, non-thesis M.S. degree option. Two of these 32 hours must be satisfied by passing CSCI 710; the other 30 hours correspond to 10, three-credit computer science graduate courses. To complete a M.S. degree in just one year of study two of these ten courses must be taken for graduate credit while still an undergraduate [pdf]. The other eight courses would be taken, four per semester, in two intensive semesters of graduate study. CSCI 710 may be completed either in your final semester or in the summer after you complete the coursework.

Talk to Us

Want to know more? Our faculty want to connect with you.

  • Undergraduate program: [[cs|kemper, Professor Peter Kemper, Undergraduate Director]]