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 courses:
- 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 courses listed above may still enroll under provisional status, followed by full admission status once they have completed the missing courses. Missing courses may be completed with Johns Hopkins Engineering (all provisional courses 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. When reviewing an application, the candidate’s academic and professional background will be considered.
Program Requirements
Ten courses (30 credits) must be completed within five years. Students are required to choose a focus area or concentration.
Requirements for Focus Area Completion
The curriculum consists of three core courses (9 credits) and a minimum of five courses (15 credits) from the Computer Science program, which includes selected courses from other programs as indicated in the course lists below, and a maximum of two electives (6 credits) may be selected from outside the Computer Science program and require prior advisor approval. Students must complete at least three courses (9 credits) from a selected focus area of which one course must be 700-level. At least three of the ten graduate-level courses must be 700-level. 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.
Provisional Courses
Code | Title | Credits |
---|---|---|
Undergraduate-level courses offered to complete provisional requirements. 1 | Credits | |
EN.625.108 & EN.625.109 | Calculus I and Calculus II | 4 |
or EN.605.156 | Calculus for Engineers | |
EN.605.201 | Introduction to Programming Using Java | 3 |
or EN.605.207 | Introduction to Programming Using C++ | |
EN.605.202 | Data Structures | 3 |
EN.605.203 | Discrete Mathematics 2 | 3 |
or EN.625.252 | Linear Algebra and Its Applications | |
or EN.625.251 | Introduction to Ordinary and Partial Differential Equations | |
EN.605.204 | Computer Organization | 3 |
- 1
Applicants whose prior education does not include the courses listed under Admission Requirements may enroll under provisional status, followed by full admission once they have completed the missing provisional courses. All provisional courses are available at Johns Hopkins Engineering. These courses do not count toward the degree or certificate requirements.
- 2
Discrete Mathematics is preferred.
Core Courses
Code | Title | Credits |
---|---|---|
Core 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 | ||
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.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.740 | Machine Learning: Deep Learning | 3 |
EN.605.742 | Deep Neural Networks | 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.635.603 | AI/ML Ops | 3 |
EN.635.782 | Ethics in Intelligent Systems | 3 |
EN.695.637 | Introduction to Assured AI and Autonomy | 3 |
EN.705.603 | Creating AI-Enabled Systems 6 | 3 |
EN.705.615 | Artificial Intelligence for Leaders | 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 |
---|---|---|
Prerequisite Courses | Credits | |
EN.605.205 | Molecular Biology for Computer Scientists 7 | 3 |
Courses | Credits | |
EN.605.631 | Statistical Methods for Computer Science | 3 |
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.705.618 | Neuromarketing AI | 3 |
EN.585.771 | Biomedical Data Science | 3 |
- 7
Students must complete EN.605.205 Molecular Biology for Computer Scientists or have already completed an equivalent course to select the Bioinformatics focus area.
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.611 | Principles of Network Engineering | 3 |
EN.635.673 | Protecting Critical Infrastructure Against Cyber Attacks | 3 |
EN.635.676 | Cybersecurity in Information Systems | 3 |
EN.635.711 | Advanced Topics in Network Engineering | 3 |
EN.635.775 | Cyber Operations, Risk, and Compliance | 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.624 | Introduction to Internet of Things Security and Privacy | 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.777 | Internetworking with TCP/IP II | 3 |
EN.605.779 | Network Design and Performance Analysis | 3 |
EN.635.611 | Principles of Network Engineering | 3 |
EN.635.711 | Advanced Topics in Network Engineering | 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.685.648 | Data Science 8 | 3 |
EN.625.734 | Queuing Theory | 3 |
EN.625.741 | Game Theory | 3 |
- 8
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.647 | Neural Networks | 3 |
EN.605.740 | Machine Learning: Deep Learning | 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.635.632 | Engineering Data Intensive Systems | 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 |
EN.635.792 | Entrepreneurship, Innovation, and Corporate Success | 3 |
Human–Computer Interaction and Visualization
Code | Title | Credits |
---|---|---|
Courses | Credits | |
EN.605.633 | Social Media Analytics | 3 |
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.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.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 | 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 |
Requirements for Communications and Networking Concentration
Ten courses (30 credits) must be completed within five years. The curriculum consists of three core courses (9 credits) from the program and seven concentration courses (21 credits) as listed in the Courses by Concentration section, of which a maximum of three courses (9 credits) 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. At least three courses (9 credits) must be 700-level. 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.
Communications and Networking Concentration
Code | Title | Credits |
---|---|---|
Prerequisite | Credits | |
EN.525.202 | Signals and Systems 9 | 3 |
Core Courses | ||
EN.605.601 | Foundations of Software Engineering | 3 |
EN.605.611 | Foundations of Computer Architecture | 3 |
EN.605.621 | Foundations of Algorithms | 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.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 Communications Laboratory | 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.