Computer Science

Department of Computer Science

The Computer Science Department offers three degree options: Bachelor of Science in Computer Science (B.S.), Bachelor of Arts in Computer Science (A.B.), and Minor in Computer Science. The B.S. degree is the most technical undergraduate degree.  The A.B. program has fewer requirements than the B.S. degree, and so it can be ideal for combining computer science with another program. Like most universities, Georgetown designs its undergraduate programs in computer science to be in conformance with the ACM-IEEE guidelines on undergraduate computer science education.

MAJORs IN COMPUTER SCIENCE

The B.S. program has 18 required courses, the A.B., 12 courses, and the Minor, 6 courses. The difference in requirements between the B.S. and A.B. comes from reducing the number of required mathematics courses from four to two, and reducing the number of required computer science courses from fourteen to ten.

Both the A.B. and B.S. programs share the core sequence of Computer Science I and II, Mathematical Methods for Computer Science, Data Structures, and Advanced Programming. This sequence prepares students to take almost any upper-level computer science elective.  Students in both programs must take Introduction to Algorithms, but at this point the two programs diverge. The B.S. student must take Computer Hardware Fundamentals, Computer System Fundamentals, Programming Languages, and Operating Systems, which provides B.S. students with the required breadth of understanding of the field.  Students intending to do postgraduate studies or seeking employment in most traditional areas of computer science are encouraged to pursue the B.S. option. In addition, B.S. students are encouraged to do a senior thesis.

Both the A.B. and the B.S. programs require four elective courses in computer science. The list of elective courses for both programs is the same, although A.B. students can take the required courses for the B.S. program as electives.  Students in both programs can, 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. Students enrolled in the A.B. program also have the option of writing a senior thesis.

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 may elect to take instead Introduction to Proofs and Problem Solving (MATH-200), Analysis I (MATH-310), and an additional COSC elective. MATH-200 must be taken as a prerequisite to Data Structures (COSC-160)
  • Calculus I (MATH-035)

Second Year

  • Data Structures (COSC-160)
  • Advanced Programming (COSC-150)
  • One additional math elective from Calculus II (MATH-036), Multivariable Calculus (MATH-137), Introduction to Mathematical Statistics (MATH-140), Linear Algebra (MATH-150), Number Theory and Cryptography (MATH-211), Numerical Analysis (MATH-212), Abstract Algebra (MATH-215), Graph Theory (MATH-220), Combinatorics (MATH-221),  Mathematical Statistics I (MATH-233), Mathematical Statistics II (MATH-234), Optimization (MATH-425), and Symbolic Logic (PHIL-350). Instead of  Mathematical Statistics (MATH-140), students can take Probability and Statistics (MATH-040), Economic Statistics (ECON-121), Analysis of Political Data I (GOVT-201), Business Statistics (OPIM-173), or Quatitative 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 with one exception. Students can take one course from another department or program as a computer science elective provided that the course contains significant computational content. Students who want such a course to count as an elective must get approval from the Computer Science Department's Director of Undergraduate Studies. Students are strongly advised to obtain approval before taking the course to be certain it will count as an elective
  • Optional: Senior Thesis

The senior thesis consists of enrolling in two semesters of the one-credit Senior Thesis Seminar (COSC-300), attending sixteen department colloquia while enrolled in COSC-300, 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 thesis advisor and oversees the project. At this point, the student is eligible to enroll in COSC-300. The advisor and the student pick a thesis committee consisting of three faculty members, including the advisor. Once completed, the committee determines if the thesis is acceptable. The senior thesis must also be presented to the faculty. If approved by the thesis committee, the thesis is published as a technical report. Senior Thesis Independent Study (COSC-301) is for directed research in support of the thesis project and may substitute for an elective.

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 may elect to take instead Introduction to Proofs and Problem Solving (MATH-200), Analysis I (MATH-310), and an additional COSC elective. MATH-200 must be taken as a prerequisite to Data Structures (COSC-160)
  • Calculus I and II (MATH-035, 036)

Second Year

  • Data Structures (COSC-160)
  • Advanced Programming (COSC-150)
  • Two additional math electives from  Multivariable Calculus (MATH-137), Introduction to Mathematical Statistics (MATH-140), Linear Algebra (MATH-150), Number Theory and Cryptography (MATH-211), Numerical Analysis (MATH-212), Abstract Algebra (MATH-215), Graph Theory (MATH-220), Combinatorics (MATH-221),  Mathematical Statistics I (MATH-233), Mathematical Statistics II (MATH-234), Optimization (MATH-425), and Symbolic Logic (PHIL-350). Instead of  Mathematical Statistics (MATH-140), students can take Probability and Statistics (MATH-040), Economic Statistics (ECON-121), Analysis of Political Data I (GOVT-201), Business Statistics (OPIM-173), or Quatitative Methods for International Politics (IPOL-320)

Third and Fourth Years

  • Computer Hardware Fundamentals (COSC-120)
  • Computer System Fundamentals (COSC-121)
  • Introduction to Algorithms (COSC-240)
  • Programming Languages (COSC-252)
  • Operating Systems (COSC-255)
  • Four electives, which must be COSC courses numbered 100 or higher with one exception. Students can take one course from another department or program as a computer science elective provided that the course contains significant computational content. Students who want such a course to count as an elective must obtain approval from the Computer Science Department's Director of Undergraduate Studies. Students are strongly advised to obtain approval before taking the course to be certain it will count as an elective
  • Optional: Senior Thesis

The senior thesis consists of enrolling in two semesters of the one-credit Senior Thesis Seminar (COSC-300), attending sixteen department colloquia while enrolled in COSC-300, 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 thesis advisor and oversees the project. At this point, the student is eligible to enroll in COSC-300. The advisor and the student pick a thesis committee consisting of three faculty members, including the advisor. Once completed, the committee determines if the thesis is acceptable. The senior thesis must also be presented to the faculty. If approved by the thesis committee, the thesis is published as a technical report. Senior Thesis Independent Study (COSC-301) is for directed research in support of the thesis project and may substitute for an elective.

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

The Department offers an accelerated M.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 courses and six elective courses. Students can take two of these courses during their senior year. For more information about the program, see the Department’s web site, or contact the Department’s Director of Graduate Studies.

Graduating with Honors in Computer Science

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

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

An application consists of a formal written request to graduate with honors submitted to the Director of Undergraduate Studies. A student who does not meet the above criteria may petition the faculty for consideration to graduate with honors. Applications and petitions must be submitted by April 1st for spring graduates and November 1st for fall graduates.

MINOR IN COMPUTER SCIENCE

REQUIREMENTS FOR THE MINOR

Computer Science I and II (COSC-051, 052), Mathematical Methods for Computer Science (COSC-030), and any three Computer Science  (COSC) electives from the undergraduate courses numbered between 100 and 499. Instead of taking Mathematical Methods for Computer Science (COSC-030), students may elect to take Introduction to Proofs and Problem Solving (MATH-200), Analysis I (MATH-310), and an additional COSC elective. MATH-200 must be taken as a prerequisite to Data Structures (COSC-160).

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

During the academic semester, the Undergraduate Committee will review and respond to requests at its next scheduled meeting. During breaks, the committee will wait until the academic semester restarts to review requests. When making a request, students must submit the following documentation:

  1. A cover letter, which should include:
     - A brief explanation of the request.
    - The GU computer science course name(s) and number(s) for which credit is sought.
     
  2. External course information:
    - University offering course
    - Course name and number
    - Course description
    - Syllabus
    - Relevant assignments (optional)

For course listings for Computer Science, see http://courses.georgetown.edu.