Computer Science studies the inner workings of computers as well as hardware and software aspects of computer systems, concentrating on the computation and programming of digital computers—the tool that makes modern technology possible. The study of Computer Science is an interdisciplinary, intellectual activity that crosses into various fields such as speech and language, robotics, scientific computing, security and privacy, and medical applications of computing.
The Department of Computer Science at Johns Hopkins University accentuates this interdisciplinary collaboration, focusing heavily on faculty and student research. As a Computer Science major, you will work closely with outstanding faculty in small class sizes so that you have the rare opportunity to participate in discovery, seeking answers to pertinent problems in a shifting field with varying technological waves. The challenge for Computer Scientists is to ride the leading edge of a rapid and ever-shifting evolutionary curve, and the most effective way to accomplish this is through ongoing research. Your degree in Computer Science will focus in one of five research areas:
- Robotics, Vision, and Graphics
- Natural language processing
In addition, you are encouraged to tailor the curriculum to suit your interest so that you not only master the building blocks of modern computing, but also have the opportunity to expand your studies in other popular programs such as Entrepreneurship and Management Program Computer Integrated Surgery, Applied Math, Economics, Cognitive Science, Music, and/or Film and Media Studies.4 As a Computer Science major at JHU, you have the opportunity to generate a broad range of knowledge, creating an exhilarating educational experience that will open up a world of opportunity in this exciting age of computer technology.
- B.S. in Computer Science
- B.A. in Computer Science (only if you are combining the degree with another area of focus outside of Engineering)
- M.S. in Engineering (M.S.E.)
- PhD in Computer Science
Computer science is one of the fastest growing industries in the United States. As computers continue to become more central to business functions, all organizations are implementing more sophisticated and complex technology, fueling a demand for computer scientists and database administrators. Computer scientists work as theorists, researchers, or inventors. Their higher level of theoretical expertise, innovation, and creation or application of new technology distinguishes the positions they acquire. Some researchers work on advancing uses of virtual reality, extending human-computer interaction, or designing robots, while others devote their research to proving theory. Computer scientists who occupy inventing positions focus on projects that have the possibility of producing patents and/or profits and work for industry leaders such as Microsoft, Google, Intel and Apple.
Regardless of which area of computer science interests you, with a Computer Science degree from JHU, you have the unique opportunity to enter a variety of workforce areas such as software development; computer security; internet and e-commerce; aerospace; micro-surgery; biomedicine; bioinformatics; as well as R&D in both the private and public sectors.
Career Paths for Computer Science Majors
Because computer scientist and database administrator occupations are increasing rapidly and because of the demand for jobs in technology advancement, a degree in Computer Science comes with a plethora of job opportunities. What you decide to do depends on your interests, values, skills and experiences. Taking the time to explore multiple career fields creates the foundation for an enjoyable career. Areas of focus further classify most computer scientists. Listed below are several major specialty areas within the field of computer science:
- Algorithms and Theory - design and analysis of algorithms and data structures for problems arising in several areas of computer science, including automatic software verification, computational geometry, data mining, and machine learning
- Artificial Intelligence topics that include knowledge representation, learning, vision, reasoning, robotics, information systems, and planning. Application areas include molecular biology, manufacturing, control theory, and scheduling
- Architecture, Parallel Computing and Systems - those focusing on the specialty area of architecture develop hardware designs, programming languages, and their compilers for next-generation computers and computing components. The specialty area of parallel computing area focuses on projects of varying size and investigates the software aspects of computation on computers composed of multiple processors
- Bioinformatics and Computational Biology - developing efficient and scalable algorithms for biomolecular simulation and applying data mining, statistical machine learning, natural language processing, and information retrieval to analyze and mine all kinds of biological data, including DNA sequences, protein sequences and structures, microarray data, and biology literature, for the purpose of facilitating biology discovery
- Database and Information Systems - conduct fundamental and cutting-edge research in databases, data mining, web mining, information retrieval, and natural language processing. Areas of focus might include data integration, exploring and integrating the "Deep Web;" schema matching; security; mining data streams and sequential and semi-structured data; operating systems support for storage systems; text retrieval and mining; bio-informatics; database support for high performance computing; and top-k query processing
- Graphics, Visualization and the Human Computer Interface - Graphics and visualization research includes modeling and animation of natural phenomena, computational topology, graphics hardware utilization, image based rendering, implicit surfaces, mesh processing and simplification, procedural modeling and texturing, shape modeling, surface parameterization, and visibility processing. Human-Computer Interface research involves user interface tools that better support early design tasks, systems and environments that help users maintain information awareness, tools for multimedia authoring and design, interfaces that foster social interaction, and human-computer interaction
- Systems and Networking research topics include mobile systems, wireless protocols, ad-hoc networks, Quality of Service management, multimedia networking, peer-to-peer networking, routing, network simulations, active queue management, and sensor networks
- Programming Languages, Formal Systems and Software Engineering those working in this specialty area study the design and implementation of computer languages, with the goal of improving both programmer productivity and program quality. The topics of study range from abstract theories of computer languages to practical questions about the use and implementation of high-level languages.
- Scientific Computing conduct research on the development and analysis of numerical techniques for approximating mathematical models of physical systems and on algorithms for solving the resulting equations on high performance computer systems. Specific scientific and engineering applications considered include biological molecular dynamics, materials science, semiconductor simulation, astrophysics, and the design of solid propellant rockets
These areas of specialization, as well as new ones, will constantly change and progress as technology develops. Therefore, it is important as a computer scientist to consistently update your knowledge of the newest technological developments and trends in order to stay relevant and marketable within the field of computer science.
Industry Application of Computer Science Majors
As one of the fastest growing industries in the world, the demand for the skill set you will gain as a Computer Science major can apply to a variety of other fields. Combining your core degree with a specialty area can improve your marketability and allow you to be even more selective when finding employment. Here are several industries to which your degree in Computer Science can apply:
Your specialized area of research as a Computer Science major may determine your career path; however, it is not the only factor that will contribute to your future career. Internship and research experience, extracurricular activities, and the skills you develop as a result of your academic and out-of-class experiences all influence the career paths of Hopkins students.
Internships and Research Experiences
To be competitive in today’s job market, it is important you apply the knowledge gained from coursework to the workplace. Employers value the academic preparation Johns Hopkins University provides, but they want to see your ability to employ knowledge outside the classroom. Computer Science research at Johns Hopkins University is charting new territory and transforming society through innovation and discovery, providing you with an excellent opportunity to show a transference of skills into the workplace.
As a Computer Science major, you will conduct research closely with faculty in their respective areas of interest. Through your research, you will also get to work in one of the various innovative laboratories and centers the Department of Computer Science offers. For further information on the different centers and laboratories and/or the process of choosing a research area/faculty advisor, contact the department’s webpage here. Internships in professional work environments can also be an excellent opportunity to demonstrate the knowledge you have obtained in the classroom. The Department of Computer Science has a robust internship program for undergraduates intending to further their understanding of computer science at the professional level. The internship director, Dr. Peter Fröhlich, seeks out the most exciting opportunities for our students and works with students on an individual basis to ensure they get the best opportunities available. To learn more about internships, at the Career Center, click here.
Extracurricular and Volunteer Activities
Employers want to see your ability to work on a team and to lead a project. Involvement in extracurricular and volunteer activities is the most effective way to develop and hone these skills. As a Computer Science major, you can participate in several extracurricular activities such as publishing work and/or participating/presenting in the top Computer Science conferences (ACM, CCS, CVPR, FOCS, SIGCOMM, SIGGRAPH, STOC).11 Meet with your Career Counselor and/or Academic Advisor for more information on volunteer opportunities and extracurricular activities.
Develop Skills and Abilities Associated with Computer Science
As a Computer Science major, you will develop an exceptional set of skills in one of the five specified areas: algorithms; robotics, vision, and graphics; security; systems; and natural language processing. Your ability to compute and program technological devices will give you a competitive advantage in the workforce. In addition, you should maintain the skills to communicate with employees, clients, and consumers. Mastering this valuable collection of skills will prepare you for the various challenges in the field of computer science. There are many other skills you will develop as a Computer Science major:
- An ability to function effectively on teams to accomplish a common goal
- An ability to communicate effectively with a range of audiences
- Behave in a professional and ethical manner
- An understanding of professional, ethical, legal, security and social issues and responsibilities
- Work Independently (Initiative)
- Recognition of the need for and an ability to engage in continuing professional development
- Pursue advanced study in the computing sciences
- Work successfully in both independent and team environments
- Organization and Accuracy
- Successfully engage in professional practice in the computing sciences or apply computer science tools and techniques to another field of interest
- Critical Thinking/Analytical Skills
- An ability to apply knowledge of computing and mathematics appropriately to the discipline
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
- Research and Investigation
- An ability to analyze the local and global impact of computing on individuals, organizations and society
- Apply a variety of methods to test the validity of data
- Identify information sources appropriate to special needs or problems
- Technical/Lab skills
- An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
- An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- An ability to use current techniques, skills, and tools necessary for computing practice
- An ability to apply design and development principles in the construction of software systems of varying complexity
Additional skills may be applicable depending on what career path you choose. Schedule an appointment with a Career Counselor to discuss the skills necessary for your individual career plan.
Computer Science graduates from John Hopkins University go into a variety of fields. The Career Center has surveyed recent graduates about their academic and career plans six months after graduation. Here is a summary of their responses.
Listed below are actual job titles that JHU alumni acquired with their degrees in Computer Science
- Application Programmer
- Chief Technology Officer
- Computer Administrator
- Computer Programmer
- Computer Systems Analyst
- Database Engineer
- Development Manager
- Game Programmer
- Hardware/Software Developer
- Manager, Business Development
- Senior Budget Analyst
- Staff Scientist
- Systems Administrator
- Text-to-Speech Development Group Manager
- Unix Systems Administrator
- Vice President, Development
- Vice President, Finance
Tim Train- President, Big Huge Games, THQ, International Studies major / Psychology minor, Class of 1991
- Describe what you do and how you got started in your current career. - I run a 130-person game development studio located in Hunt Valley, MD. I started as a play-tester right out of college, getting paid very little money for a lot of work with a local company. My first full project was the original Sid Meier’s Civilization; I went on to work on Civilization II, Alpha Centuari, and Civ III in various capacities. Although being a play-tester can be a difficult job, it’s a great introduction to the industry, and functions in a similar fashion to the “mail room” of a Hollywood studio in the good ol’ days—you find a lot of great talent there. Several JHU alumni followed me into the test lab.
- What is most rewarding about your job and/ or industry? What is most challenging? - I can’t imagine a better job in the world. I get to work with some of the most intelligent, funny, and creative people anywhere, all in the service to helping millions of people have more fun in their lives. The most challenging aspect is the time commitment. The games industry is part of the entertainment industry. Like music, movies, or television, working in this industry is a lifestyle choice as much as it is a job. Although things have gotten better since I joined the industry, where months of 80-hour workweeks were the norm, you still go through periods of crunch when you are trying to make a milestone or ship a game.
- Is your career the same or different from what you had envisioned your career would be when you started at Hopkins as an undergraduate? How is it similar and/or different? - I had no earthly idea that people even made videogames for a living. If I had that thought, I might have been much more focused in my undergraduate studies. I’d have taken more CS (even though I don’t deal much in tech).
- What advice do you have for a Hopkins student entering your career field / industry? - Pick something, and be great at it. There are four major disciplines in the game industry: art, design, programming, and production (project management). Pretty much any degree you might get could map onto one of those disciplines, so long as you excel at your chosen field. Take as many CS courses as you can stomach, whether that's one or a dozen. You don't have to have a technical background (unless you want to be a programmer), but every piece of tech knowledge helps you be a better game maker.
James Warner- Principal, Software Development, Structural Wealth Management Software Development,
Computer Science, Applied Mathematics & Statistics, Class of 2001
- How did you get interested in your field? Was it your original goal when you started at Hopkins? - I became interested in Computer Science in high school, and intended to major in it when I came to JHU. I added the second major of Applied Math later.
- What was your career path? How did you get to where you are today? - I started as a software developer after college at a big company. After 6.5 years, I moved to a small company to head the development team.
- What was your first job after college? Was it in your current field? - I was a software developer at Oracle.
- What advice do you have for current students? - Being in a quantitative field will open doors in your career. Also, developing software is not only a job for people who don't like working with people.
- What is your typical day like? - I go to a lot of meetings and do a lot of planning for future projects. I also consult with more junior developers when problems arise. When I get a few hours to sit and write code, I find it very relaxing.
- What’s most rewarding about your industry and/ or job? What's most challenging? - I find building and mentoring a team of great developers to be very rewarding. I also love the feeling of launching a great new software project - it's very tangible and satisfying. The strategy part is very challenging.
- What are typical entry-level positions for this field? What tips do you have for students to be successful in these positions? - There are lots of entry level software development jobs. Just keep in mind that writing software professionally isn't like writing software in college. Be ready to learn.
- Where do you see the field going in the next 5-10 years? - The need for top-end development talent will continue to grow as technology becomes a bigger and bigger part of our economy.
- What skills and out-of-class experiences are ideal for entering your industry / career field? - Anything that gets you writing code in a more professional, formal environment is very valuable.
- Where can someone in an entry-level position expect to be in two years? Five years? Ten years? - There are a lot of different paths for a software developer - it depends what you're best at and what is right for you. You can become an architect, a manager, a product manager, etc.
- Which professional organizations and resources should students look into or get involved with? - I would really just recommend talking with people who write software for a living in a variety of settings and finding out what is right for you.
Additional Alumni Profiles
Networking with alumni and other professionals who work in these fields can help you learn very specific information about a career field. Use Johns Hopkins Connect to contact alumni to ask for their advice. You may also find professional contacts through professional associations, faculty, friends and family.
For more information on what you can do with a Computer Science Major go to What can I do with a major in Computer Science.
Want to know more? Read our Hopkins Career Profiles on Software Development.
If you would like to talk about how your search is going, we invite you to make an appointment with a Career Counselor by calling 410-516-8056.
LinkedIn.com - a professional networking site where you can identify Hopkins alumni. Join the LinkedIn Johns Hopkins University Alumni Group to add over 4000+ alumni to your network.
For information on the top Graduate programs, the best people to talk to are the experts in the field you wish to study such as faculty members and graduate students in that specific discipline. We strongly encourage you to talk with your advisor and/or other faculty members with whom you have a good, working relationship. This will also help when you request letters of recommendation.
The Career Center is here to help you navigate the graduate school search process. Learn about Graduate and Professional School here.
For more information on the graduate programs at JHU in Computer Science and other related fields please visit the Department’s webpage here.
Involvement with professional associations is a great way to further explore your potential career paths as a Computer Science major. These groups will not only provide materials and further resources to help you make your career decision, but they also provide essential networking benefits. In addition, many professional associations have student chapters at JHU.
If you are interested in joining any of the JHU chapters/groups, contact the group and/or its advisor. Find this information here.
JHU Department of Computer Science: http://www.cs.jhu.edu
JHU Computer Science Research Labs and Centers