2021 Undergraduate Advising Manual

Welcome to the Computer Science Department! The current Department Head is Prof. Randal Burns and the Director of Undergraduate Studies (DUS) is Dr. Joanne Selinski. Kelly Culotta is the Sr. Academic Coordinator for undergraduate students. We hope you will find this manual to be a helpful guide as an undergraduate in our department. We also have many resources available on-line through our department website. Our main office is located in Malone 160. Note that the program requirement here apply to students matriculating at JHU in Fall 2021 and beyond. Students who started before then will (by default) be grandfathered under the old requirements. However, they may also choose to follow the new requirements instead. Mixing and matching of requirements is not allowed except for the transitions explicitly mentioned below.


  • The Computer Science Department 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, http://www.abet.org. 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 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. For CS Minor program requirements please visit this webpage.

    There are several other closely related degree options that might interest you, however they are not addressed in this manual. The Computer Science Department 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). And lastly, you may find the MSE in Robotics offered by LCSR, or the Masters in Information Security (MSSI) offered through the Information Security Institute to be an attractive next step. Those masters programs are distinct from the graduate programs in Computer Science (MSE and PhD) that students may also progress into. General information on concurrently pursuing a masters degree while finishing an undergraduate degree is included below.

  • The first step in declaring a first or second major, or a minor in computer science is to submit an online form through SIS. You can do so by logging into SIS. Then, go to “Registration” > “Online Forms” > “Add Major/Minor”. If you are adding CS as a major then you will also need to visit the Director of Undergraduate Studies (DUS), Joanne Selinski, or the Undergraduate Program Coordinator, Kelly Culotta, in order to get your form approved. They will review your courses and provide guidance on choosing the most appropriate program of study. They will also assign you a CS faculty advisor if you decide to pursue a program. The declaration will be reflected in SIS once this is done. See Joanne’s website for both their hours and locations, or email advising -at- cs.jhu.edu to reach both of them at once.

  • CS first and second majors are all assigned an advisor from among the CS faculty. CS minors maybe advised by academic staff or faculty. Once an advisor is chosen, it is your responsibility to schedule a meeting at least once a semester in order 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. You will be given your advisor’s email address, and general office location. Please remember that our faculty do travel for conferences and other activities, so you should try to schedule necessary meetings at least one week in advance. However, most faculty have an open door policy welcoming students for informal chats if you catch them in their office.

    As you get to know our faculty and the field of CS better, you may request an advisor change to one whose interests match yours, or simply someone with whom you would prefer to work. If so, simply send an email to advising@cs.jhu.edu with the specifics of your request. It is recommended that you ask your intended new advisor if he or she will take you on as an advisee before requesting a change. (We try to maintain a reasonable balance of advisees per faculty member.)

    You have several resources for advising in addition to your major faculty advisor. Joanne and Kelly both serve as a general advisors for the department. However, they will only sign forms or release holds for assigned advisors if faculty are unavailable and ask them to act on their behalf. They 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. Lastly, the Homewood Advising Office in Wyman 170, provides support for academics including tutoring and pre-professional advising, as well as programs such as Study Abroad. We strongly advise all students to register with the Career Center as early as possible for their expertise and events regarding internships and job opportunities.

  • Students are expected to follow the degree requirements in effect at the time that they matriculated at JHU. However, you also have the option of satisfying a more recent set of requirements. It is imperative in either case that you follow one complete set of requirements. You cannot mix and match from various years. Students should consult with their advisors regarding their program of study, but ultimately it is each student’s responsibility (not the advisor’s) to make sure he or she has met all the requirements. Under special circumstances a student may request a waiver or substitution of a departmental requirement. This must be first approved by the faculty advisor, and and then by the department chair. Any 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. These Excel files, one for majors (BS and BA) and one for the minor, are all available from the department website. Majors must bring updated copies of this worksheet to each semesterly advising meeting and email a copy to advising -at- cs.jhu.edu every semester. Once their last semester courses are finalized, students must send a final worksheet to advising -at- 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. Lastly, majors are required to complete a departmental Senior Exit Survey (to be distributed by email), which also gets returned to Joanne.

  • The CS Department provides two computer labs for its undergraduate students, located in Malone 122 and G61. Malone 122 is a large collaboration room consisting of conference tables with internet and electrical hook-ups 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 comes along with getting your undergraduate unix server account (see below). Additional facilities are available at the campus level, including general purpose computing labs, a digital media center, and wireless access to the Internet.

    All CS students are eligible to receive accounts to access our undergraduate linux file server. In order to get access, you must submit an Account Request Form, available in the department main office, Malone 160. This generally takes a few days to process. You will need to bring your J-card to Steve (in G61A between 12:30-2:30pm most days) in order to get your login and password information and set-up access to the computer lab and building.

    The linux server provides software that you will use in many courses, as well as email. The department maintains several mailing lists for sending notices to students. Make sure that the support staff and the DUS have the email address that you prefer to use on their lists. If you are not going to use your CS account for email, then 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 “support@cs.jhu.edu” and be as specific as possible regarding the problem.

  • [See also our undergraduate research web resource.]

    In accordance with Hopkins’ mission as a research university, undergraduate students in computer science are encouraged to gain some research experience. The primary mechanism for getting involved is to approach a faculty member whose area interests you and ask how you can participate. Generally the faculty member will expect you to have a course in their area in order to get a background for actual research projects. Several upper level courses have project components which often lead to further research. Also, some research groups may have opportunities to learn about their area while serving as a research lab administrator or webmaster.

    In addition to the various independent undergraduate courses available in the department, there are several programs specifically designed to promote undergraduate research: the Pistritto Research Fellowship and the Senior Honors Thesis. Although both programs are usually pursued as individual efforts, they have allowed group projects in the past.

    The Pistritto Research Fellowship is an application based program which awards a stipend to a student annually for research in information visualization. A call for applications is sent via email each spring for the following academic year. The fellowship recipient may choose to pursue the research during the summer or during the regular school year, in conjunction with the sponsoring faculty member.

    The Senior Honors Thesis program enables students with CS course GPAs of 3.5 or greater to pursue a full year (6 credits) of research with a faculty member. Interested students must submit a thesis proposal in spring of their junior year. If accepted, they will register for the courses 601.519 and 601.520 during senior year while doing the research. They are required to give a presentation on their work and submit a final thesis report at the end of the spring semester. With departmental faculty approval of the work, the student will then receive the distinction “Departmental Honors with Thesis”. Please visit the Senior Thesis webpage for more details.

    Departmental Honors (without thesis) are awarded to students who graduate with a computer science course GPA of 3.5 or above.

  • [See also our undergraduate careers web resource.]

    Students are encouraged to pursue internships during winter and summer breaks. Generally these are done for money in the CS field. However, the university does have policies regarding receiving credit instead of pay for appropriately oriented work. Please sign-up for the department jobs mailing list. You should also register with the campus Life Design Lab (Handshake) in order to stay abreast of campus wide visits and job fairs. It is always the student’s responsibility to apply directly to a company for any internships or jobs which interest them. We do not have the authority to place students into any positions.

  • See our undergraduate life web resource for information about the many and varied student groups supported by the CS department.

  • The combined program at Hopkins enables undergraduates to apply for and begin taking courses towards a Masters degree before completing their bachelor degrees. Most students apply for the program in their junior year, and will finish both degrees in five years total. It is not necessary for your undergraduate major and your masters degree to be in the exact same field. For example, some CS undergraduates do the concurrent program to get a Masters in Security Informatics. Mixing the degrees is also an alternative to doing a double major in closely related fields such as CS and computer engineering or math. As a concurrent student, you must satisfy all the requirements of your bachelors degree as well as all the requirements of the masters degree. Some departments may permit an overlap of at most two courses. All other courses, including undergraduate electives, must be separate and distinct for the two degrees. If you are interested in applying for the concurrent program, please see our Graduate Program Coordinator, Revelie Niles, in Malone 160, or simply apply on-line through the university’s graduate admissions website.

  • This section provides the nitty-gritty details and clarifications of the requirements for the BS and BA major programs, for students entering in Fall 2021 and beyond. It is organized according to requirement category, and within each provides specifics for each program.

    Computer Science Courses

    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).

    Math Courses

    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.

    Science Courses

    Students must take two semesters of core science courses (any combination of Physics, Chemistry, Biology), with their 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.

    Liberal Arts

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

    • 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 on them, but can be from any department. For the BS degree, at most 2 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.
    • 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 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.
    • The university requires writing (‘W’) designated courses, each at least 3 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 2 of these courses, and BA first majors must take at least 4. 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.315, AS.060.100, AS.060.113, AS.220.105, AS.180.248, AS.290.303, AS.360.133.

    Electives and Total Credits

    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.

  • In order to transition from the old requirements to the new requirements (BS or BA), the trickiest part will be the requirements change from two required courses 553.171 Discrete Math (4 cr) + 601.231 Automata & Computation Theory (3 cr) to one required (CS) course 601.230 Mathematical Foundations for Computer Science (4 cr). In all cases you will still need to 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.

  • Currently there is no mechanism in SIS or degree audit for students entering JHU before Fall 2021 to indicate which set of requirements they plan to fulfill. We will try to get this enabled in degree audit somehow (but it’s not under our control). In the meantime, students should 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.
Back to top