Students
Tuition Fee
Not Available
Start Date
Not Available
Medium of studying
Fully Online
Duration
Not Available
Details
Program Details
Degree
Masters
Major
Artificial Intelligence | Computer Science | Data Science
Area of study
Information and Communication Technologies | Engineering
Education type
Fully Online
Course Language
English
About Program

Program Overview


Computer Science, Master of Science

The Master of Science in Computer Science is a graduate program offered by the Whiting School of Engineering at Johns Hopkins University.


Admission Requirements

Applicants 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.


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.


Core Courses

  • EN.605.601: Foundations of Software Engineering
  • EN.605.611: Foundations of Computer Architecture
  • EN.605.621: Foundations of Algorithms

Focus Areas

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.


Artificial Intelligence

Courses:


  • EN.605.613: Introduction to Robotics
  • EN.605.645: Artificial Intelligence
  • EN.605.646: Natural Language Processing
  • EN.605.647: Neural Networks
  • EN.605.649: Principles and Methods in Machine Learning
  • EN.605.740: Machine Learning: Deep Learning
  • EN.605.742: Deep Neural Networks
  • EN.605.743: Advanced Artificial Intelligence
  • EN.605.745: Reasoning Under Uncertainty
  • EN.605.746: Advanced Machine Learning
  • EN.605.747: Evolutionary and Swarm Intelligence

Bioinformatics

Prerequisite Courses:


  • EN.605.205: Molecular Biology for Computer Scientists Courses:
  • EN.605.631: Statistical Methods for Computer Science
  • EN.605.643: Linked Data and the Semantic Web
  • EN.605.651: Principles of Bioinformatics
  • EN.605.652: Biological Databases and Database Tools
  • EN.605.653: Computational Genomics
  • EN.605.656: Computational Drug Discovery, Dev
  • EN.605.657: Statistics for Bioinformatics
  • EN.605.716: Modeling and Simulation of Complex Systems
  • EN.605.751: Algorithms for Structural Bioinformatics
  • EN.605.755: Systems Biology
  • EN.605.759: Independent Project in Bioinformatics

Cybersecurity

Courses:


  • EN.605.609: DevOps and Secure Software Development
  • EN.605.636: Autonomic Computing
  • EN.605.731: Survey of Cloud Computing Security
  • EN.635.611: Principles of Network Engineering
  • EN.635.673: Protecting Critical Infrastructure Against Cyber Attacks
  • EN.635.676: Cybersecurity in Information Systems
  • EN.635.711: Advanced Topics in Network Engineering
  • EN.635.775: Cyber Operations, Risk, and Compliance
  • EN.695.601: Foundations of Information Assurance
  • EN.695.611: Embedded Computer Systems-Vulnerabilities, Intrusions, and Protection Mechanisms
  • EN.695.612: Operating Systems Security
  • EN.695.615: Cyber Physical Systems Security
  • EN.695.622: Web Security
  • EN.695.624: Introduction to Internet of Things Security and Privacy
  • EN.695.641: Cryptology
  • EN.695.642: Intrusion Detection
  • EN.695.643: Introduction to Ethical Hacking
  • EN.695.711: Java Security
  • EN.695.721: Network Security
  • EN.695.723: Advanced Web Security
  • EN.695.742: Digital Forensics Technologies and Techniques
  • EN.695.744: Reverse Engineering and Vulnerability Analysis

Data Communications and Networking

Courses:


  • EN.605.671: Principles of Data Communications Networks
  • EN.605.674: Network Programming
  • EN.605.675: Protocol Design
  • EN.605.677: Internetworking with TCP/IP I
  • EN.605.771: Wired and Wireless Local and Metropolitan Area Networks
  • EN.605.777: Internetworking with TCP/IP II
  • EN.605.779: Network Design and Performance Analysis
  • EN.635.611: Principles of Network Engineering
  • EN.635.711: Advanced Topics in Network Engineering
  • EN.525.678: Next Generation Mobile Networks and Security with 5G
  • EN.525.768: Wireless Networks

Data Science and Cloud Computing

