The objectives of our undergraduate programs are to train computer scientists who will be able to:
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.
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 science, 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.
Freshman majors must take 600.105 M&Ms (optional for transfers into the major). This 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/433, 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.392, 600.446, 600.493, 600.520.
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 toward 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. Some highly recommended math electives are Probability & Statistics, Calculus III, Linear Algebra, and Differential Equations. Note that students will need at least six courses to fulfill the credit requirement.
Basic Sciences (16 credits):
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 Web site, which includes most courses in Physics, Chemistry, Biology, Biophysics, Earth & Planetary Sciences, and some 'N' designated courses in Neuroscience & Cognitive Science, 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 also 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:
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.
Freshman majors must take 600.105 M&Ms (optional for transfers into the major). This is a 1-credit S/U course that may only be counted as an elective.
Computer Science (30 credits):
The computer science courses should include the following:
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.
600.101 Computer Fluency cannot be counted toward this requirement. However, it 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.
Basic Sciences (12 credits):
At least two semesters of physics or chemistry or a combination of both, with the associated laboratories, must be included. The remaining courses must be chosen in accordance with the list posted on the department Web site, which includes most courses in Physics, Chemistry, Biology, Biophysics, Earth & Planetary Sciences, and some ‘N’ designated courses in Neuroscience & Cognitive Science, 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 in addition to the 18 required humanities/social sciences credits.
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):
With the approval of a faculty member in the Department of Computer Science, serving as a computer science minor adviser, substitutions for these core courses are possible.
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.
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 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 314 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 some students take more or 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). Double counting of at most two courses is subject to current WSE and departmental policies. Students may not take a 600.3xx course as an undergraduate and the corresponding 600.4xx course for the MSE. 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.