Undergraduate Programs
(See also General Requirements for Departmental Majors)
The objectives of our bachelor degree programs are to train computer scientists who will be able to:
- Successfully engage in professional practice in the computing sciences or apply computer science tools and techniques to another field of interest.
- Pursue advanced study in the computing sciences.
- Work successfully in both independent and team environments.
- Lead teams and provide vision for innovation.
- Behave in a professional and ethical manner.
A successful major program of study leads to either the Bachelor of Science in Computer Science (B.S.) or the Bachelor of Arts in Computer Science (B.A.). Students should decide which degree program to complete by about their junior year. Both degree programs require specific courses and/or credits in several key areas: computer science, math, basic science, humanities and social sciences. However, there is much flexibility in how these requirements are fulfilled. Undergraduate majors may choose to pursue a broad selection of computer science and distributional courses, or to pursue a focus area within the field. Current foci primarily reflect departmental and school research strengths: big data, computational biology, fundamentals of computing, information security, natural language processing, robotics, systems and networking; and also include career paths for software engineering and entrepreneurship. Regardless of whether you pursue a particular focus or not, our bachelor programs provide excellent preparation for research within the department, summer internships, and post-graduation industry employment or graduate work.
All undergraduate students majoring or minoring in computer science must have a faculty advisor in the department. They will be assigned an advisor as entering freshmen or upon deciding on the major/minor. Every major must follow a program approved by their faculty advisor.
The department also offers a minor in computer science, and tangentially, a minor in computer integrated surgery and a minor in robotics. Some students majoring in computer science may be eligible for a combined bachelor’s/master’s degree program. Requirements for these programs are included here as well. Additional details regarding undergraduate programs can be found in the department’s undergraduate advising manual or on the website at www.cs.jhu.edu.
Double Majors
It is possible for students to pursue a double major program in which one of the majors is computer science. The computer science requirements are flexible enough to allow for combination with most majors in the Whiting School of Engineering and the Krieger School of Arts and Sciences. Whether computer science is your primary or secondary major, you will be assigned a faculty advisor in the department. In order to declare a first or second major in computer science, students should initiate the process on-line, and then will need to see the Academic Program Coordinator or the Director of Undergraduate Studies.
Program Requirements
To meet the course credit requirements for the B.A. in computer science, the student must complete a minimum of 120 credits. The basic requirements for the B.A. degree are:
| Code | Title | Credits |
|---|---|---|
| Computer Science | 33 | |
| Mathematics | 16 | |
| Basic Sciences | 8 | |
| Humanities/Social Sciences | 18 | |
| Foreign Language | 6 | |
| 4 Writing Intensive Courses | ||
| Electives | 39 | |
| Total Credits | 120 | |
Details and course recommendations of these distributional requirements are below. These requirements add up to 81 credits and fulfill general university distribution requirements. Except for electives and where noted below, courses should not be taken on a S/U basis. By university policy, no more than 18 D or D+ credits can be counted toward the total credit requirements for a degree.
| Code | Title | Credits |
|---|---|---|
| Computer Science 1 | ||
| Core: The following foundational courses in computer science must be included in a student’s program: | ||
| EN.500.112 | Gateway Computing: JAVA (or equivalent) | 3 |
| EN.601.220 | Intermediate Programming | 4 |
| EN.601.226 | Data Structures | 4 |
| EN.601.229 | Computer System Fundamentals | 3 |
| EN.601.230 | (Mathematical Foundations for Computer Science (offered starting Spring 2022)) | 4 |
| EN.601.433 | Intro Algorithms | 3 |
| Upper: At least 12 credit hours must be at the 300-level or above, not including EN.601.433. | 12 | |
| Mathematics | ||
| The following courses must be included: | ||
| AS.110.108 | Calculus I (Physical Sciences & Engineering) | 4 |
| AS.110.109 | Calculus II (For Physical Sciences and Engineering) | 4 |
| The remaining courses may be chosen from Mathematics (110.xxx) or Applied Math and Statistics (553.xxx). At least one course must be 200-level or above. Strongly recommended: Linear Algebra, Probability & Statistics. | 8 | |
| Basic Sciences | ||
| Students must take two semesters of core science courses (any combination of Physics, Chemistry, Biology), with their associated labs, totaling at least 8 credits. These courses should be taken for a grade. However, AP credit is an acceptable substitute for these courses and labs. | 8 | |
| Humanities/Social Sciences | ||
| Six courses in the Humanities/Social Sciences must be taken, with each course at least 3 credits. At least two 3-credit courses at the 300-level or above are required. As befits a B.A. degree, students have ample flexibility to choose courses that broaden the scope of their study, in consultation with their advisors. A subset of the courses selected to satisfy this requirement should demonstrate coherence within an area. Any course with Humanities or Social Sciences area designators may fulfill these distributional requirements. 2 | 18 | |
| Foreign Language | ||
| At least 6 credits in one foreign language or demonstrated proficiency at the intermediate level are required. These foreign language credits are in addition to the 18 required Humanities/Social Sciences credits. | 6 | |
| Writing Requirement | ||
| All primary computer science majors pursuing a B.A. degree are required to fulfill the university’s requirement of four writing intensive courses, each at least 3 credits. At least one course must be explicitly focused on writing skills in English (eg, courses in professional, fiction or expository writing). Students must receive at least a C- grade in these courses. These courses may overlap other requirement areas. | ||
| Electives | ||
| Electives may be any credit bearing courses, to be chosen by the student with the guidance of their advisor as needed. | 39 | |
| Total Credits | 120 | |
| 1 | No more than 3 independent type credits (courses numbered 601.5xx) and no more than 3 credits of short courses (1-credit special topics courses) can be counted toward this requirement. However, B.A. students doing the Senior Honors Thesis (EN.601.519 Senior Honors Thesis-EN.601.520 Senior Honors Thesis) may use an additional 3 credits of independent work toward their CS requirements, for a total of 6 credits. No courses with grades below C- or with S/U grades may be used to fulfill this requirement unless they are not offered for a grade. At most 4 S/U credits may be used to fulfill this requirement. |
| 2 | See the Distribution tab in the Requirements for a Bachelor's Degree section for two exceptions to the rule that each H/S distribution course be at least 3 credits. |