Questions about undergraduate academic programs? Contact:

Kelly Culotta, Sr. Academic Program Coordinator (Undergraduate Program)

Joanne Selinski, Director of Undergraduate Studies

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 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/MS program can be found here and below.

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”. If you are adding CS as a major, you also need to meet with the director of Undergraduate Studies (DUS), Joanne Selinski, or the Undergraduate Program Coordinator, Kelly Culotta and have your form approved. They will review your courses and provide guidance on choosing the most appropriate program of study and will assign you a CS faculty adviser. The declaration of your major will be reflected in SIS once this is completed. Office hours and locations are available on Joanne’s website . You also can email them.

CS first and second majors are all assigned CS faculty member as an adviser. CS minors maybe advised by academic staff or faculty. Once an adviser is chosen, it is your responsibility to schedule a meeting at least once a semester to discuss your general well-being, academic progress, and semester course selections. You are also encouraged to discuss extracurricular activities, research, career, and graduate school plans with your advisor. 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. However, most faculty have an open door policy and welcome students to visit for informal chats so it is possible to meet with them this way, too.

As you get to know CS faculty and their areas of interest, you may request to change your adviser to someone whose interests match yours, or simply someone with whom you would prefer to work. If you wish to do this, simply send an email to with the specifics of your request. It is recommended that you ask your intended new advisor if they will take you on as an advisee before requesting a change. (We try to maintain a reasonable balance of advisees per faculty member.)

In addition to your major faculty adviser, you also have several resources for advising. Joanne and Kelly both serve as a general advisers for the department. However, they only will act on behalf of a student’s assigned adviser to sign forms or release holds for students if student’s adviser is unavailable. Joanne and Kelly are always available for general consultation on degree programs, your progress, future options, special opportunities within the department and school, and life in general. At the school level, the WSE Advising Office in Wyman 125 provides many services for engineering students. These include general advising on school-wide policies and opportunities, transfer and study abroad approvals, as well as special help for academic struggles. The Homewood Advising Office in Wyman 170, provides support for academics, including tutoring and pre-professional advising, as well as for programs such as study abroad. We strongly advise all students to register with the Life Design Lab as early as possible to learn about events and receive counseling related to events, career goals, internships, and job opportunities.

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 adviser about their program of study, but ultimately it is each student’s responsibility (not the adviser’s) to make sure they meet all degree requirements. Under special circumstances, a student may request a waiver or substitution of a departmental requirement. This must first be approved by the student’s faculty adviser and and then by the department chair/head. All approved exceptions must be documented with an email to Joanne and Kelly, as well as a WSE substitution/waiver form for their files.

Students must keep track of their degree progress using a departmental worksheet. There is one worksheet for the majors (BS and BA) and another for the minor. Majors must share updated copies of this worksheet with their faculty advisor prior to each semester’s advising meeting, and whenever registration changes are made. Once a student’s last semester’s courses are finalized, the student must send a final worksheet to 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 by email).

Note that the Humanties/Social Science and Writing requirements listed below only apply to 1st majors in CS. All others must follow the relevant requirements from their first major/school instead. See this catalog policy for more details.

The CS IT department provides two computer labs for its undergraduates, which are 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 (which also includes your undergraduate unix server account–see below). Additional computing facilities are available on the Homewood campus, including general purpose computing labs and a digital media center.

