A focus area or concentration must be chosen for this program.
Admission Requirements
Applicants (degree seeking and special student) must meet the general requirements for admission to graduate study. The applicant's prior education must include the following prerequisites:
- One year of calculus (2 semesters or 3 quarters);
- One semester/term of advanced math (discrete math is strongly preferred but linear algebra and differential equations will be accepted);
- One semester/term of Java (C++ will be accepted but the student must be knowledgeable in Java);
- One semester/term of data structures;
- One semester/term of computer organization (e.g., assembly language and machine organization).
Applicants whose prior education does not include the prerequisites listed above may still enroll under provisional status, followed by full admission status once they have completed the missing prerequisites. Missing prerequisites may be completed with Johns Hopkins Engineering (all prerequisites are available) or at another regionally accredited institution. Admitted students typically have earned a grade point average of at least 3.0 on a 4.0 scale (B or above) in the latter half of their undergraduate studies. Applicants may submit a detailed resume if they would like their academic and professional background to be considered.
Program Requirements
Ten courses must be completed within five years. Students are required to choose a focus area to follow. The curriculum consists of three foundation courses and five courses from the Computer Science program, which includes selected courses from other programs as indicated in the course lists below. At least three courses must be from the same focus area, at least three must be at the 700-level, and at least one 700-level course must be in the chosen focus area. Up to two electives may be selected from outside the Computer Science program and require prior advisor approval. Transfer courses will be considered electives. Transfer courses must meet all general Engineering for Professionals requirements for transfer, must be directly applicable to Computer Science, and will be considered on a case-by-case basis. Only one C-range grade (C+, C, or C–) can count toward the master’s degree. All course selections outside of the Computer Science program requirements are subject to advisor approval.
Non-degree students in Computer Science should consult with their advisor to determine which courses must be successfully completed before 600- or 700-level Computer Science courses may be taken.
Concentration: Communications and Networking
Ten courses must be completed within five years. The curriculum consists of three foundation courses from the program and seven concentration courses as listed in the Courses by Concentration section, of which a maximum of three may come from the Electrical and Computer Engineering (EN.525.xxx) program. Students are strongly encouraged to take courses from both Computer Science and Electrical and Computer Engineering. Only one C-range grade (C+, C, or C–) can count toward the master’s degree.
Students lacking an electrical engineering background or equivalent must take EN.525.202 Signals and Systems as an undergraduate prerequisite before taking Electrical and Computer Engineering communications and networking courses.
Concentrations are noted on the student’s transcript.
Undergraduate Courses
Code | Title | Credits |
---|---|---|
Undergraduate Courses (or approved equivalent) 1 | Credits | |
EN.625.108 | Calculus I | 0 |
EN.625.109 | Calculus II | 0 |
EN.605.201 | Introduction to Programming Using Java | 3 |
EN.605.202 | Data Structures | 3 |
EN.605.203 | Discrete Mathematics | 3 |
EN.605.204 | Computer Organization | 3 |
EN.605.205 | Molecular Biology for Computer Scientists | 3 |
EN.605.207 | Introduction to Programming Using C++ | 3 |
- 1
Applicants whose prior education does not include the prerequisites listed under Admission Requirements may still enroll under provisional status, followed by full admission once they have completed the missing prerequisites. All prerequisite courses beyond calculus are available at Johns Hopkins Engineering. These courses do not count toward the degree or certificate requirements.
Foundational Courses
Code | Title | Credits |
---|---|---|
Foundation Courses 2, 3 | Credits | |
EN.605.601 | Foundations of Software Engineering | 3 |
EN.605.611 | Foundations of Computer Architecture | 3 |
EN.605.621 | Foundations of Algorithms | 3 |
Focus Areas and Concentrations 4, 5 | ||
Select one of the following: | ||
Artificial Intelligence | ||
Bioinformatics | ||
Cybersecurity | ||
Data Communications and Networking | ||
Data Science and Cloud Computing | ||
Database Systems and Knowledge Management | ||
Enterprise and Web Computing | ||
Human-Computer Interation and Visualization | ||
Research | ||
Software Engineering | ||
Systems | ||
Theory | ||
Independent Study | ||
Communications and Networking Concentration |
- 2
Students working toward a master’s degree in Computer Science are required to take the following three foundation courses before taking any other courses.
- 3
One or more foundation courses can be waived by the student’s advisor if a student has received an A or B in equivalent graduate courses. In this case, the student may replace the waived foundation courses with the same number of other graduate Computer Science courses and may take these courses after all remaining foundation course requirements have been satisfied.
- 4
Some courses require fulfillment of Artificial Intelligence program prerequisite courses.
- 5
Some courses require fulfillment of Data Science program prerequisite courses.
Courses by Focus Area
The focus areas offered represent related groups of courses that are relevant for students with interests in the selected areas. Students are required to choose a focus area to follow and to take at least three courses from the selected focus area, including at least one 700-level course. The focus areas are presented as an aid to students in planning their course selections and are only applicable to students seeking a master’s degree. They do not appear as official designations on a student’s transcript or diploma.
Artificial Intelligence
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.613 | Introduction to Robotics | 3 |
EN.605.624 | Logic: Systems, Semantics, and Models | 3 |
EN.605.645 | Artificial Intelligence | 3 |
EN.605.646 | Natural Language Processing | 3 |
EN.605.647 | Neural Networks | 3 |
EN.605.649 | Principles and Methods in Machine Learning | 3 |
EN.605.743 | Advanced Artificial Intelligence | 3 |
EN.605.745 | Reasoning Under Uncertainty | 3 |
EN.605.746 | Advanced Machine Learning | 3 |
EN.605.747 | Evolutionary and Swarm Intelligence | 3 |
EN.695.637 | Introduction to Assured AI and Autonomy | 3 |
EN.705.603 | Creating AI-Enabled Systems 6 | 3 |
EN.525.670 | Machine Learning for Signal Processing | 3 |
EN.525.733 | Deep Learning for Computer Vision | 3 |
EN.525.786 | Human Robotics Interaction | 3 |
- 6
Some courses require fulfillment of Artificial Intelligence program prerequisite courses.
Bioinformatics
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.643 | Linked Data and the Semantic Web | 3 |
EN.605.651 | Principles of Bioinformatics | 3 |
EN.605.652 | Biological Databases and Database Tools | 3 |
EN.605.653 | Computational Genomics | 3 |
EN.605.656 | Computational Drug Discovery,Dev | 3 |
EN.605.657 | Statistics for Bioinformatics | 3 |
EN.605.716 | Modeling and Simulation of Complex Systems | 3 |
EN.605.751 | Algorithms for Structural Bioinformatics | 3 |
EN.605.755 | Systems Biology | 3 |
EN.605.759 | Independent Project in Bioinformatics | 3 |
EN.585.771 | Biomedical Data Science | 3 |
Cybersecurity
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.609 | DevOps and Secure Software Development | 3 |
EN.605.636 | Autonomic Computing | 3 |
EN.605.731 | Survey of Cloud Computing Security | 3 |
EN.635.673 | Protecting Critical Infrastructure Against Cyber Attacks | 3 |
EN.695.601 | Foundations of Information Assurance | 3 |
EN.695.611 | Embedded Computer Systems-Vulnerabilities, Intrusions, and Protection Mechanisms | 3 |
EN.695.612 | Operating Systems Security | 3 |
EN.695.615 | Cyber Physical Systems Security | 3 |
EN.695.622 | Web Security | 3 |
EN.695.641 | Cryptology | 3 |
EN.695.642 | Intrusion Detection | 3 |
EN.695.643 | Introduction to Ethical Hacking | 3 |
EN.695.711 | Java Security | 3 |
EN.695.721 | Network Security | 3 |
EN.695.723 | Advanced Web Security | 3 |
EN.695.742 | Digital Forensics Technologies and Techniques | 3 |
EN.695.744 | Reverse Engineering and Vulnerability Analysis | 3 |
Data Communications and Networking
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.671 | Principles of Data Communications Networks | 3 |
EN.605.674 | Network Programming | 3 |
EN.605.675 | Protocol Design | 3 |
EN.605.677 | Internetworking with TCP/IP I | 3 |
EN.605.771 | Wired and Wireless Local and Metropolitan Area Networks | 3 |
EN.605.776 | Fourth Generation Wireless Communications: WiMAX and LTE | 3 |
EN.605.777 | Internetworking with TCP/IP II | 3 |
EN.605.779 | Network Design and Performance Analysis | 3 |
EN.525.678 | Next Generation Mobile Networks and Security with 5G | 3 |
EN.525.768 | Wireless Networks | 3 |
Data Science and Cloud Computing
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.631 | Statistical Methods for Computer Science | 3 |
EN.605.632 | Graph Analytics | 3 |
EN.605.633 | Social Media Analytics | 3 |
EN.605.634 | Crowdsourcing and Human Computation | 3 |
EN.605.635 | Cloud Computing | 3 |
EN.605.649 | Principles and Methods in Machine Learning | 3 |
EN.605.662 | Data Visualization | 3 |
EN.605.724 | Applied Game Theory | 3 |
EN.605.731 | Survey of Cloud Computing Security | 3 |
EN.605.741 | Large-Scale Database Systems | 3 |
EN.605.744 | Information Retrieval | 3 |
EN.605.746 | Advanced Machine Learning | 3 |
EN.605.788 | Big Data Processing Using Hadoop | 3 |
EN.625.734 | Queuing Theory with Applications to Computer Science | 3 |
EN.625.741 | Game Theory | 3 |
EN.685.648 | Data Science 7 | 3 |
- 7
Some courses require fulfillment of Data Science program prerequisite courses.
Database Systems and Knowledge Management
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.624 | Logic: Systems, Semantics, and Models | 3 |
EN.605.641 | Principles of Database Systems | 3 |
EN.605.643 | Linked Data and the Semantic Web | 3 |
EN.605.644 | XML Design Paradigms | 3 |
EN.605.645 | Artificial Intelligence | 3 |
EN.605.646 | Natural Language Processing | 3 |
EN.605.647 | Neural Networks | 3 |
EN.605.741 | Large-Scale Database Systems | 3 |
EN.605.742 | Deep Neural Networks | 3 |
EN.605.744 | Information Retrieval | 3 |
EN.605.745 | Reasoning Under Uncertainty | 3 |
EN.685.648 | Data Science 8 | 3 |
EN.525.733 | Deep Learning for Computer Vision | 3 |
- 8
Some courses require fulfillment of Data Science program prerequisite courses.
Enterprise and Web Computing
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.681 | Principles of Enterprise Web Development | 3 |
EN.605.682 | Web Application Development with Java | 3 |
EN.605.683 | Java Enterprise Development: Processes, Tools and Infrastructure | 3 |
EN.605.686 | Mobile Application Development for the Android Platform | 3 |
EN.605.687 | Mobile Application Development for the iOS Platform | 3 |
EN.605.691 | Entrepreneurship for Computer Scientists | 3 |
EN.605.784 | Enterprise Computing with Java | 3 |
EN.605.786 | Enterprise System Design and Implementation | 3 |
EN.605.787 | Front End Web App Development | 3 |
EN.605.788 | Big Data Processing Using Hadoop | 3 |
EN.605.789 | Service API Design and Development | 3 |
EN.635.683 | E-Business: Models, Architecture, Technologies, and Infrastructure | 3 |
Human–Computer Interaction and Visualization
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.634 | Crowdsourcing and Human Computation | 3 |
EN.605.661 | Computer Vision | 3 |
EN.605.662 | Data Visualization | 3 |
EN.605.667 | Computer Graphics | 3 |
EN.605.668 | Computer Gaming Engines | 3 |
EN.605.767 | Applied Computer Graphics | 3 |
EN.605.768 | Advanced Game Design and Development Engines | 3 |
EN.635.661 | Principles of Human Computer Interaction | 3 |
Research
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.646 | Natural Language Processing | 3 |
EN.605.728 | Quantum Computation | 3 |
EN.605.745 | Reasoning Under Uncertainty | 3 |
EN.605.746 | Advanced Machine Learning | 3 |
EN.605.747 | Evolutionary and Swarm Intelligence | 3 |
EN.605.795 | Capstone Project in Computer Science | 3 |
EN.605.801 | Independent Study in Computer Science I | 3 |
EN.605.802 | Independent Study in Computer Science II | 3 |
EN.615.781 | Quantum Information Processing | 3 |
EN.635.673 | Protecting Critical Infrastructure Against Cyber Attacks | 3 |
EN.695.722 | Covert Channels | 3 |
Software Engineering
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.601 | Foundations of Software Engineering | 3 |
EN.605.603 | Object-Oriented and Functional Programming in Kotlin | 3 |
EN.605.604 | Object-Oriented Programming with C++ | 3 |
EN.605.606 | Programming with Domain-Specific Languages | 3 |
EN.605.607 | Agile Software Development Methods | 3 |
EN.605.608 | Software Project Management | 3 |
EN.605.609 | DevOps and Secure Software Development | 3 |
EN.605.629 | Programming Languages | 3 |
EN.605.701 | Software Systems Engineering | 3 |
EN.605.702 | Cloud-native Architecture and Microservices | 3 |
EN.605.704 | Object-Oriented Analysis and Design | 3 |
EN.605.705 | Software Safety | 3 |
EN.605.707 | Software Patterns | 3 |
EN.605.708 | Tools and Techniques of Software Project Management | 3 |
Systems
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.611 | Foundations of Computer Architecture | 3 |
EN.605.612 | Operating Systems | 3 |
EN.605.613 | Introduction to Robotics | 3 |
EN.605.614 | System Development in the UNIX Environment | 3 |
EN.605.615 | Compiler Design with LLVM | 3 |
EN.605.616 | Multiprocessor Architecture & Programming | 3 |
EN.605.617 | Introduction to GPU Programming | 3 |
EN.605.618 | Introduction to High Performance Computing | 3 |
EN.605.715 | Software Development for Real-Time Embedded Systems | 3 |
EN.605.716 | Modeling and Simulation of Complex Systems | 3 |
Theory
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.620 | Algorithms for Bioinformatics | 3 |
EN.605.621 | Foundations of Algorithms | 3 |
EN.605.622 | Computational Signal Processing | 3 |
EN.605.624 | Logic: Systems, Semantics, and Models | 3 |
EN.605.626 | Image Processing | 3 |
EN.605.629 | Programming Languages | 3 |
EN.605.630 | Theory of Computation | 3 |
EN.605.721 | Design and Analysis of Algorithms | 3 |
EN.605.724 | Applied Game Theory | 3 |
EN.605.727 | Computational Geometry | 3 |
EN.605.728 | Quantum Computation | 3 |
EN.605.729 | Formal Methods | 3 |
EN.625.617 | Intro to Enumerative Combinatorics | 3 |
EN.625.687 | Applied Topology | 3 |
EN.625.690 | Computational Complexity and Approximation | 3 |
EN.625.692 | Probabilistic Graphical Models | 3 |
EN.625.734 | Queuing Theory with Applications to Computer Science | 3 |
EN.625.741 | Game Theory | 3 |
Independent Study
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.795 | Capstone Project in Computer Science | 3 |
EN.605.801 | Independent Study in Computer Science I | 3 |
EN.605.802 | Independent Study in Computer Science II | 3 |
Courses by Concentration
Communications and Networking Concentration
Code | Title | Credits |
---|---|---|
Prerequisite | Credits | |
EN.525.202 | Signals and Systems 9 | 3 |
Electives | Credits | |
Select seven of the following: 10 | ||
EN.605.671 | Principles of Data Communications Networks | 3 |
EN.605.674 | Network Programming | 3 |
EN.605.675 | Protocol Design | 3 |
EN.605.677 | Internetworking with TCP/IP I | 3 |
EN.605.771 | Wired and Wireless Local and Metropolitan Area Networks | 3 |
EN.605.776 | Fourth Generation Wireless Communications: WiMAX and LTE | 3 |
EN.605.777 | Internetworking with TCP/IP II | 3 |
EN.695.601 | Foundations of Information Assurance | 3 |
EN.695.622 | Web Security | 3 |
EN.695.721 | Network Security | 3 |
EN.525.608 | Next Generation Telecommunications | 3 |
EN.525.614 | Probability & Stochastic Processes for Engineers | 3 |
EN.525.616 | Communication Systems Engineering | 3 |
EN.525.618 | Antenna Systems | 3 |
EN.525.620 | Electromagnetic Transmission Systems | 3 |
EN.525.638 | Introduction to Modern Wireless and Optical Communication Systems | 3 |
EN.525.640 | Satellite Communications Systems | 3 |
EN.525.641 | Computer and Data Communication Networks I | 3 |
EN.525.678 | Next Generation Mobile Networks and Security with 5G | 3 |
EN.525.707 | Error Control Coding | 3 |
EN.525.708 | Iterative Methods in Communications Systems | 3 |
EN.525.722 | Wireless and Mobile Cellular Communications | 3 |
EN.525.735 | MIMO Wireless Communications | 3 |
EN.525.738 | Advanced Antenna Systems | 3 |
EN.525.747 | Speech Processing | 3 |
EN.525.751 | Software Radio for Wireless Communications | 3 |
EN.525.754 | Wireless Communication Circuits | 3 |
EN.525.759 | Image Compression, Packet Video, and Video Processing | 3 |
EN.525.761 | Wireless and Wireline Network Integration | 3 |
EN.525.768 | Wireless Networks | 3 |
EN.525.771 | Propagation of Radio Waves in the Atmosphere | 3 |
EN.525.772 | Fiber-Optic Communication Systems | 3 |
EN.525.776 | Information Theory | 3 |
EN.525.783 | Spread Spectrum Communications | 3 |
EN.525.789 | Advanced Satellite Communications | 3 |
EN.525.791 | Microwave Measurement Theory and Techniques | 3 |
EN.525.793 | Advanced Communication Systems | 3 |
- 9
This course does not count toward degree or certificate requirements.
- 10
No more than three courses may come from Electrical and Computer Engineering 525.XXX.
Please refer to the course schedule published each term for exact dates, times, locations, fees, and instructors.