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 Arts in computer science (B.A.) or the Bachelor of Science in computer science (B.S.). 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 Arts is intended for students who prefer a more traditional liberal arts curriculum, and therefore carries stronger requirements in non-technical areas. The Bachelor of Science degree has stronger technical requirements, particularly with respect to computer science course requirements.
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 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.
Additional details regarding undergraduate programs can be found in the department’s undergraduate advising manual or on the website.
Double Majors
It is possible for students to pursue a double major program in which one of the major 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 through SIS, and then will need to develop a 4-year plan and review it with an Academic Program Coordinator or the Director of Undergraduate Studies to complete the process.
The information below describes the academic requirements for students entering JHU as degree-seeking students in Fall 2024. Students who entered JHU as degree-seeking students prior to Fall 2024 should view the appropriate archived catalogue.
Students must meet the University requirements and the Whiting School of Engineering requirements (see Requirements for a Bachelor's Degree in this catalogue), as well as the departmental major requirements, to complete a bachelor’s degree.
The Bachelor of Arts degree in computer science requires 120 credits.
The CS department recognizes students with exemplary academic records by awarding Departmental Honors to students with a Grade Point Average of 3.50 or higher in courses used to satisfy the 33 CS credit requirement.
UNIVERSITY AND WSE SCHOOL REQUIREMENTS
These requirements are described in this section of the catalogue.
First-Year Seminar (FYS)
All students entering Hopkins from high school are required to complete a First-Year Seminar with a Satisfactory (S) grade in their first year of study. First-Year Seminars are offered only with the Satisfactory/Unsatisfactory grading system; they are not offered for letter grades.
Code | Title | Credits |
---|---|---|
One FYS course | 2-3 | |
Total Credits | 2-3 |
Writing Intensive for BA in Computer Science
A grade of C- or higher is required. No Satisfactory/Unsatisfactory grades will be accepted. Courses must be at least 3 credits each and courses applied here may also be used towards satisfying the Distribution requirement.
Code | Title | Credits |
---|---|---|
Three Writing Intensive (W) courses | 9 | |
One W course from the following list: | 3 | |
Reintroduction to Writing | ||
Financial Writing and Analysis | ||
Introduction to Fiction & Poetry I | ||
Introduction to Fiction & Poetry II | ||
Introduction to Fiction & Nonfiction | ||
Animal Behavior and Communication Lab | ||
Freshman Seminar: Great Books at Hopkins | ||
Professional Writing and Communication | ||
Oral Presentations | ||
Special Topics in Professional Writing: Freelance Travel Writing | ||
Culture of the Engineering Profession | ||
Special Topics in Professional Writing: Blogging about Food and Culture | ||
Total Credits | 12 |
Distribution for BA in Computer Science
A grade of D or higher is required. No Satisfactory/Unsatisfactory (S/U) grade will be accepted. Courses must be at least 3 credits each and may overlap with the Writing Intensive requirement. Elementary language courses, which do not carry an area designator, can be used to satisfy the Distribution requirement for engineering students but must be distinct from the credits used to satisfy the Foreign Language requirement for the BA.
Code | Title | Credits |
---|---|---|
Six Humanities (H) or Social Sciences (S) Courses comprised of the following: | 18 | |
Four H or S courses at any level | ||
Two H or S courses at 300-level or higher | ||
Total Credits | 18 |
MAJOR REQUIREMENTS
FOREIGN LANGUAGE
A grade of D or higher is required. No Satisfactory/Unsatisfactory (S/U) grade will be accepted. Students should consult with the relevant language department/program office if interested in taking a placement test to demonstrate proficiency.
Code | Title | Credits |
---|---|---|
Six credits in one foreign language or demonstrated proficiency at the intermediate level. 1,2 | 6 | |
Total Credits | 6 |
- 1
Language courses used to satisfy the Foreign Language requirement may not double count with the Distribution courses.
- 2
Students must take additional elective courses to reach 120 credits total if placing out of this requirement.
MATHEMATICS
A grade of D or higher is required. No Satisfactory/Unsatisfactory (S/U) grade will be accepted.
Code | Title | Credits |
---|---|---|
AS.110.108 | Calculus I (Physical Sciences & Engineering) | 4 |
AS.110.109 | Calculus II (For Physical Sciences and Engineering) | 4 |
One course from Math (AS.110.xxx) or Applied Math & Statistics (EN.553.xxx) department at any level | 4 | |
One course from Math (AS.110.xxx) or Applied Math & Statistics (EN.553.xxx) department at 200-level or higher. Strongly recommended courses: | 4 | |
Linear Algebra | ||
Intermediate Probability and Statistics | ||
Total Credits | 16 |
BASIC SCIENCES
A grade of D or higher is required. No Satisfactory/Unsatisfactory (S/U) grade will be accepted. Exam credits can be used to satisfy the science courses and labs requirement. Students who receive exam credit for Biology will need to take an additional course with the Natural Science area designation to meet the 8-credit requirement.
Code | Title | Credits |
---|---|---|
Biology, Chemistry, or Physics course with the associated lab | ||
Biology, Chemistry, or Physics course with the associated lab | ||
Total Credits | 8 |
COMPUTER SCIENCE
The 33 required CS credits are comprised of Core, Foundations, Upper-Level, and CS Electives. A grade of C+ or higher is required for Gateway Computing. A grade of C- or higher is required for all other courses. At most 4 credits of Satisfactory (S) grades will be accepted for courses that are not offered for a letter grade.
CORE
A grade of C+ or higher is required for Gateway Computing. A grade of C- or higher is required for all other courses.
Code | Title | Credits |
---|---|---|
EN.500.112 | Gateway Computing: JAVA 1 | 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 |
Total Credits | 17 |
- 1
Students who obtain a waiver to skip Gateway Computing without AP exam credit may substitute one Bootcamp course (1 credit) for this requirement. Students then must take additional CS electives to meet the 33-credit requirement. Students with Gateway Computing (or AP equivalent) credit may not count Bootcamp computing courses towards their CS credits.
FOUNDATIONS
A grade of C- or higher is required.
Code | Title | Credits |
---|---|---|
Complete one of the options: | ||
Option 1 | ||
Mathematical Foundations for Computer Science 1, 2 | ||
Option 2 1 | ||
Discrete Mathematics 3 | ||
or EN.553.172 | Honors Discrete Mathematics | |
Theory of Computation 4 |
- 1
EN.601.230 Mathematical Foundations for Computer Science will satisfy the Foundations requirement and count towards the CS Elective credits.
- 2
For AMS double majors: Since Discrete Mathematics is required for the AMS major, students should take EN.553.171 Discrete Mathematics/EN.553.172 Honors Discrete Mathematics before taking EN.601.230 Mathematical Foundations for Computer Science. If EN.601.230 is taken before declaring the AMS double major, then students must take an upper-level AMS course to satisfy the discrete math requirement for the AMS major.
- 3
EN.553.171 Discrete Mathematics/EN.553.172 Honors Discrete Mathematics may count towards the Free Electives or the Math requirement. This course does not count towards the CS credit requirement.
- 4
EN.601.431 Theory of Computation will satisfy the Foundations requirement and count towards either the CS Upper-Level or CS Elective credits.
UPPER-LEVEL
A grade of C- or higher is required. Twelve upper-level CS credits must be taken, not including the required core course, EN.601.433 Intro Algorithms.
Code | Title | Credits |
---|---|---|
At least 9 credits of CS courses numbered EN.601.3xx - EN.601.4xx or courses with one of five area classifications: 2, 4 | 9 | |
Applications - POS Tag CSCI-APPL | ||
Reasoning - POS Tag CSCI-RSNG | ||
Software - POS Tag CSCI-SOFT | ||
Systems - POS Tag CSCI-SYST | ||
Theory - POS Tag CSCI-THRY 1 | ||
Additional 3 credits of CS upper-level courses as defined above or Customized Academic Learning, EN.601.5xx 3, 4 | 3 | |
Total Credits | 12 |
- 1
EN.601.433 Intro Algorithms cannot be counted towards the 12 credits, even though it is in the Theory classification area.
- 2
Some upper-level courses may have Calculus III, Probability/Statistics, or Linear Algebra as prerequisites, so plan accordingly.
- 3
No more than 3 credits of CAL (EN.601.5xx) can be applied towards the 33-CS credit requirement, as either upper-level or elective credits.
- 4
Students who are doing Senior Honors Thesis (EN.601.519 Senior Honors Thesis and EN.601.520 Senior Honors Thesis) may use an additional 3 credits of customized academic learning towards this requirement, for a total of six.
CS ELECTIVES
A grade of C- or higher is required. At most 4 credits of Satisfactory (S) grades will be accepted for courses that are not offered for a letter grade.
Code | Title | Credits |
---|---|---|
Additional CS courses to reach 33 CS credits. 1, 2 |
- 1
No more than 3 credits of 1-credit special topics courses can be applied towards this requirement.
- 2
No more than 3 credits of customized academic learning (EN.601.5xx) can be applied towards the 33-CS credit requirement, as either upper-level or elective credits. Students who are doing Senior Honors Thesis (EN.601.519 Senior Honors Thesis and EN.601.520 Senior Honors Thesis) may use an additional 3 credits of customized academic learning towards the 33-CS credit requirement, for a total of 6 credits.
FREE ELECTIVES
Code | Title | Credits |
---|---|---|
Elective courses to reach 120 credits |
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 |
Writing Intensive or FYS Course (EN.501.xxx)1 | 3 | FYS Course (EN.501.xxx) or Writing Intensive1 | 2-3 |
Humanities/Social Sciences | 3 | Humanities/Social Sciences | 3 |
Free Elective | 1-3 | Free Elective | 3 |
14-16 | 16-17 | ||
Second Year | |||
First Semester | Credits | Second Semester | Credits |
AS.171.1012 | 4 | AS.171.1022 | 4 |
AS.173.111 | 1 | AS.173.112 | 1 |
EN.601.226 | 4 | EN.601.229 | 3 |
Math Elective | 4 | Math Elective | 4 |
Writing Intensive | 3 | Writing Intensive | 3 |
16 | 15 | ||
Third Year | |||
First Semester | Credits | Second Semester | Credits |
EN.601.230 | 4 | EN.601.433 | 3 |
Upper-Level Computer Science | 3 | Upper-Level Computer Science | 3 |
Humanities/Social Sciences | 3 | Writing Intensive | 3 |
Foreign Language I | 3-4 | Foreign Language II | 3-4 |
Free Elective | 3 | Free Elective | 2 |
16-17 | 14-15 | ||
Fourth Year | |||
First Semester | Credits | Second Semester | Credits |
Upper-Level Computer Science | 3 | Upper-Level Computer Science | 3 |
Humanities/Social Sciences | 3 | Humanities/Social Sciences (upper-level) | 3 |
Humanities/Social Science Course (upper-level) | 3 | Free Elective | 3 |
Free Elective | 3 | Free Elective | 3 |
Free Elective | 3 | Free Elective | 3 |
15 | 15 | ||
Total Credits 121-126 |
- 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
Although the Sample Program shows Physics, students may take any combination of Biology, Chemistry, or Physics with their associated labs to satisfy the two-semester core science requirement.