Questions about undergraduate academic programs? Contact advising@cs.jhu.edu.

Undergraduate Advising

Academic resources, policies and procedures, and opportunities.

The Department of Computer Science offers three types of undergraduate programs. For those who intend to pursue a mainstream career in computer science, we recommend the Bachelor of Science degree, which is accredited by the Computing Accreditation Commission of ABET. For those who want a broader program of study, perhaps so that computing technology will empower them in other fields, we offer a Bachelor of Arts degree program. Students in other majors may also choose to complete a minor in computer science. This advising manual applies to students in these three programs. For specific major program degree requirements, please see below. CS minor program requirements can be found here.

There are several other closely related degree options that might interest you; however, they are not addressed in this manual. The Department of Computer Science and the Department of Electrical and Computer Engineering jointly offer a bachelor’s degree in Computer Engineering. There is also a minor in Computer-Integrated Surgery managed by the Engineering Research Center for Computer-Integrated Surgical Systems and Technology (CISST ERC) and a minor in Robotics offered through the Laboratory for Computational Sensing and Robotics (LCSR). We also encourage you to learn about the Department of Computer Science and the Information Security Institute’s Master’s in Information Security (MSSI) program and the LCSR’s MSE in Robotics. Both master’s programs are distinct from the department’s MSE and PhD programs in computer science. General information on the combined BS/MSE program can be found here.

The first step toward declaring a first or second major or a minor in computer science is submitting a form through SIS. You can do so by logging into SIS and choosing “Registration” > “Online Forms” > “Add Major/Minor.” You will then need to prepare a completion plan for the program, and meet with a departmental staff member for review and approval. Detailed instructions along with office hours and locations are available on this website. You also can email the CS advising team.

All CS majors will be assigned a WSE Academic Advisor upon declaration approval. They will be your primary resource for degree requirements and course registration, as well as all school-wide policies and opportunities, transfer and study abroad approvals, and special help and support for academic struggles. We strongly advise all students to register with the Life Design Lab as early as possible to learn about upcoming events and receive counseling related to events, career goals, internships, and job opportunities.

Within the Computer Science Department, there is an undergraduate team consisting of the Director of  Undergraduate Studies and Academic Program Coordinators who can also provide guidance on degree requirements, as well as student groups and other departmental matters. Their office hours and locations are available on this website, and you can reach them collectively with this CS advising team email.

CS first majors are all assigned a CS faculty member as a mentor. It is your responsibility to schedule a meeting with your mentor at least once a semester to discuss your general well-being, academic progress, and career interests, including research opportunities and graduate school options. Please keep in mind that our faculty do travel for conferences and other activities, so you should try to schedule meetings at least one week in advance. 2nd majors and minors should reach out to Prof. Joanne Selinski or Prof. Sara More for discipline specific guidance.

Students are expected to follow the degree requirements that are in effect at the time they matriculate at JHU. However, students also have the option to instead satisfy requirements that go into effect after they matriculate. Whichever option you choose, it is imperative that you follow only that one complete set of requirements and do not “mix and match” from different years. Students should consult with their advisor about their program of study, but ultimately it is each student’s responsibility (not the advisor’s) to make sure that they meet all degree requirements. Under special circumstances, a student may request a waiver for or substitution of a departmental requirement, which will require several approvals and documentation.

CS majors must keep track of their degree progress using a departmental worksheet. You can access sample worksheets for general studies in CS or several customized versions on our website in the first section. Majors should share updated copies of this worksheet with their advisor prior to each semester’s advising meeting, as well as whenever registration changes are made. Once a student’s last semester’s courses are finalized, the student must send a final worksheet to advising@cs.jhu.edu for degree verification. All students are required to submit a Graduation Application Form through SIS when registering for their last semester, listing all degrees and programs they expect to complete. Majors also are required to complete a departmental Senior Exit Survey distributed via email.

Note that the First-Year Seminar, Humanities/Social Science and Writing requirements listed below only apply to first majors in CS. All others must follow the relevant requirements from their first major/school instead. See this catalogue policy for more details.