All CS students are eligible to receive accounts to access the department’s undergraduate linux file server. In order to get access, you must submit an Account Request Form. This generally takes a few days to process. You will need to bring your J-card to Steve (in G61A between 12:30-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, as well as email. The department maintains several mailing lists for communicating with students. Make sure that the support staff and the DUS 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 computer support FAQ wiki on the department webpages to learn how to do common tasks. If you have questions or problems regarding the CS computing facilities at any point, please email 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.)


  • Students must be Computer Science majors, with at least a 3.5 GPA in computer science courses after the spring of their junior year.
  • Students must submit a thesis proposal in the spring of junior year to the faculty member with whom they intend to work. The proposals must have signed faculty acceptances before thesis course registration; copies will be held by the department administrator.
  • Students will sign up for two three-credit courses (601.519-520) while doing the 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 the CS faculty will decide whether to accept each thesis for honors. (Ie, 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 three additional independent type credits towards their CS credit requirements. (BA students can only count six total independent credits, including senior thesis.)
  • If a student would like to submit the thesis to the MSE Library (not required), the thesis advisor or department will pay for the binding.

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


See the Research Opportunities page

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

Major Degree Requirements

Detailed requirements for the BS and BA major in the Department of Computer Science for students entering in fall 2021 and beyond. including policies and processes related to old vs. new requirements

Required courses

  • (BS only) 601.104 Computer Ethics [or see below] (1)
  • 500.112/113/114 Gateway Computing or AP Comp Sci A or equivalent (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)
  • 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 course. Furthermore, BS students must have at least one upper level course in two of these four different classification areas: Applications, Systems, Software and Reasoning. An exhaustive list of the area classifications for each of our courses may be found here.

BS students must also take at least one Team designated course, carried by these courses: 601.290 User Interfaces & Mobile Apps, 601.295 Developing Health IT Web Apps, 601.310 Software for Resilient Communities, 601.411 CSIE II, 601.421 Object Oriented Software Engineering, 601.447 Computational Genomics: Sequences, 601.452 Computational Biomedical Research, 601.490 Intro HCI, 601.496 CIS II – Teams, 580.437/438 Neuro Data Design (only counts as “CS other” credit). [Note that 601.456 CIS II is not approved for Team – you must take 601.496 instead.] This Team course may overlap other course requirements, for example to count as both Team and Software.

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

  • Practical Ethics for Future Leaders (660.400/406) may be used as a substitute for the computer ethics requirement for the BS program, but does not count towards the CS total credits at all. Rather the 3-credit version 660.400+406 may be applied towards your H/S requirements and the 2-credit version 660.400 counts as elective credits.
  • At most 3 credits of short courses (1-credit special topics courses) can be counted toward this requirement.
  • The limits on total independent type credits (courses numbered 601.5xx) are 6 for the BS and 3 for the BA. However, students doing the Senior Honors Thesis (601.519-520) may use an additional three credits of independent work toward their CS requirements.
  • No courses with grades below C- or with S/U grades can be used to fulfill the CS course requirements, unless they are not offered for a 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 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).

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 Math and Statistics. (‘Q’ designated courses in other departments can not be counted here.) However, 553.171 Discrete Mathematics may not count towards these math requirements. For the BS all the remaining courses must be 200-level or above. For the BA at least one course must be 200-level or above. Lastly, the BS math courses must include coverage of both probability and statistics, which can be satisfied in many ways, including taking any of the 553.3xx combined Probability & Statistics courses. For BS students, AP Statistics credit covers the need for statistics but not probability, and may not be counted towards the math credit requirements. Some other highly recommended math electives are Linear Algebra, Intro to Probability, Intro to 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, biology), with the associated labs, totaling at least eight 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.

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

  • Six courses, each at least three credits, in the humanities and social sciences must be taken. These courses must have either an ‘H’ or ‘S’ area designator on them, 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 three credits and taken for a grade (not S/U), 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.060.100, AS.060.113, AS.220.105, AS.180.248, AS.290.303, AS.360.133.
  • BA students are required to demonstrate proficiency at the intermediate level or take at least six 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 towards electives (see below), or towards 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 major or not.

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 82 credits for the BS and 81 credits for the BA, leaving room for many electives. Except for electives and where noted above, courses should not be taken on an S/U basis.

If you choose to transition from the old requirements (those that were in place when you matriculated) to the new requirements (BS or BA), the most challenging aspect of this process is that requirements changed from two required courses 553.171 Discrete Math (four credits) + 601.231 Automata & Computation Theory (three credits) to one required (CS) course 601.230 Mathematical Foundations for Computer Science (four credits). 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 Mathematical Foundations of CS core required course, and count Automata’s 3 credits towards your CS requirements. However, as noted above, the credits for Discrete Math do not count towards the new math requirements. Also, you will not be allowed to register for 601.230 Mathematical Foundations for CS. Lastly note that the one credit difference between Automata (3) & MFCS (4) means that you will need to make-up that missing credit with other CS to reach the required total.
  3. If you’ve already taken 553.171 Discrete Math but NOT 601.231 Automata & Computation Theory and want to follow the new requirements, you must choose one of these three options. This category also applies to AMS/CS double majors who are required to take Discrete Math for AMS. (Note that Discrete Math does not count towards 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 don’t take the new course 601.230. This will put you in category 2 above.
    • Take 601.431 Theory of Computation later (offered once/year, starting 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 CS will be offered every semester starting Spring 2022.
  • Students will not be allowed to register for 601.230 Mathematical Foundations for CS 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 detailed above.

In degree audit there is a mechanism for students entering JHU before Fall 2021 to choose the new requirements, or the ones they entered under. Please look for “select alternate path” links throughout the audit to customize it to match your intentions.

Students should also use the appropriate major worksheet for the set of requirements they are choosing (yellow == old, green == new), and make sure to let their advisors know as well.