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

Undergraduate Program

Highlights

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 Silicon Valley start-up firms. Employers consistently mention the exceptional quality of our graduates and how well-rounded they are.

B.S. in Computer Science

The Bachelor of Science (B.S.) in Computer Science at William & Mary is specifically crafted to equip students with the knowledge and skills required to excel in the rapidly-evolving fields of computing technology. Through a rigorous and comprehensive curriculum, students gain expertise in programming, data structures, algorithms, computer organization, and software engineering, among other essential areas. The program also provides students with the opportunity to specialize in cutting-edge fields such as artificial intelligence, computer graphics, systems, networking, databases, and cybersecurity through a range of elective courses. Emphasis is placed on cultivating strong problem-solving and critical thinking abilities, ensuring that graduates are well-prepared for successful careers across a wide range of industries or for further study in the field.

Please check our catalog for more detailed information about the B.S. degree program in Computer Science.

B.A. in Computer Science

The Bachelor of Arts (B.A.) program in Computer Science at William & Mary provides students with a broader understanding of computing and its applications in diverse fields. The B.A. program has fewer required core courses than the B.S. program, and offers a wider range of elective courses from other departments (Data Science, Geology, Linguistics, etc.), giving students the flexibility to tailor their degree to their interests and career goals. This program is designed to prepare students for a variety of careers related to computing. With a curriculum that emphasizes problem-solving, critical thinking, and creativity, the B.A. program provides a strong foundation for success in the ever-generalizing field of computing.

Please check our catalog for more detailed information about the B.A. degree program in Computer Science.

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.

Undergraduate Research via Honors Thesis

Want to change the world? You can join our world-class research projects and receive mentoring from faculty members. You will have a chance to practice hands-on skills with graduate students and peers. Research experiences can be counted as credits by taking the CSCI 320 Directed Study course and/or via an Honors Thesis.

Please check here for more details about the Honors Thesis.

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

First Semester Course Guide by Major

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: [[kcoogan, Associate Teaching Professor Kevin Coogan, Undergraduate Director]]