Bachelor of Science with a Major in Computer Science

The program combines software development, computer systems and architecture, algorithms, project design, science, and mathematics to provide a strong foundation in the underpinnings of computer science. Students are prepared to design and implement software needed for Internet operations, computer graphics and animation, secure systems, and applications for small, large, and embedded systems. In consultation with the advisor, students choose a technical track and a non-technical track. The technical track provides depth in a particular area of computer science, while the non-technical track enables students to stay current with the rapidly evolving field and to establish the relevance of their studies in the ever-changing global environment. The BS in computer science degree program is accredited by ABET. 

Medical Preparation Option in Computer Science

This option is for students interested in pursuing a computer science major as they prepare to apply to a medical school. The degree program combines additional natural science course work with computer science course requirements.

Visit the program website for additional information.

Bachelor of Science With a Second Major in Computer Science

Students enrolled in a BS program outside of the School of Engineering and Applied Sciences (SEAS) who wish to declare a second major in computer science must apply and be admitted to the second major program in computer science. Students in this program must follow the same degree requirements as those receiving a BS in computer science as their primary major. 

Criteria for admission:

To be considered for admission to the second major in computer science, a student must satisfy the following criteria:

The application is due no later than the start of the fifth semester of study at GW or completion of the 60th credit, whichever comes first.

Contact the School of Engineering and Applied Science Undergraduate Advising Office for current application deadlines for the second major in computer science.

Credits in residence requirement:

  • For a second major, at least 24 credits in computer science courses must be completed in SEAS.

Graduation grade-point average criteria:

  • To satisfactorily complete a second major in computer science, a student must have a minimum grade-point average of 2.2 in all courses taken that count towards the degree. See the department webpage for additional information.

Residency Requirement

As part of a residency requirement, all computer science majors must take a minimum of 30 credits in computer science courses at GW. Should a student pursue an approved study abroad program, credits earned in that program count toward this requirement. For a second major, at least 24 credits in computer science courses must be completed in SEAS.

Recommended program of study

First semester
UW 1020University Writing *
CSCI 1010Computer Science Orientation
CSCI 1111Introduction to Software Development
SEAS 1001Engineering Orientation
Math requirement *
Humanities or social sciences elective
Second semester
CSCI 1311Discrete Structures I
CSCI 1112Algorithms and Data Structures
Math requirement *
Science requirement *
Humanities or social sciences elective
Third semester
CSCI 2312Discrete Structures II
CSCI 2461Computer Architecture I
CSCI 2113Software Engineering
Science requirement *
Humanities or social sciences elective
Fourth semester
CSCI 3410Systems Programming
CSCI 2541WDatabase Systems and Team Projects
CSCI 2501Ethical Issues in Computing
Computer science elective
Science requirement *
Statistics requirement - one of the following:
CSCI 4341Continuous Algorithms
CSCI 3362Probability for Computer Science
APSC 3115Engineering Analysis III
STAT 4157Introduction to Mathematical Statistics I
Fifth semester
CSCI 3313Foundations of Computing
CSCI 3212Algorithms
CSCI 3411Operating Systems
Humanities or social sciences elective
Sixth semester
Technical track elective
Non-technical track elective
Math or science elective *
Humanities or social sciences elective
Unrestricted elective
Seventh semester
CSCI 4243WCapstone Design Project I
Technical track elective
Non-technical track elective
Humanities or social sciences elective
Unrestricted elective
Eighth semester
CSCI 4244Capstone Design Project II
Technical track elective
Non-technical track elective
Two unrestricted electives

*Course satisfies the University General Education Requirement in mathematics, science, or writing. UW 1020 must be completed prior to enrolling in any writing course in the major, including CSCI 2441W and CSCI 2541W.

Humanities and social science requirements: All BS in computer science students must take one humanities course and two social science courses from the University General Education Requirement list and three additional humanities, social science, and/or non-technical courses from a list pre-approved by SEAS or the Department of Computer Science. All courses selected to satisfy this requirement must be at least 3 credits and approved by the faculty advisor.

Mathematics requirement: Can be met by taking MATH 1220 and MATH 1221 and MATH 1232 or by taking MATH 1231 and MATH 1232. All students must take two MATH courses not counting MATH 1220; students who take MATH 1220 must take it as one of their unrestricted electives.

Science requirement: Can be met by choosing from BISC 1115 and BISC 1125BISC 1116 and BISC 1126CHEM 1111 and CHEM 1112; and PHYS 1021 and PHYS 1022. The three science requirement courses must include a two-course sequence.

Statistics requirement: Can be met by choosing from APSC 3115, CSCI 3362 or CSCI 6362CSCI 4341, or STAT 4157CSCI 4341 and CSCI 3362/CSCI 6362 may count toward the statistics requirement or the mathematics or science elective, but not both. Students who were admitted prior to fall 2014 may count STAT 1051 and STAT 1053 toward the statistics requirement, if they took the course prior to the spring 2015 semester.

Computer science elective: Can be met with one computer science course numbered 3000 or above.

