# Computer Science

The Computer Science Department offers five academic programs:

- Bachelor of Science in Computer Science (B.S.)
- Bachelor of Arts in Computer Science (A.B.)
- Bachelor of Arts in Computer Science, Ethics, and Society (CSES)
- Concentration in Technology, Ethics, and Society
- Minor in Computer Science

The B.S. degree is the most technical undergraduate degree in computer science. The A.B. degree has fewer requirements than the B.S. degree, and so it can be ideal for combining computer science with another rigorous course of study. The CSES major integrates technical training in computer science with study in digital ethics, law, and policy. The Concentration in Technology, Ethics, and Society provides a pathway for B.S. and A.B. students to obtain exposure to and literacy in the ethical, legal, and social implications of their field. Finally, the Minor lets students studying fields other than CS develop technical expertise in computer science. Like most universities, Georgetown designs its undergraduate programs in computer science to conform with the ACM-IEEE guidelines on undergraduate computer science education.

## Majors in Computer Science

The B.S. program has nineteen required courses, and the A.B., thirteen. The difference in requirements between the B.S. and A.B. comes from reducing the number of required mathematics courses from five to three and reducing the number of required computer science courses from fourteen to ten.

Both the B.S. and A.B. programs share the core sequence of Computer Science I and II, Mathematical Methods for Computer Science, Data Structures, Advanced Programming, and Introduction to Algorithms, which prepares students to take any upper-level computer science elective. At this point the two programs diverge. B.S. students must take Computational Structures, Programming Languages, and Operating Systems, which provides these students with the required breadth of understanding of the field. Students intending to pursue postgraduate studies or seeking employment in most traditional areas of computer science are encouraged to pursue the B.S. option. B.S. and A.B. students are encouraged to complete a senior thesis. Finally, B.S. and A.B. students have the option of adding to their majors the Concentration in Technology, Ethics, and Society.

The A.B. in Computer Science, Ethics, & Society (CSES) combines strong, A.B.-level technical training in CS with deep study of the ethical and policy challenges relevant to CS, as well as tools and frameworks to build responsible practices and governance. Students interested in this major might include, for example, those who want to go on to Law School to specialize in Technology Law; master’s programs in Public Policy to specialize in Tech Policy; or simply have a deep interest in understanding the technical, social, and ethical issues at the heart of computer science developments that are reshaping society. A key commitment of this major is attention to integration and application of ethical considerations within CS work. The CSES major is a modified version of the A.B. that: reduces the number of CS electives, adds electives specifically related to digital ethics, changes the required math course from Calculus to Probability and Statistics (MATH-040), and adds a required Introduction to Tech, Ethics, and Society course, Digital Law & Policy course, and a project-based Senior Capstone course.

All of the major programs require elective courses in computer science. B.S. students must take five, A.B. students must take four, and CSES students must take two, although CSES students also take elective courses in TES. The CS elective courses for these programs are the same, although A.B. and CSES students can take the additional required courses for the B.S. program as electives. Students in these programs can take graduate-level courses as electives with the permission of the instructor. Students in these programs can also, with the approval of the department’s undergraduate curriculum committee, satisfy one elective requirement by taking one course with significant computational content from another department or program. There is also the option of pursuing independent study through research or reading tutorials under the direction of a member of the faculty as elective courses.

### Requirements for the B.S. in Computer Science

**First Year**

- Computer Science I and II (COSC-051, 052)
- Mathematical Methods for Computer Science (COSC-030)
- Students pursuing a major or minor in mathematics who take Introduction to Proofs and Problem Solving (MATH-200) may elect to substitute one COSC elective for COSC-030.

- Calculus I and II (MATH-035, 036)

**Second Year**

- Data Structures (COSC-160)
- Advanced Programming (COSC-150)
- Three additional math electives from: Multivariable Calculus (MATH-137), Introduction to Mathematical Statistics (MATH-140), Linear Algebra (MATH-150), Abstract Algebra (MATH-215), Graph Theory (MATH-220), Combinatorics (MATH-221), Applied Statistical Methods (MATH-240), Applied Statistical Methods II (MATH-340), and Symbolic Logic (PHIL-350). Alternatives to MATH-140 are allowable; these include Economic Statistics (ECON-121), Analysis of Political Data I (GOVT-201), Business Statistics (OPIM-173), or Quantitative Methods for International Politics (IPOL-320).

**Third and Fourth Years**

- Computational Structures (COSC-125)
- Introduction to Algorithms (COSC-240)
- Programming Languages (COSC-252)
- Operating Systems (COSC-255)
- Five electives, which must be COSC courses numbered 100 or higher, or an approved external elective (described below)
- Optional: Senior Thesis (described below)

### Requirements for the A.B. in Computer Science

**First Year**

- Computer Science I and II (COSC-051, 052)
- Mathematical Methods for Computer Science (COSC-030)
- Students pursuing a major or minor in mathematics who take Introduction to Proofs and Problem Solving (MATH-200) may elect to substitute one COSC elective for COSC-030.

- Calculus I (MATH-035)

**Second Year**

- Data Structures (COSC-160)
- Advanced Programming (COSC-150)
- Two additional math electives from: Calculus II (MATH-036), Multivariable Calculus (MATH-137), Introduction to Mathematical Statistics (MATH-140), Linear Algebra (MATH-150), Abstract Algebra (MATH-215), Graph Theory (MATH-220), Combinatorics (MATH-221), Applied Statistical Methods (MATH-240), Applied Statistical Methods II (MATH-340), and Symbolic Logic (PHIL-350). Alternatives to MATH-140 are allowable; these include Economic Statistics (ECON-121), Analysis of Political Data I (GOVT-201), Business Statistics (OPIM-173), or Quantitative Methods for International Politics (IPOL-320).