Courses:


  • EN.605.631: Statistical Methods for Computer Science
  • EN.605.632: Graph Analytics
  • EN.605.633: Social Media Analytics
  • EN.605.634: Crowdsourcing and Human Computation
  • EN.605.635: Cloud Computing
  • EN.605.649: Principles and Methods in Machine Learning
  • EN.605.662: Data Visualization
  • EN.605.724: Applied Game Theory
  • EN.605.731: Survey of Cloud Computing Security
  • EN.605.741: Large-Scale Database Systems
  • EN.605.744: Information Retrieval
  • EN.605.746: Advanced Machine Learning
  • EN.605.788: Big Data Processing Using Hadoop
  • EN.685.648: Data Science
  • EN.625.734: Queuing Theory
  • EN.625.741: Game Theory

Database Systems and Knowledge Management

Courses:


  • EN.605.624: Logic: Systems, Semantics, and Models
  • EN.605.641: Principles of Database Systems
  • EN.605.643: Linked Data and the Semantic Web
  • EN.605.644: XML Design Paradigms
  • EN.605.645: Artificial Intelligence
  • EN.605.647: Neural Networks
  • EN.605.740: Machine Learning: Deep Learning
  • EN.605.741: Large-Scale Database Systems
  • EN.605.742: Deep Neural Networks
  • EN.605.744: Information Retrieval
  • EN.605.745: Reasoning Under Uncertainty
  • EN.635.632: Engineering Data Intensive Systems
  • EN.685.648: Data Science
  • EN.525.733: Deep Learning for Computer Vision

Enterprise and Web Computing

Courses:


  • EN.605.681: Principles of Enterprise Web Development
  • EN.605.682: Web Application Development with Java
  • EN.605.683: Java Enterprise Development: Processes, Tools and Infrastructure
  • EN.605.686: Mobile Application Development for the Android Platform
  • EN.605.687: Mobile Application Development for the iOS Platform
  • EN.605.691: Entrepreneurship for Computer Scientists
  • EN.605.784: Enterprise Computing with Java
  • EN.605.786: Enterprise System Design and Implementation
  • EN.605.787: Front End Web App Development
  • EN.605.788: Big Data Processing Using Hadoop
  • EN.605.789: Service API Design and Development
  • EN.635.683: E-Business: Models, Architecture, Technologies, and Infrastructure
  • EN.635.792: Entrepreneurship, Innovation, and Corporate Success

HumanComputer Interaction and Visualization

Courses:


  • EN.605.633: Social Media Analytics
  • EN.605.634: Crowdsourcing and Human Computation
  • EN.605.661: Computer Vision
  • EN.605.662: Data Visualization
  • EN.605.667: Computer Graphics
  • EN.605.668: Computer Gaming Engines
  • EN.605.767: Applied Computer Graphics
  • EN.605.768: Advanced Game Design and Development Engines
  • EN.635.661: Principles of Human Computer Interaction

Research

Courses:


  • EN.605.646: Natural Language Processing
  • EN.605.728: Quantum Computation
  • EN.605.746: Advanced Machine Learning
  • EN.605.747: Evolutionary and Swarm Intelligence
  • EN.605.795: Capstone Project in Computer Science
  • EN.605.801: Independent Study in Computer Science I
  • EN.605.802: Independent Study in Computer Science II
  • EN.635.673: Protecting Critical Infrastructure Against Cyber Attacks
  • EN.695.722: Covert Channels

Software Engineering

Courses:


  • EN.605.601: Foundations of Software Engineering
  • EN.605.603: Object-Oriented and Functional Programming in Kotlin
  • EN.605.604: Object-Oriented Programming with C++
  • EN.605.606: Programming with Domain-Specific Languages
  • EN.605.607: Agile Software Development Methods
  • EN.605.608: Software Project Management
  • EN.605.609: DevOps and Secure Software Development
  • EN.605.629: Programming Languages
  • EN.605.701: Software Systems Engineering
  • EN.605.702: Cloud-native Architecture and Microservices
  • EN.605.704: Object-Oriented Analysis and Design
  • EN.605.705: Software Safety
  • EN.605.707: Software Patterns
  • EN.605.708: Tools and Techniques of Software Project Management