The CS IT department provides two computer labs for its undergraduates, located in Malone 122 and G61. Malone 122 is a large collaboration room with conference tables meant for laptop use, as well as several smaller breakout rooms for team meetings and study. Malone G61 provides a quiet environment with individual workstations. Students have 24/7 secure access to the labs through their J-Cards once validated. (This also includes your undergraduate Unix server account—see below.) Additional computing facilities are available on the Homewood campus, including general-purpose computing labs and the Digital Media Center.

All CS students are eligible to receive accounts to access the department’s undergraduate Linux server. In order to gain access, you must submit an Account Request Form, which generally takes a few days to process. You will need to bring your J-Card to Steve (in G61A between 12:30 and 2:30 p.m. most days) to get your login and password information and set up access to the computer lab and building.

The Linux server includes software you will use in many of your courses and your CS email. The department maintains several mailing lists for communicating with students. Make sure that the support staff and the Director of Undergraduate Studies have your preferred email address. If you are not going to use your CS account for email, you should set up an automatic forward to your email of choice. Please consult the CS IT Support Wiki to learn how to perform common tasks. If you have questions or problems regarding the CS computing facilities at any point, please email support@cs.jhu.edu and be as specific as possible regarding the problem.

Students will receive the Honors with Thesis designation only if the faculty vote to accept their thesis after successful completion of the steps outlined below. (Note: General departmental honors are awarded to all graduating majors who earn a GPA of 3.5 or above in their computer science courses.)

Requirements:

  • Students must be computer science majors with at least a 3.5 GPA in CS courses after the spring of their third year.
  • Students must submit a thesis proposal in the spring of their third year to the faculty member with whom they intend to work. Proposals must have signed faculty acceptances before thesis course registration; copies will be held by the department administrator.
  • Students will sign up for two 3-credit courses (601.519-520) while doing thesis work, one per semester.
  • Progress checkpoints will be administered by individual faculty supervisors.
  • A first draft of the written thesis must be completed by May 1.
  • An oral presentation of the thesis work, open to all, must be held before the spring semester exam period.
  • A subcommittee of CS faculty will decide whether to accept each thesis for honors (i.e., successful completion of the agreed-upon work does guarantee credits, but does not guarantee the Honors with Thesis designation).
  • A final written thesis must be submitted to the department by May 15.
  • BS students may count at most 3 additional independent-type credits toward their CS credit requirements. (BA students can only count 6 total independent credits, including their senior thesis.)
  • If a student would like to submit their thesis to the MSE Library (not required), their thesis advisor or department will pay for the binding.

See the CS research areas to explore opportunities within the department and their associated faculty.

Please click here to learn more.

Information about the combined bachelor’s/master’s program can be found here.

Major Degree Requirements

Detailed requirements for the BS and BA in the Department of Computer Science for students entering in Fall 2024 and beyond, including policies and processes related to old vs. new requirements. (Students following an older set of requirements should consult the official university catalog for that entering year.)

Required Courses

  • Ethics (BS only) – choose one of:
    • 601.104 Computer Ethics (1)
    • 601.124 Ethics of Artificial Intelligence & Automation (3)
  • 500.112/113/114 Gateway Computing [C+ or better grade] or AP Computer Science A exam credit (3)
  • 601.220 Intermediate Programming (4)
  • 601.226 Data Structures (4)
  • 601.229 Computer System Fundamentals (3)
  • 601.230 Mathematical Foundations for Computer Science (4) or both of the following:
    • 553.171/172 Discrete Mathematics (4) (credits count as pure elective)
    • 601.431 Theory of Computation (3)
  • 601.433 Algorithms (3)

The total number of CS credits must be at least 40 for the BS and 33 for the BA, including the required courses and upper-level courses (601.≥300). Students must take at least 12 upper-level CS credits in addition to the required Algorithms [Theory] course. Furthermore, BS students must have at least one upper-level course in two of these four different classification areas: Applications, Reasoning, Software, Systems. Upper-level CS courses are those numbered 601.3xx-601.5xx or courses with a CS area POS tag. An exhaustive list of the area classifications for each of our courses may be found here and are coded as POS tags in SIS: CSCI-APPL, CSCI-RSNG, CSCI-SOFT, CSCI-SYST.

