Computer Science (BS in Computer Science)

The Computer Science Program

Computer science studies the development of algorithms and data structures for representing and processing information using computers. Additionally, computer science examines the logical organization of computers themselves. Questions which arise include the following. Given the enormous difficulty of writing large programs, what kinds of computer languages can be easily specified, easily understood, and yet mechanically translated? What concepts govern information processing? What are the most advantageous ways of distributing computing loads over a collection of distributed processors? How are graphical images best stored and processed? Are some functions inherently harder to compute than others? Do functions exist which cannot be computed? How is knowledge best represented in a computer?

The department’s programs prepare students for graduate study in computer science and for employment as computer science professionals.

BA/BS in Computer Science

Bachelor of Arts (BA) and Bachelor of Science (BS) are two similar undergraduate degrees in Computer Science. BS degrees typically involve more coursework that covers more deeply the core area of the Computer Science curriculum, while BA degrees are more flexible and encourage reaching out to other disciplines on top of computer science.

The list of possible elective courses for the BA includes non-CS courses that are offered by departments in Arts & Sciences. These courses contribute to this program of study by exploring applications of computing to arts and sciences fields in a significant way or by providing fundamental computing depth and background. The CS department may choose to adjust the list of courses over time and students can request addition of further courses.

Graduate Program

The department offers the degrees of Master of Science in Computer Science and Doctor of Philosophy in Computer Science. For degree requirements and a full description of graduate courses in computer science, visit the department’s website at http://www.cs.wm.edu.

Special Five-Year M.S. Program

he department offers a special program designed to enable particularly well-prepared B.S. or B.A. students to obtain an M.S. in Computer Science 12 or 15 months after receiving their bachelor’s degrees. Students taking computer science as either their major or as a minor in their undergraduate years may be eligible for this program and upon request will receive a graduate advisor in computer science . Candidates may register for at least two graduate-level courses as undergraduates with up to  four such courses after completing their undergraduate degrees. Candidates will complete the requirement for an independent research project in either the summer following the completion of undergraduate study or the summer after the course work is completed. Students qualifying for this program may apply to the department for possible financial assistance.

Course Requirements

Required Credit Hours: 36-37 depending on credits awarded for CSCI 141 Modern Programming Fundamentals.

Major Writing Requirement

Satisfied with successful completion of the major core requirements.

Major Requirements

Core Requirements
CSCI 141Modern Programming Fundamentals4
CSCI 241Data Structures3
CSCI 243Logic and Discrete Structures 13
CSCI 301Software Development3
CSCI 303Algorithms3
CSCI 304Computer Organization3
CSCI 312Principles of Programming Languages3
CSCI 423Finite Automata and Theory of Computation3
Proficiency in:
MATH 111Calculus I4
or MATH 131 Calculus I for Life Sciences
MATH 112Calculus II4
or MATH 132 Calculus II for Life Sciences
MATH 109Linear Algebra 23
Concentration Requirement
Select one of the following:12-15
General
Artificial Intelligence/Machine Learning
Cybersecurity
Total Hours48-51
1

MATH 214 Foundations of Math may be substituted for CSCI 243 Logic and Discrete Structures.  

2

formerly MATH 211

Additional Information

Students who intend to major in computer science are encouraged to have completed CSCI 141 Modern Programming Fundamentals, CSCI 241 Data Structures, either CSCI 243 Logic and Discrete Structures or MATH 214 Foundations of Math, and a required 300 level computer science course by the end of their sophomore year. Proficiency in MATH 111 Calculus I (or MATH 131 Calculus I for Life Sciences ), MATH 112 Calculus II (or MATH 132 Calculus II for Life Sciences ) and MATH 109 Linear Algebra should also be completed by that time. At least half of the required minimum number of courses for the CS major must be taken at W&M and for all classes at the 300 and 400 level taken elsewhere, a total of at most two courses can count towards the CS major.

General

The General track through the Computer Science B.S. curriculum is intended to give students a broad overview of topics in Computer Science and to prepare them for a career in any of its subfields

Required Courses
12 credits chosen from any 300-400 level computer science courses. 112
Introduction to Numerical Analysis I
Introduction to Numerical Analysis II
Total Hours12
1

excluding CSCI 320 Directed Study, CSCI 430 Computer Languages and CSCI 498 Internship.

Cybersecurity

The Cybersecurity track through the Computer Science B.S. curriculum focuses on material related to Security, Systems, and Networks.

Required Courses
CSCI 444Principles of Operating Systems3
CSCI 454Computer and Network Security3
CSCI 464Penetration Testing3
Additional Credits
Select one of the following:3
Cybersecurity Fundamentals
Systems Programming
Network Systems and Design
Mobile Application Security
In addition, select CSCI 420 Special Topics courses may be eligible if they contain sufficient material related to the concentration as determined by the Undergraduate Director of Computer Science.
Total Hours12

Artificial Intelligence/Machine Learning

The Artificial Intelligence / Machine Learning (AI/ML) track through the Computer Science B.S. curriculum focuses on material related to Artificial Intelligence, Machine Learning, and Big Data.

Proficiency in
MATH 351Probability and Statistics for Scientists3
or MATH 451 Probability
Additional Credits
Select 12 credits from the following: 112
Large Language Models
Fundamentals of Artificial Intelligence/Machine Learning
Database Systems
Data Mining
Neural Networks for Machine Learning
Generative Artificial Intelligence for Software Development
Applied Topology Data Science
Advanced Applications of AI
Total Hours15
1

In addition, select CSCI 420 Special Topics in Computer Science courses may be eligible if they contain sufficient material related to the concentration as determined by the Undergraduate Director of Computer Science.