Department of Computer Science, Johns Hopkins University
spacerHomeAbout UsWhy Join UsPeopleAcademicsResearchEventsServices
Department of Computer Science, Johns Hopkins Universityspacer

Course Catalog: Undergraduate Programs

All undergraduate students majoring or minoring in computer science must have a faculty adviser in the department. They will be assigned an adviser as entering freshmen or upon deciding on the major/minor. Interested undergraduates (including minors) should see the Computer Science director of undergraduate studies (224 NEB) to declare a major or minor and be assigned a computer science adviser.

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 in other majors may pursue a minor in computer science or a minor in computer integrated surgery. Additional information regarding undergraduate programs can be found in the department's undergraduate advising manual or on the Web site at www.cs.jhu.edu. Some students majoring in computer science may be eligible for a concurrent bachelor's/master's degree program. Every major must follow a program approved by his/her faculty adviser.

Requirements for the B.S. Degree -- Effective Fall 2006

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: 42 credits in computer science, 22 credits in mathematics or applied mathematics and statistics, 16 credits in basic sciences, and 18 credits in humanities/social sciences. Details and course recommendations of these distributional requirements are below. These requirements add up to 98 credits and fulfill general university distribution requirements. Of the remaining 28 elective credits that students choose freely, at least 12 of them must be in the humanities, social sciences, arts or other disciplines that serve to broaden the student's background. These 12 credits may not be CS, ECE or math courses. Except for electives, courses should not be taken on a satisfactory/unsatisfactory basis. By university policy, no more than 18 D or D+ credits can be counted toward the total credit requirements for a degree.

Students must take either 600.105 M&Ms or 600.103 Introduction to Computer Science.Each is a 1-credit S/U course that may only be counted as an elective.

Computer Science (42 credits)

The following foundational courses in computer science must be included in a student's program:

Only one of:

Each of:

At least 16 credit hours, not including 600.333, must be at the 300-level or above. ?At least one course in each classification area of Analysis, Applications and Systems must be chosen.An exhaustive list of the area classifications for each of our courses may be found on the department's Web site.

Students must take at least one of the following courses which contain oral communication components: 600.321/421, 600.324/424, 600.392, 600.446, 600.493.

With the adviser's explicit permission regarding course selections, up to 6 of the 42 required credits may be taken in the Department of Electrical and Computer Engineering or the Information Security Institute.

No more than 6 credits of independent study (including 600.491-492 Computer Science Workshop I, II) and no more than 3 credits of short courses can be counted toward this requirement. However, B.S. students doing the Senior Honors Thesis (600.519-520) may use an additional three credits of independent work towards their CS requirements, for a total of nine credits.

600.101 Computer Fluency cannot be counted toward this requirement, nor toward the 126 credit total.

No courses with grades below C- or with satisfactory/unsatisfactory grades can be used to fulfill this requirement unless they are not offered for a grade.

Mathematics and Applied Mathematics and Statistics (22 credits)

The following courses must be included:

The remaining courses must be 200-level or above, and must include coverage of both probability and statistics. Other highly recommended math electives are: Calculus III, Linear Algebra and Differential Equations. Note that students will need at least six courses to fulfill the credit requirement. Entrepreneurship courses (551.xxx or 660.xxx) are not acceptable.

Basic Sciences (16 credits)

At least two semesters of physics or two semesters of chemistry, with the associated laboratory, must be included. The remaining courses must be chosen in accordance with the list posted on the department Web site, which includes most 'N' designated courses, but not all.

Humanities/Social Sciences (18 credits)

Six courses in the humanities and social sciences must be taken, with each course at least 3 credits. These courses must have either an H or S area designator on them. However, foreign language courses may be used to satisfy this requirement.

Writing Requirement

All B.S. candidates in Computer Science are required to fulfill the university's requirement of two writing intensive (W) courses, each at least 3 credits. Students must receive at least a C- grade or better in these writing courses.? At least one of the following options must be chosen:

Requirements for the B.A. Degree

To meet the course credit requirements for the B.A. in computer science, the student must complete a minimum of 120 credits. The basic requirements for the B.A. degree are: 30 credits in computer science, 18 credits in mathematics or applied mathematics and statistics, 12 credits in basic sciences, 18 credits in humanities/social sciences, and 6 credits in foreign languages. Details and course recommendations of these distributional requirements are below. These requirements add up to 84 credits and fulfill general university distribution requirements. The remaining 36 credits are electives, to be chosen by the student with the guidance and approval of his/her adviser. Except for electives, courses should not be taken on a satisfactory/unsatisfactory basis. By university policy, no more than 18 D or D+ credits can be counted toward the total credit requirements for a degree.

Students must take either 600.105 M&Ms or 600.103 Introduction to Computer Science.? Each is a 1-credit S/U course that may only be counted as an elective.

Computer Science (30 credits)

The following foundational courses in computer science should be included in a student's program:

Only one of:

Each of:

At least 15 credit hours must be at the 300-level or above. With the adviser's permission, up to 6 of the 30 required credits may be taken in the Department of Electrical and Computer Engineering.

