(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; while a few are directed towards career paths: software engineering, entrepreneurship/business computing, and video game design. Further information on these focus areas may be found in the computer science undergraduate advising manual.
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.
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.
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. 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 126 credits. The basic requirements for the B.S. degree are as follows:
|Two Writing Intensive Courses|
Details and course recommendations for these distributional requirements are below. These requirements add up to 100 credits and fulfill general university and WSE requirements, leaving 26 pure elective credits. Except for electives, courses should not be taken on an 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. The Courses and Curriculum Planning section of the departmental Course Information webpage has lists of course area designations (Applications, Reasoning, Software, Systems, Theory), approved science courses, and courses approved as "CS other."
|Computer Science 1|
|Core: The following foundational courses in computer science must be included in a student's program:|
|EN.601.104||Computer Ethics (or Practical Ethics for Future Leaders which does not count towards CS credits)||1|
|EN.500.112||Gateway Computing: JAVA (or equivalent)||3|
|EN.601.229||Computer System Fundamentals||3|
|EN.601.231||Automata & Computation Theory||3|
|Upper: At least 16 credit hours must be at the 300-level or above, including EN.601.433. At least one course in two different classification areas (Applications, Reasoning, Software, Systems) must be chosen in addition to Theory (Algorithms). An exhaustive list of the area classifications for each of our courses may be found on the department’s website linked above. They will also be encoded as POS (program of study) tags in SIS. 2||13|
|CS Electives: Eight additional credits of Computer Science are required. 3||8|
|Team: Students must take at least one of the following courses to satisfy the team requirement. The course satisfying this requirement may overlap other requirements.|
|EN.601.290||User Interfaces and Mobile Applications||3|
|EN.601.295||Developing Health IT Applications||3|
|EN.601.310||Software for Resilient Communities||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.490||Introduction to Human-Computer Interaction||3|
|EN.601.496||Computer Integrated Surgery II - Teams||3|
|EN.580.437||Neuro Data Design I (counts as "CS other")||4|
|EN.580.438||Neuro Data Design II (counts as "CS other")||4|
|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 courses 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. Note that students will need at least six courses to fulfill the credit requirement. Some highly recommended math electives are: 4||12|
|EN.553.420||Introduction to Probability||4|
|EN.553.430||Introduction to Statistics||4|
|At least two semesters of physics or two semesters of chemistry, with the associated laboratories, must be included. The remaining courses must be chosen in accordance with the list posted on the department’s website, which includes most 'N' (natural science) designated courses in the Sciences and Engineering, but not all. At most 2 credits from S/U intersession courses may be used to fulfill this requirement.||16|
|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. 5||18|
|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 (eg, courses in professional, fiction or expository writing). These courses may overlap other requirements.|
|Electives may be any credit bearing courses, to be chosen by the student with the guidance of their advisor as needed.||26|
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 this requirement. 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.
Note that course descriptions include old area designators which may have changed in 2019.
Up to 6 of the 42 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). See department website for the list.
AP Statistics credits may not be used to satisfy these credit requirements; however, they do meet the need for coverage of statistics (not probability).
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.