**Third and Fourth Years**

- Introduction to Algorithms (COSC-240)
- Four electives, which must be COSC courses numbered 100 or higher, or an approved external elective (described below)
- Optional: Senior Thesis (described below)

### Requirements for the A.B. in Computer Science, Ethics, and Society

**First Year**

- Computer Science I and II (COSC-051, 052)
- Introduction to Technology, Ethics, and Society

**Second Year**

- Probability and Statistics (MATH-040)
- Mathematical Methods for Computer Science (COSC-030)
- Students pursuing a major or minor in mathematics who take Introduction to Proofs and Problem Solving (MATH-200) may elect to substitute one COSC elective for COSC-030.

- Data Structures (COSC-160)

**Third Year**

- Introduction to Algorithms (COSC-240)
- One course in Technology Law or Policy
- One Philosophy (or Ethics) course in Digital Ethics
- One COSC elective, which must be COSC courses numbered 100 or higher, or an approved external elective (described below)

**Fourth Year**

- One COSC elective
- Two TES electives (totaling at least 6 credit hours), one of which may be substituted with a COSC elective
- Senior Capstone in Tech, Ethics, and Society

A list of the approved ethics-related electives and philosophy courses that satisfy the above requirements is maintained on the program website.

### Concentration in Technology, Ethics, and Society

The Tech, Ethics, & Society Concentration for CS majors provides a pathway for even highly technically-minded CS students to gain exposure and literacy in the ethical, legal, and social implications of their field. This concentration is open to both A.B. and B.S. CS majors. It requires the completion of the following three courses taken in addition to the courses already required by the respective major:

- Introduction to Tech, Ethics, and Society (PHIL-135)
- Either: a philosophy course related to Digital Ethics or Digital Law & Policy
- An additional Tech, Ethics, and Society elective

A list of approved ethics-related elective and philosophy courses is maintained on the program website.

### External Electives

Students can elect to substitute one course from another department or program for one computer science elective. The external elective must contain significant computational content and can not count toward any other degree requirements. Students who want such a course to count as an elective must obtain approval from the Director of Undergraduate Studies (DUS). Students are strongly advised to obtain approval before taking the course to be certain it will count as an elective. The department maintains a list of approved external electives. There is an exception for students who have been accepted to the Accelerated Master’s Program in Data Science and Analytics (DSAN); they may double count one of their DSAN courses as their one external elective.

### Senior Thesis

The senior thesis is an opportunity for students to conduct research in computer science. Students complete a senior thesis by pursuing a research project, writing a substantial senior thesis, and presenting the thesis publicly. Students interested in this option must apply to individual faculty members. If accepted, the faculty member serves as the thesis advisor and oversees the project. The advisor and the student pick a thesis committee consisting of two additional faculty members. Once completed, the committee determines if the thesis is acceptable. The student must present their approved thesis publicly. If committee approves the presentation and final version of the thesis, then it is published as a technical report, and the student’s transcript is annotated to indicate that they completed a senior thesis in computer science. Students have the option of obtaining credit for their thesis work by registering for a three-credit Research Tutorial with their faculty advisor. The tutorial can have the title “Senior Thesis Research”. It counts as one computer science elective.

### Graduating with Honors in Computer Science

Students who meet the following criteria may graduate with honors in computer science:

- Complete the B.S. in computer science
- Graduate with a 3.67 overall grade-point average and a 3.67 grade-point average in computer science classes
- Complete a senior thesis approved by the thesis committee

A student who does not meet the above criteria may petition the faculty for consideration to graduate with honors. Petitions must be submitted to the Director of Undergraduate Studies (DUS) by April 1st for spring graduates and November 1st for fall graduates.

### Accelerated B.S./M.S. in Computer Science

The Department offers an accelerated master’s degree that lets qualified B.S. students complete a Master of Science (M.S.) degree by extending their studies to a fifth year. Students should apply in the spring semester of their junior year. If accepted, students designate two courses that apply to both the B.S. and M.S. degrees.

Students complete the degree requirements by taking two required core and six elective graduate courses. Students can take two of these courses during their senior year as an undergraduate. For more information about the program, see the Department’s web site, or contact the Department’s Director of Graduate Studies.

## Minor in Computer Science

### Requirements for the Minor

To complete the minor, students must complete six courses: Computer Science I and II (COSC-051, 052), Mathematical Methods for Computer Science (COSC-030), and any three computer science electives from the undergraduate courses numbered between 100 and 499. Students pursuing a major or minor in mathematics who take Introduction to Proofs and Problem Solving (MATH-200) may elect to substitute one COSC elective for COSC-030. Students pursuing the minor can not take graduate-level courses numbered 500 and above.

## Procedure for Undergraduate Curriculum-Related Requests

Students who have requests relating to curricular matters should first consult with their departmental advisor before forwarding the request to the Director of Undergraduate Studies (DUS). Students without a departmental advisor submit their requests directly to the DUS. Such requests include course approvals, course substitutions, tutorial requests, proposals for study abroad, external electives, Consortium courses, and the like. Requests will be forwarded to the department’s Undergraduate Committee.

## Contacts and Additional Information

For contacts and additional information, please see the Department Web site (https://cs.georgetown.edu/ (new window)). This information includes the honor policy for CS courses, undergraduate learning goals, integrated writing in computer science, the prerequisite structure for undergraduate courses, and answers to frequently-asked questions.

For course listings for Computer Science, see the Schedule of Classes.