Mathematics or science elective: Can be met with one course in mathematics or science in addition to the courses taken to fulfill the mathematics and science requirements. APSC 3115, CSCI 4314 or CSCI 4341CSCI 3362 or CSCI 6362EMSE 2705, MATH 2233, MATH 3125, or PHIL 3121 may be taken as a mathematics elective. Students who choose to take a science elective may select an additional course from the list under science requirements, above, or they may choose another natural science, such as astronomy, earth science, or forensic science.

Non-technical track requirement

All BS in computer science students must complete a non-technical track that consists of at least three non-technical courses (for a minimum of 9 credits) with prior approval of the faculty advisor. To satisfy this requirement, students may choose one of the following:

Technology and law—three pre-law related courses, for a minimum total of 9 credits, from the following: CSCI 4532EMSE 6018, MAE 3171, and MAE 4172. Additional courses may be included with prior approval of the faculty advisor.

Business—three courses, for a minimum total of 9 credits, in Business Administration (BADM) coursework. Courses that may be taken as part of this track include ACCY 2001, ACCY 2002, BADM 3401, and BADM 3501. Other BADM courses may be included with prior approval of the faculty advisor.

Pre-medical—three courses, for a minimum total of 9 credits, from the following: BISC 1111 and BISC 1112CHEM 1111 and CHEM 1112, CHEM 2151, CHEM 2152, CHEM 2153, CHEM 2154PHYS 1011 and PHYS 1012, or PHYS 1021 and PHYS 1022. Additional courses may be included with prior approval of the faculty advisor.

Project management and leadership—three courses, for a minimum total of 9 credits, of project management, communication, leadership, or engineering management coursework, including COMM 1041, COMM 1042, COMM 3174EMSE 4410, EMSE 6001, EMSE 6005, MGT 3201, NSC 2175, NSC 4176, ORSC 1109, and ORSC 2116. Additional courses may be included with prior approval of the faculty advisor.

Global engineering—three non-technical courses, for a minimum total of 9 credits, in one of the follow options with prior approval the faculty advisor: (1) while studying abroad; (2) in a single foreign language; (3) in International Affairs; or, (4) in aspects of non-English speaking cultures from the fields of anthropology, history, literatures, geography, political science, or religion.

Environment and climate change—three courses, for a minimum total of 9 credits, related to the environment and climate change which may include BISC 2454, BISC 3460, CE 6503CHEM 2085ECON 2136, EMSE 6200, EMSE 6220EMSE 6260EMSE 6225EMSE 6235EMSE 6230GEOG 2108,GEOG 2110,GEOG 2134,GEOG 2136, and GEOG 3132. Additional courses may be included with prior approval of the faculty advisor.

Public health—three courses, for a minimum total of 9 credits, in public health coursework that may include PUBH 1101PUBH 1102, PUBH 2114PUBH 2115, and PUBH 3133. Additional courses may be included with prior approval of the faculty advisor.

Individually designed—student select a series of related three non-technical courses (for a minimum of 9 credits). Any course completed for this track must be approved by the faculty advisor prior to completing the course.

Special option: minor or second majorstudents can combine at least three non-technical courses (for a minimum total of 9 credits), not closely related to the discipline of computing allotted to their non-technical track with their unrestricted electives to complete a non-technical minor or second major.

Technical Track Requirements

All students in the BS in computer science program are required to take three technical courses (for a minimum of 9 credits) of computer science coursework for their technical track. The computer science courses selected must have a common theme and must have CSCI 2113 as a prerequisite or within the prerequisite chain. The faculty advisor’s documented approval is required before these courses may be applied towards degree completion. The Department of Computer Science website lists choices for the technical track in more detail.

Unrestricted electives

All students in the BS in Computer Science are required to complete four unrestricted elective courses. All courses used to fulfill this requirement must have the explicit, documented approval from the faculty adviser, even when such courses are required for a minor or have transferred to the University as Advanced Placement (AP) credit.

The following guidelines and/or restrictions apply to selecting courses to satisfy this requirement:

  1. Additional CSCI courses numbered above 2461 may count toward this requirement. Students may take a maximum of two research and independent study courses, for which the student must provide documentation of output, such as papers, presentations, or software. For courses from other departments, the student must obtain the approval of the faculty advisor.
  2. Approved courses from the SEAS Humanities and Social Science Electives lists may count toward this requirement.
  3. Approved courses listed in non-technical track lists count may toward this requirement.
  4. Computer science course taught by another department generally do not count toward this requirement.
  5. Courses that significantly overlap with, or are not as advanced as, the required content for the computer science degree program do not count toward this requirement. Such courses include, but are not limited to, the following: BADM 2301, EMSE 4197, ISTM 3119, ISTM 4120, ISTM 4121, ISTM 4123, STAT 1051, STAT 1053, and STAT 1129.
  6. Courses that significantly overlaps with any other course(s) used towards the computer science degree, regardless of the department(s) in which they are taken, may not count toward this requirement.
  7. Some courses may be approved for one student and not for another, based on other courses the student has taken. For example, if a student uses PHYS 1021 towards either the science, math/science, or unrestricted elective requirement, PHYS 1011 may not be used to fulfill this requirement, but it would count for a student who has not taken PHYS 1021.