BS students must also take at least one Team-designated course, carried by these courses: 601.264 Practical Generative AI [added Spring 2025], 601.290 User Interfaces & Mobile Apps, 601.411 CSIE II, 601.421 Object Oriented Software Engineering, 601.443 Security and Privacy [added Fall 2024], 601.444 Medical Device Cybersecurity [added Spring 2025], 601.447 Computational Genomics: Sequences, 601.452 Computational Biomedical Research, 601.453 Applications of Augmented Reality [added Spring 2023], 601.486 ML: AI System Design & Development [added Fall 2023], 601.490 Intro HCI, 601.496 CIS II – Teams, 580.437/438 Neuro/Biomedical Data Design (only counts as CS “other” credit). [Please note that 601.456 CIS II is not approved for the Team designation; you must take 601.496 instead.] This Team course may overlap with other course requirements; for example, it may count as both Team and upper level or elective CS credit, according to the course number.

These additional rules regarding the CS course requirements apply to students in both the BS and BA programs:

  • The limits on total  CAL credits are 6 for the BS and 3 for the BA. However, students doing the Senior Honors Thesis (601.519-520) may use an additional 3 credits of independent work toward their CS requirements. For students entering Fall 2024 and beyond, at most 3 credits of customized academic learning (CAL) – courses numbered 601.5xx – may be counted towards the upper-level course requirement.
  • No courses with grades below C- or with S/U grades can be used to fulfill the CS course requirements unless the course cannot be taken for a letter grade. Furthermore, at most 4 S/U credits may be applied to the CS credit requirements, regardless of course type.
  • BS students may count up to 6 of the 40 required credits from an approved list of relevant courses in other departments, which includes some courses cross-listed in CS. These are coded with POS tag CSCI-OTHR in SIS.
  • 601.124 Ethics of AI & Automation may count as CS elective credits or H/S credits, but not both.
  • At most 3 credits of short courses (1-credit special topics courses) can be counted toward this requirement.

CS majors must take the following courses:

  • 110.108 Calculus I or AP equivalent (4)
  • 110.109 Calculus II or AP equivalent (4)

The total math credits must be at least 16 for both the BS and the BA; these courses should be taken for a grade. All courses in this category must be from one of the two math departments on campus: Mathematics or Applied Mathematics and Statistics. (Q-designated courses in other departments cannot be counted here.) For the BS, all remaining math courses must be 200-level or above. For the BA, at least one course must be 200-level or above. Lastly, BS math courses must include coverage of both probability and statistics, which can be satisfied in many ways, including taking any of the 553.xxx combined Probability and Statistics courses. For BS students, AP Statistics credit covers the need for statistics but not probability, and may not be counted toward the math credit requirements. Also note that 553.171 Discrete Mathematics may not count towards the BS math requirements. Some highly recommended math electives are Linear Algebra, Probability, Mathematical Statistics, and Calculus III, as well as analysis and algebra courses.

Students must take two semesters of core science courses (any combination of physics, chemistry, and biology), with the 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.

Students using AP Biology credit to meet this requirement will need to take two more science credits in order to reach the 8-credit minimum. These can come from any N-designated course except AS.250.205 Introduction to Computing and must be taken for a grade.

[New as of Fall 2024] As per school policy, all students are required to take either a 3-credit First-Year Seminar (FYS) or the 2-credit course EN.501.124 First-Year Seminar: Design Cornerstone (WSE 1st majors only). Fulfillment of this requirement is dependent on your 1st major.

