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.
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 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 Science 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 40 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 BS 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 if they carry an eligible designator.
Code | Title | Credits |
---|---|---|
One Writing Intensive (W) course | 3 | |
One Writing Intensive (W) course from the following list: | 3 | |
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 | ||
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 | ||
Total Credits | 6 |
Distribution for BS in Computer Science
A grade of D or higher is required. A maximum of 6 credits of Satisfactory (S) grades may be applied. 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.
Code | Title | Credits |
---|---|---|
Six Humanities (H) or Social Sciences (S) Courses | 18 | |
Total Credits | 18 |
MAJOR REQUIREMENTS
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 200-level or higher. Recommended courses: | 4 | |
Linear Algebra | ||
or AS.110.212 | Honors Linear Algebra | |
Calculus III | ||
or AS.110.211 | Honors Multivariable Calculus | |
Coverage of both probability and statistics. Recommended options: 1 | 4 | |
Intermediate Probability and Statistics (preferred) | ||
or EN.553.211 | Probability and Statistics for the Life Sciences | |
Probability and Mathematical Statistics | ||
Total Credits | 16 |
- 1
Students may use AP Statistics credit to meet the statistics requirement, but then they must take EN.553.420 Probability to meet the probability requirement. In addition, those students must take an additional 4 credits of 200-level or higher coursework from the Math (AS.110) or Applied Math & Statistics (EN.553) departments.
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 40 required CS credits are comprised of Core, Foundations, Upper-Level, Ethics, Team, 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 with 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 40-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 | ||
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 will count towards the Free Electives. 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-LEVELS
A grade of C- or higher is required. At least twelve Upper-Level CS credits must be taken, not including the required core course, EN.601.433 Intro Algorithms. Out of 12, at least 6 credits of the Upper-Level requirement must be satisfied by courses in two of four Classification Areas (not including Theory). The additional 6 credits may be satisfied by courses carrying any of the five CS Classification Areas. A maximum of 3 credits of Customized Academic Learning (CAL) can be applied towards the upper-level requirement.
Some upper-level courses may have Calculus III, Probability/Statistics, or Linear Algebra as prerequisites, so students should plan accordingly.
Code | Title | Credits |
---|---|---|
Classification Areas | ||
At least one course from two of these four different classification areas: | 6 | |
Applications: POS Tag CSCI-APPL | ||
Reasoning: POS Tag CSCI-RSNG | ||
Software: POS Tag CSCI-SOFT | ||
Systems: POS Tag CSCI-SYST | ||
Other CS Upper-Level Courses | ||
At least 6 credits of CS courses numbered EN.601.3xx - EN.601.5xx or courses with one of five area classifications | 6 | |
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 | ||
Out of 6, a maximum of 3 credits of CAL (EN.601.5xx) can be applied towards the upper-level credits 2 | ||
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
Students who are doing the Senior Honors Thesis option (EN.601.519 Senior Honors Thesis and EN.601.520 Senior Honors Thesis) may use an additional 3 credits of CAL towards this requirement, for a total of six.
ETHICS
Ethics courses have POS Tag, CSCI-ETHS.
Code | Title | Credits |
---|---|---|
Complete one of the courses: | ||
Computer Ethics | ||
The Ethics of Artificial Intelligence and Automation 1 |
- 1
EN.601.124 The Ethics of Artificial Intelligence and Automation may count towards the 40-CS credit requirement or towards the Distributional H/S requirements, but not both.
TEAM
Team courses have POS tag CSCI-TEAM. These courses may overlap with other requirements.
Code | Title | Credits |
---|---|---|
Complete one of the courses: | ||
User Interfaces and Mobile Applications | ||
Computer Science Innovation & Entrepreneurship II | ||
Object Oriented Software Engineering | ||
Computational Genomics: Sequences | ||
Computational Biomedical Research | ||
Applications of Augmented Reality | ||
Machine Learning: Artificial Intelligence System Design & Development | ||
Introduction to Human-Computer Interaction | ||
Computer Integrated Surgery II - Teams | ||
Biomedical Data Design (count towards CS other elective credits, not upper-level CS.) | ||
Biomedical Data Design II (count towards CS other elective credits, not upper-level CS.) |
CS ELECTIVES
A grade of C- or higher is required. At most 4 credits with Satisfactory/Unsatisfactory (S/U) grades will be accepted, but only for courses that are not offered for a grade.
Code | Title | Credits |
---|---|---|
Additional CS courses to reach 40 credits 1, 2 |
- 1
No more than 6 credits of EN.601.5xx and 3 credits of 1-credit special topics courses can be applied towards your CS total credits. Students who are doing the Senior Honors Thesis option(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 40-CS credit requirement, for a total of 9 credits.
- 2
Six of the 40 required credits may be from non-CS "Other" courses. See Non-CS Courses below for more information.
NON-CS COURSES
There are two groups of courses without a CS department course number (EN.601.xxx) that may be applied toward CS credit requirements. For the most updated information, visit the CS website.
Group 1: Non-Departmental Courses
These special cross-listed courses are taught by joint faculty and/or used to have CS course numbers and carry CS area designator POS tags. As such, these courses may count toward the CS upper-level credits.
Code | Title | Credits |
---|---|---|
Probabilistic Models of the Visual Cortex | ||
or AS.050.675 | Probabilistic Models of the Visual Cortex | |
Information Extraction | ||
Computational Genomics: Data Analysis | ||
Computing the Transcriptome | ||
Foundations of Computational Biology and Bioinformatics | ||
or EN.580.688 | Foundations of Computational Biology and Bioinformatics | |
Network Security |
Group 2: CS "Other"
A maximum of six total credits from the following courses may count toward the CS credit requirements. They may be counted only towards CS lower-level elective credits, regardless of the course number. These courses have POS Tag CSCI-OTHR.
CS "Other" Electrical and Computer Engineering Courses
Code | Title | Credits |
---|---|---|
Introduction To VLSI | ||
Microprocessor Lab I | ||
Machine Learning for Signal Processing | ||
or EN.520.612 | Machine Learning for Signal Processing | |
FPGA Synthesis Lab | ||
Medical Imaging Systems | ||
Medical Image Analysis | ||
Machine Learning for Medical Applications | ||
Information Theory | ||
Electronics Design Lab | ||
Advanced Micro-Processor Lab | ||
Leading Innovation Design Team | ||
ECE Ideation and Design Lab | ||
CAD Design of Digital VLSI Systems I (Juniors/Seniors) |
CS "Other" Applied Math & Statistics Courses
These courses may count towards CS elective credit or the CS mathematics requirement, but not both.
Code | Title | Credits |
---|---|---|
Introduction to Optimization I | ||
Introduction to Optimization II | ||
Cryptology and Coding | ||
Research and Design in Applied Mathematics: Data Mining | ||
Introduction to Data Science | ||
Computational Molecular Medicine | ||
Network Models in Operations Research | ||
Combinatorial Analysis | ||
Graph Theory | ||
Mathematical Image Analysis |
CS "Other" Biomedical Engineering Courses
Code | Title | Credits |
---|---|---|
Biomedical Data Design | ||
Biomedical Data Science | ||
Biomedical Data Science Laboratory | ||
Precision Care Medicine II | ||
Learning, Estimation and Control | ||
or EN.580.691 | Learning, Estimation and Control |
CS "Other" Information Security Institute Courses
Code | Title | Credits |
---|---|---|
Ethical Hacking | ||
Computer Intrusion Detection | ||
Computer Forensics | ||
Software Vulnerability Analysis | ||
Cloud Computing Security | ||
Advanced Computer Forensics |
CS "Other" Miscellaneous
Code | Title | Credits |
---|---|---|
Reading the Mind: Computational Cognitive Neuroscience of Vision | ||
Mathematical and Computational Foundations of Data Science | ||
Introduction to Practical Data Science: Beautiful Data | ||
Applied Quantum Information | ||
Modeling the Living Cell | ||
Gateway Data Science | ||
Computational Protein Structure Prediction and Design | ||
Multidisciplinary Engineering Design 2 | ||
Computer Science Innovation and Entrepreneurship |
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 |
Humanities/Social Science Course | 3 | EN.601.104 | 1 |
Writing Course or FYS Course (EN.501.xxx)1 | 3 | FYS Course (EN.501.xxx) or Writing course1 | 2-3 |
Free Elective | 1-3 | Humanities/Social Science Course | 3 |
14-16 | 14-15 | ||
Second Year | |||
First Semester | Credits | Second Semester | Credits |
EN.601.226 | 4 | EN.601.229 | 3 |
EN.601.230 | 4 | 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 |
18 | 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 121-124 |
(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.
Accreditation Statement
The Bachelor of Science in Computer Science degree program is accredited by the Computing Accreditation Commission of ABET under the General Criteria and the Program Criteria for Computer Science and similarly named computing programs.
Program Educational Objectives
What our graduates should be able to do several years after graduation:
- 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.
Student Outcomes
Students graduating with a B.S. in computer science will be able to:
- 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.
Enrollments and Graduates
Enrollment*
Term | Total | First-Year | Sophomore | Junior | Senior |
---|---|---|---|---|---|
Fall 2017 | 312 | 72 | 76 | 73 | 91 |
Fall 2018 | 340 | 61 | 113 | 88 | 78 |
Fall 2019 | 384 | 75 | 90 | 117 | 102 |
Fall 2020 | 422 | 83 | 108 | 98 | 133 |
Fall 2021 | 436 | 92 | 108 | 118 | 118 |
Fall 2022 | 528 | 107 | 136 | 145 | 140 |
Fall 2023 | 515 | 97 | 128 | 144 | 146 |
B.S. Degrees Awarded**
Academic Year | Total |
---|---|
2017-2018 | 87 |
2018-2019 | 74 |
2019-2020 | 99 |
2020-2021 | 131 |
2021-2022 | 110 |
2022-2023 | 133 |
- *
Based on Fall census each year, 1st majors only.
- **
Includes August, December, and May conferrals each academic year.