The introductory courses 600.101 Computer Literacy and 600.113 Internet cannot be counted toward this requirement. However, they can be counted toward the 120 total credits needed for the degree.No more than 3 credits of short courses or 3 credits of independent study may be applied toward this requirement.? However, B.A. students doing the Senior Honors Thesis (600.519-520) may use an additional 3 credits of independent work towards their CS requirements, for a total of 6 credits.

No courses with grades below C- or with satisfactory/unsatisfactory grades may be used to fulfill this requirement unless they are not offered for a grade.

Mathematics and Applied Mathematics and Statistics (18 credits)

The following courses must be included:

At least one course must be 200-level or above. Highly recommended: Calculus III, Linear Algebra, Differential Equations, Probability/Statistics. Note that students will need at least five courses to fulfill the credit requirement. Entrepeneurship courses (551.xxx or 660.xxx) are not acceptable.

Basic Sciences (12 credits)

At least two semesters of physics or chemistry or a combination of both, with the associated laboratory, must be included. The remaining courses must be chosen in accordance with the list posted on the department Web site, which includes most designated courses, but not all.

Humanities/Social Sciences (18 credits)

Six courses in the Humanities/Social Sciences must be taken, with each course at least 3 credits. At least two 3-credit courses at the 300-level or above are required. As befits a B.A. degree, students have ample flexibility to choose courses that broaden the scope of their study, in consultation with their advisers. A subset of the courses selected to satisfy this requirement should demonstrate coherence within an area. Any course with (H) or (S) area designators may fulfill these distributional requirements.

Writing Requirement

All B.A. candidates in Computer Science are required to fulfill the university's requirement of four writing intensive (W) courses, each at least 3 credits. Students must receive at least a C- grade in these courses. Highly recommended, at least one of:

Foreign Languages (6 credits)

Two courses in a foreign language, with a total of at least 6 credits are required. These foreign language credits are separate and in addition to the 18 required humanities/social sciences credits.


Minor in Computer Science

To satisfy the course credit requirements for a minor in computer science, a student must take a minimum of seven courses, with a total of at least 22 credits, earning at least a C- in each course. These must include four core courses, to provide the student with a foundation, and three upper-level courses (300-level and above), to allow the student to pursue an advanced topic in depth.

Core Courses (4)

Upper-Level Courses (3)

These courses should be chosen to form a cohesive minor and must be accepted by the computer science minor adviser. It is strongly recommended that students choose all three courses from within one of the three research areas of analysis, applications, and systems. Each upper level course description in this catalog includes its area for reference. In addition, a current listing of courses grouped by area is provided on the departmental web site.

Short courses cannot be used toward the minor requirements.

Students whose primary major is in the Whiting School may use the same courses to satisfy the requirements of the primary major and also those of a computer science minor. Students who plan to fulfill requirements for a minor must go to the Department of Computer Science Director of Undergraduate Studies to declare the minor and be advised on course selections, and inform the Office of Academic Advising by the end of their junior year.


Minor in Computer Integrated Surgery

Please see cisstweb.cs.jhu.edu for program requirements.


Short Courses

The Department of Computer Science offers 1-credit short courses covering a variety of topics in computer science and engineering. The purpose of the short courses is to expose students to topics of current interest in the field of computer science and engineering. Short courses are taught not only by faculty and graduate students in the Department of Computer Science and visiting faculty from other universities, but by individuals from local government or industry who have demonstrable expertise in a given area and are practicing the application of computer science/engineering theory and concepts.

Students should be aware that short course offerings are likely to change from year to year, depending on instructor commitments: there is no guarantee that the same course will be available at a later time. Students interested in getting details about a particular short course can contact the instructor through the departmental office. No more than 3 credits of short courses may be applied toward the computer science course credit requirement for the B.S. or the B.A. degrees.

Double Majors with Computer Science

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 adviser in the department.? In order to declare a first or second major in computer science, students should see the Director of Undergraduate Studies in NEB 224 before the start of senior year. Those students must also inform the Office of Academic Affairs of the Whiting School of Engineering and the Registrar of their double major status. Subject to restrictions set by the department offering a second major, students whose primary major is in the Whiting School may use courses to satisfy both the requirements of the student's primary major and those of a double major.

Concurrent Bachelor's/Master's Program

As early as the end of their sophomore year and no later than the beginning of their senior year, qualified students may apply for admission to a concurrent bachelor's/master's program which combines a B.S. or B.A. degree (in any department) with a master of science in engineering degree in Computer Science. This program allows students to simultaneously pursue both an undergraduate and a graduate degree program of study. Generally, the concurrent B.S./M.S.E. or B.A./M.S.E. program is accomplished in five years, although students with significant advanced placement credits or students who have elected to carry somewhat heavier course loads each semester have finished the program in considerably less time. Applicants are judged on the basis of their performance in courses and their letters of recommendation. If accepted, they must take at least one course per semester toward fulfilling the requirements of each degree (undergraduate and graduate). No course may be counted for both the undergraduate degree and the graduate degree. Upon admission to the program students will be assigned a graduate faculty adviser in the Computer Science Department who must approve the courses to be applied toward the master's degree. For information on the requirements of the M.S.E. degree, see below, or ask in the departmental office for the document that lists those requirements.













































spacerSearchContact UsIntegrity CodeAcademics FAQLibrary ResourcesJob Center