Undergraduate Programs
(See also General Requirements for Departmental Majors)
The objectives of our bachelor degree programs are to train computer scientists who will be able to:
- Successfully engage in professional practice in the computing sciences or apply computer science tools and techniques to another field of interest.
- Pursue advanced study in the computing sciences.
- Work successfully in both independent and team environments.
- Lead teams and provide vision for innovation.
- Behave in a professional and ethical manner.
A successful major program of study leads to either the Bachelor of Arts in computer science (B.A.) or the Bachelor of Science in computer science (B.S.). Both degree programs require specific courses and/or credits in several key areas: computer science, math, basic science, humanities and social sciences. The Bachelor of Arts is intended for students who prefer a more traditional liberal arts curriculum, and therefore carries stronger requirements in non-technical areas. The Bachelor of Science degree has stronger technical requirements, particularly with respect to computer science course requirements.
Regardless of degree choice, there is much flexibility in how the requirements are fulfilled. Undergraduate majors may choose to pursue a broad selection of computer science and distributional courses, or to pursue a focus area within the field. Current foci primarily reflect departmental and school research strengths: big data, computational biology, fundamentals of computing, information security, natural language processing, robotics, systems and networking; and also include career paths for software engineering and entrepreneurship. Regardless of whether you pursue a particular focus or not, our bachelor programs provide excellent preparation for research within the department, summer internships, and post-graduation industry employment or graduate work.
Additional details regarding undergraduate programs can be found in the department's undergraduate advising manual or on the website at cs.jhu.edu.
Double Majors
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. In order to declare a first or second major in computer science, students should initiate an on-line request, and then will need to see the Academic Program Coordinator or the Director of Undergraduate Studies to complete the process.

