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 solving problems in other disciplines.
- Engage in continuous learning, including advanced study in the computing sciences.
- Work successfully in both independent and team environments, including diverse and interdisciplinary teams.
- Lead teams and provide vision for innovation.
- Behave in a professional and ethical manner.
- Practice inclusion and advocate for diversity.
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.). Both degree programs require specific courses and/or credits in several key areas: computer science, math, basic science, humanities and social sciences. The Bachelor of Science degree has stronger technical requirements, particularly with respect to computer science course requirements. The Bachelor of Arts is intended for students who prefer a more traditional liberal arts curriculum, and likewise carries stronger requirements in non-technical areas.
Regardless of degree choice, there is much flexibility in how the 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 students 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.
Additional details regarding undergraduate programs can be found in the department’s undergraduate advising manual or on the website at 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. In order to declare a first or second major in computer science, students should initiate an on-line request, and then will need to see an Academic Program Coordinator or the Director of Undergraduate Studies to complete the process.
Requirements for the B.S. Degree
The Bachelor of Science in Computer Science degree program is accredited by the Computing Accreditation Commission of ABET (www.abet.org) under the General Criteria and the Program Criteria for Computer Science and similarly named computing programs. It provides for the acquisition of the following knowledge base and skill set:
- Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
To meet the course credit requirements for the B.S. in computer science, the student must complete a minimum of 120 credits. The distributional credit requirements for the B.S. degree are as follows:
Code | Title | Credits |
---|---|---|
Computer Science | 40 | |
Mathematics | 16 | |
Basic Sciences | 8 | |
Humanities/Social Sciences | 18 | |
Two Writing Intensive Courses | ||
Electives | 38 | |
Total Credits | 120 |
Details and course recommendations for these distributional requirements are below. The area requirements add up to 82 credits and fulfill general university and WSE requirements, leaving 38 pure elective credits. Except for electives and where noted below, courses should not be taken on an S/U basis. Courses satisfying the CS credit requirements and the university writing requirement must have C- grades or higher; D grades may be counted in other areas. 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 (40) | ||
Ethics | ||
One of these courses must be chosen. Note that EN.601.124 may be counted towards the CS credit requirements or your H/S requirements, but not both. | ||
Computer Ethics (1) | ||
The Ethics of Artificial Intelligence and Automation (3) | ||
Core | ||
The following core courses in computer science must be included in a student's program: | ||
EN.500.112 | Gateway Computing: JAVA (or 5 score on AP CS A exam) | 3 |
or EN.500.113 | Gateway Computing: Python | |
or EN.500.114 | Gateway Computing: Matlab | |
EN.601.220 | Intermediate Programming | 4 |
EN.601.226 | Data Structures | 4 |
EN.601.229 | Computer System Fundamentals | 3 |
EN.601.433 | Intro Algorithms | 3 |
Foundations | ||
Option 1 - take one course; counts towards CS elective credits. | ||
Mathematical Foundations for Computer Science (4) | ||
Option 2 - take two courses where discrete math only counts as general elective credits, but theory of computation may be applied towards CS upper level or elective credits. | ||
Discrete Mathematics | ||
or EN.553.172 | Honors Discrete Mathematics | |
Theory of Computation (3) | ||
Upper Level | ||
At least 12 additional credit hours must be at the 300-level or above (not including EN.601.433). Courses from at least two different classification areas (Applications, Reasoning, Software, Systems) must be chosen in addition to Theory (Algorithms). 1 | 12 | |
CS Electives & General Restrictions | ||
Students must take at least 40 total CS credits, including the core and upper level requirements. These may be any CS courses (EN.601.xxx), or chosen from a pre-approved list of other courses. 2 | ||
No more than 6 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 CS distribution requirements. However, B.S. students doing the Senior Honors Thesis (EN.601.519 Senior Honors Thesis-EN.601.520 Senior Honors Thesis) may use an additional three credits of independent work toward their CS requirements, for a total of 9 credits. | ||
No courses with grades below C- or with S/U grades can be used to fulfill this requirement unless they are not offered for a grade. At most 4 S/U credits may be applied towards this requirement. | ||
Team | ||
BS students must take at least one of the following Team designated courses. The course satisfying this requirement may overlap other requirements. | ||
EN.601.290 | User Interfaces and Mobile Applications | 3 |
EN.601.411 | Computer Science Innovation & Entrepreneurship II | 3 |
EN.601.421 | Object Oriented Software Engineering | 3 |
EN.601.447 | Computational Genomics: Sequences | 3 |
EN.601.452 | Computational Biomedical Research | 3 |
EN.601.453 | Applications of Augmented Reality | 3 |
EN.601.486 | Machine Learning: Artificial Intelligence System Design & Development (eff. Fall 2023) | 3 |
EN.601.490 | Introduction to Human-Computer Interaction | 3 |
EN.601.496 | Computer Integrated Surgery II - Teams | 3 |
EN.580.437 | Biomedical Data Design (counts as "CS other") | 4 |
EN.580.438 | Biomedical Data Design II (counts as "CS other") | 4 |
MATHEMATICS (16) | ||
The following courses or equivalent substitutes such as AP credit 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 8 credits must be 200-level or above, chosen from Mathematics (AS.110.xxx) or Applied Math and Statistics (EN.553.xxx), and must include coverage of both probability and statistics. Some highly recommended courses are: 3 | ||
Linear Algebra | ||
Intermediate Probability and Statistics | ||
Probability | ||
Mathematical Statistics | ||
BASIC SCIENCES (8) | ||
Students must take two semesters of core science courses (any combination of Physics, Chemistry, Biology), with their associated labs, totaling at least 8 credits. AP credit is an acceptable substitute for these courses and labs. | 8 | |
HUMANITIES AND SOCIAL SCIENCES (18) | ||
As per WSE requirements, six courses in the Humanities and Social and Behavioral Sciences must be taken, with each course at least 3 credits. These courses must have either Humanities ('H') or Social and Behavioral Sciences ('S') area (or both) designators on them. Foreign language courses (without an 'H' or 'S') may also be used to satisfy this requirement. 4 | 18 | |
At most two of these courses (6 credits) maybe be taken S/U (if not counted towards the writing requirement); the remaining must be taken for a letter grade. | ||
WRITING REQUIREMENT | ||
Students are required to fulfill the university’s requirement of two writing-intensive courses, each at least 3 credits. Students must receive at least a C- grade or better in these writing courses. At least one course must be explicitly focused on writing skills in English. See the advising manual for a list of options. These courses may overlap other requirements. 5 | ||
GENERAL ELECTIVES (38) | ||
Electives may be any credit-bearing courses, to be chosen by the student with the guidance of their advisor as needed. | 38 |
- 1
The Courses and Curriculum Planning section of the departmental Course Information webpage has lists of course area designations (Applications, Reasoning, Software, Systems, Theory). These designations are also encoded as POS tags in SIS. Note that course descriptions include old area designators which may have changed in 2019.
- 2
Up to 6 of the 40 required credits may be from an approved list of relevant courses in other departments, which includes some courses cross-listed in CS. These courses may only count as "CS other" credits, not upper-level CS credits (regardless of course level in the other department).
- 3
AP Statistics credits may not be used to satisfy these credit requirements; however, they do meet the need for coverage of statistics (not probability).
- 4
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.
- 5
See the advising manual, Major Degree Requirements, Liberal Arts Courses section for details.
Sample Program
First Year | |||
---|---|---|---|
First Semester | Credits | Second Semester | Credits |
AS.110.108 | 4 | AS.110.109 | 4 |
EN.500.112 | 3 | EN.601.220 | 4 |
Humanities/Social Science Course | 3 | EN.601.230 | 4 |
Writing Course1 | 3 | Elective | 3 |
HEART Course (EN.500.111) | 0-1 | ||
FYS Course (EN.501.xxx) | 2-3 | ||
15-17 | 15 | ||
Second Year | |||
First Semester | Credits | Second Semester | Credits |
EN.601.226 | 4 | EN.601.229 | 3 |
EN.601.104 | 1 | Computer Science Elective | 3 |
Math Elective | 4 | Math Elective (Prob/Stat component) | 4 |
Humanities/Social Science Course | 3 | Humanities/Social Science Course | 3 |
Writing Course | 3 | Elective | 3 |
15 | 16 | ||
Third Year | |||
First Semester | Credits | Second Semester | Credits |
AS.171.1012 | 4 | AS.171.1022 | 4 |
AS.173.111 | 1 | AS.173.112 | 1 |
Computer Science Upper Level | 3 | EN.601.433 | 3 |
Computer Science Elective | 3 | Computer Science Upper Level | 3 |
Humanities/Social Science Course | 3 | Electives | 4 |
14 | 15 | ||
Fourth Year | |||
First Semester | Credits | Second Semester | Credits |
Computer Science Upper Level | 3 | Computer Science Upper Level | 3 |
Humanities/Social Science Course | 3 | Humanities/Social Science Course | 3 |
Elective | 3 | Elective | 3 |
Elective | 3 | Elective | 3 |
Elective | 3 | Elective | 3 |
15 | 15 | ||
Total Credits 120-122 |
(1) At least one writing course must be chosen from an approved list. You can find the list here under the "Liberal Art Courses" section.
(2) Students must take two semesters of core science courses, but this can be any combination of Physics, Chemistry, or Biology with their associated labs.