Systems

Courses:


  • EN.605.611: Foundations of Computer Architecture
  • EN.605.612: Operating Systems
  • EN.605.613: Introduction to Robotics
  • EN.605.614: System Development in the UNIX Environment
  • EN.605.615: Compiler Design with LLVM
  • EN.605.616: Multiprocessor Architecture & Programming
  • EN.605.617: Introduction to GPU Programming
  • EN.605.618: Introduction to High Performance Computing
  • EN.605.715: Software Development for Real-Time Embedded Systems
  • EN.605.716: Modeling and Simulation of Complex Systems

Theory

Courses:


  • EN.605.620: Algorithms for Bioinformatics
  • EN.605.621: Foundations of Algorithms
  • EN.605.622: Computational Signal Processing
  • EN.605.624: Logic: Systems, Semantics, and Models
  • EN.605.626: Image Processing
  • EN.605.629: Programming Languages
  • EN.605.630: Theory of Computation
  • EN.605.721: Design and Analysis of Algorithms
  • EN.605.724: Applied Game Theory
  • EN.605.727: Computational Geometry
  • EN.605.728: Quantum Computation
  • EN.605.729: Formal Methods
  • EN.625.617: Intro to Enumerative Combinatorics
  • EN.625.687: Applied Topology
  • EN.625.690: Computational Complexity and Approximation
  • EN.625.692: Probabilistic Graphical Models
  • EN.625.734: Queuing Theory
  • EN.625.741: Game Theory

Independent Study

Courses:


  • EN.605.795: Capstone Project in Computer Science
  • EN.605.801: Independent Study in Computer Science I
  • EN.605.802: Independent Study in Computer Science II

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.


Communications and Networking Concentration

Prerequisite:


  • EN.525.202: Signals and Systems Core Courses:
  • EN.605.601: Foundations of Software Engineering
  • EN.605.611: Foundations of Computer Architecture
  • EN.605.621: Foundations of Algorithms Electives:
    • EN.605.671: Principles of Data Communications Networks
    • EN.605.674: Network Programming
    • EN.605.675: Protocol Design
    • EN.605.677: Internetworking with TCP/IP I
    • EN.605.771: Wired and Wireless Local and Metropolitan Area Networks
    • EN.605.777: Internetworking with TCP/IP II
    • EN.695.601: Foundations of Information Assurance
    • EN.695.622: Web Security
    • EN.695.721: Network Security
    • EN.525.608: Next Generation Telecommunications
    • EN.525.614: Probability & Stochastic Processes for Engineers
    • EN.525.616: Communication Systems Engineering
    • EN.525.618: Antenna Systems
    • EN.525.620: Electromagnetic Transmission Systems
    • EN.525.638: Introduction to Modern Wireless and Optical Communication Systems
    • EN.525.640: Satellite Communications Systems
    • EN.525.641: Computer and Data Communication Networks I
    • EN.525.678: Next Generation Mobile Networks and Security with 5G
    • EN.525.707: Error Control Coding
    • EN.525.708: Iterative Methods in Communications Systems
    • EN.525.722: Wireless and Mobile Cellular Communications
    • EN.525.735: MIMO Wireless Communications
    • EN.525.738: Advanced Antenna Systems
    • EN.525.747: Speech Processing
    • EN.525.751: Software Radio for Wireless Communications
    • EN.525.754: Wireless Communication Circuits
    • EN.525.759: Image Compression, Packet Video, and Video Processing
    • EN.525.761: Wireless and Wireline Network Integration
    • EN.525.768: Wireless Networks
    • EN.525.771: Propagation of Radio Waves in the Atmosphere
    • EN.525.772: Fiber-Optic Communication Systems
    • EN.525.776: Information Theory
    • EN.525.783: Spread Spectrum Communications
    • EN.525.789: Advanced Satellite Communications
    • EN.525.791: Microwave Communications Laboratory
    • EN.525.793: Advanced Communication Systems

Concentrations are noted on the students transcript.


See More