The liberal arts requirements can be divided into three groups: H/S courses, writing courses, and foreign language.

  • Six courses, each at least 3 credits, in the humanities and social sciences must be taken. These courses must have either an H or S area designator, but can be from any department. For the BS degree, at most two of these courses may be taken S/U (if not counted towards the writing requirement). For the BA degree, at least two of these courses must be at the 300-level or above, and all must be taken for a grade.
  • The university requires writing (W) designated courses, each at least 3 credits and taken for a grade, for all degree programs. The school (WSE or KSAS) of your first major (primary degree) dictates which requirement applies to you. WSE BS students must take at least two of these courses and BA first majors must take at least four. The courses used to satisfy this requirement may overlap with other categories, such as H/S credits (if designated as such) or electives. Students must receive at least a C- grade or better in these writing courses. At least one course with a primary focus on writing in English must be chosen. Courses that satisfy this requirement are: EN.661.110, EN.661.111, EN.661.250, EN.661.251, EN.661.306, EN.661.315, EN.661.355, AS.220.105/106/108, AS.180.248, AS.290.303, AS.360.133, AS.004.101. [Also no longer offered course Expository Writing (any version).]
  • BA students are required to demonstrate proficiency at the intermediate level or take at least 6 credits in one foreign language in addition to the six H/S required courses. BS students are not required to take a foreign language, but they may count foreign language courses toward electives (see below) or toward the H/S requirement above even if they don’t carry an H or S designator. However, students must still have at least six ≥3-credit courses to fulfill the H/S requirement.

Note: The H/S and writing requirements above apply to first majors only. Second majors must follow the related requirements of their first major instead. However, the foreign language requirement applies to all those following the CS BA path, whether as a first or second major.

The total number of credits required for the BS or BA degree is 120. By university policy, no more than 18 D or D+ credits can be counted toward the total credit requirements for a degree. The requirements above add up to 84-85 credits for the BS and 83-84 credits for the BA, leaving room for many electives. Except for pure electives and where noted above, courses should not be taken on an S/U basis.

See the CS “Other” Courses page for information about non-CS department courses that may count toward our undergraduate programs.

If you choose to transition from old requirements (those that were in place when you matriculated) to new requirements (BS or BA), please note that the most challenging aspect of this process is that requirements changed from two required courses, 553.171 Discrete Math (4) and 601.231 Automata & Computation Theory (3), to one required CS course, 601.230 Mathematical Foundations for Computer Science (4). In all cases you must meet the credit totals and requirement details listed above. Students will fall into one of three categories:

  1. If you have not yet taken either 553.171 Discrete Math or 601.231 Automata & Computation Theory but want to follow the new requirements, you should not take either of them. Rather, wait until Spring 2022 when we will start offering 601.230 Mathematical Foundations for Computer Science (MFCS) and take that instead.
  2. If you’ve already taken both 553.171 Discrete Math AND 601.231 Automata & Computation Theory, we will waive the new MFCS core required course and count Automata & Computation Theory’s 3 credits toward your CS requirements. However, as noted above, the credits for Discrete Mathematics do not count toward the new math requirements. Also, you will not be allowed to register for 601.230 MFCS. Lastly, please note that the 1-credit difference between Automata & Computation Theory (3) and MFCS (4) means that you will need to make up that missing credit with another CS credit to reach the required total.
  3. If you’ve already taken 553.171 Discrete Mathematics but NOT 601.231 Automata & Computation Theory and want to follow the new requirements, you must choose one of the three options below. This category also applies to AMS/CS double majors who are required to take Discrete Mathematics for AMS. (Note that Discrete Mathematics does not count toward the new math requirements.)
    • Take 601.230 Mathematical Foundations for Computer Science (starting Spring 2022) to satisfy the new requirement.
    • Take 601.231 Automata & Computation Theory by Fall 2022 and do not take the new course 601.230 MFCS. This will put you in category 2 above.
    • Take 601.431 Theory of Computation later (offered once a year starting in 2023). This also puts you in category 2 above, with the difference that 601.431 can be counted towards upper-level CS credits instead of core if you prefer.

Additional notes on course offerings and registration:

  • 601.231 Automata & Computation Theory will only be offered through Fall 2022.
  • 601.230 Mathematical Foundations for Computer Science will be offered every semester starting Spring 2022.
  • Students will not be allowed to register for 601.230 Mathematical Foundations for Computer Science if they have taken 601.231 Automata & Computation Theory already or concurrently, and vice versa. In other words, you can only get credit for 601.230 or 601.231, but not both.

The remainder of the transition from old to new requirements should be straightforward based on the less restrictive requirements for math, science, and H/S courses as detailed above.