In MSE-DS Online, you will dive deep into topics such as artificial intelligence, big data systems, data science for health, deep learning, natural language processing, Internet and web systems, machine learning, etc. As a graduate of the MSE-DS Online program you will have: the ability to formulate and evaluate hypotheses using statistical and computational methods; the expertise to bring together data from many sources; the capacity to handle big and high-velocity data; the skills to build models, visualizations, and queries to analyze data; and the mastery to leverage machine learning methods to cluster data and make predictions.  

With the standards you’d expect from an Ivy League institution, the online format allows students of varied ages, experiences, and backgrounds to access a Penn education from any location. To learn more about what it is like to be a Penn Engineering Online student, please visit our Student Experience page.


Degree Requirements

To earn a MSE-DS Online degree, you’ll complete ten (10) courses – four core courses, four technical electives and two open electives. All courses are fully online (with an optional one week on-campus practicum), and there are no required real-time sessions.

Core Courses

(4 Course Units)

Either ESE 5420 or CIS 5150, but not both, must be taken as one of the 4 core classes

CIS 5450 Big Data Analytics

This course focuses on the fundamentals of scaling computation to handle common data analytics tasks. You will learn about basic tasks in collecting, wrangling, and structuring data; programming models for performing certain kinds of computation in a scalable way across many compute nodes; common approaches to converting algorithms to such programming models; standard toolkits for data analysis consisting of a wide variety of primitives; and popular distributed frameworks for analytics tasks such as filtering, graph analysis, clustering, and classification.

View Full Course Description

CIS 5450 Big Data Analytics

Course Offerings
Course Creators
  • Zachary G. Ives
Pre-Requisites

CIT 5910 Introduction to Software Development or equivalent programming experience; Broad familiarity with probability and statistics, as well as programming in Python; Additional background in statistics, data analysis (e.g., in Matlab or R), and machine learning is helpful (example: ESE 5420 Statistics for Data Science: An Applied Machine Learning Course)

Course Description

In the new era of big data, we are increasingly faced with the challenges of processing vast volumes of data. Given the limits of individual machines (compute power, memory, bandwidth), increasingly the solution is to process the data in parallel on many machines. This course focuses on the fundamentals of scaling computation to handle common data analytics tasks. You will learn about basic tasks in collecting, wrangling, and structuring data; programming models for performing certain kinds of computation in a scalable way across many compute nodes; common approaches to converting algorithms to such programming models; standard toolkits for data analysis consisting of a wide variety of primitives; and popular distributed frameworks for analytics tasks such as filtering, graph analysis, clustering, and classification.

CIS 5500 Database & Information Systems

Structured information is the lifeblood of commerce, government, and science today. This course provides an introduction to the broad field of information management systems, covering a range of topics relating to structured data, from data modeling to logical foundations and popular languages, to system implementations.

View Full Course Description

CIS 5500 Database & Information Systems

Course Offerings
Course Creators
  • Susan Davidson
Pre-Requisites

CIT 5910 Introduction to Software Development, CIT 5920 Mathematical Foundations of Computer Science | Knowledge of Javascript & Web Development (HTML, CSS) is recommended. | Recommended Corequisite: CIT 5960 Algorithms & Computation

Course Description

Structured information is the lifeblood of commerce, government, and science today. This course provides an introduction to the broad field of information management systems, covering a range of topics relating to structured data, from data modeling to logical foundations and popular languages, to system implementations. We will study the relational data model; SQL; database design using the Entity-Relationship model and relational design theory; transactions and updates; efficient storage of data; indexes; query execution and query optimization; and “big data” and NoSQL systems.

ESE 5410 Machine Learning for Data Science

In this course, students will learn a broad range of statistical and computational tools to analyze large datasets. This course provides a solid foundation of data science, statistics and machine learning to make data-driven predictions via statistical modeling and inference. Using case studies and hands-on exercises, the student will have the opportunity to practice and increase their data analysis skills using Python. The objective of these case studies is to identify and implement appropriate modeling and analysis techniques in order to extract meaningful information from large datasets.

View Full Course Description

ESE 5410 Machine Learning for Data Science

Course Offerings
Course Creators
  • Victor Preciado
Pre-Requisites

CIT 5920 Mathematical Foundations of Computer Science, Programming background, Basic Probability

Course Description

In this course, students will learn a broad range of statistical and computational tools to analyze large datasets. This course provides a solid foundation of data science, statistics and machine learning to make data-driven predictions via statistical modeling and inference. Using case studies and hands-on exercises, the student will have the opportunity to practice and increase their data analysis skills using Python. The objective of these case studies is to identify and implement appropriate modeling and analysis techniques in order to extract meaningful information from large datasets.

ESE 5420 Statistics for Data Science

The course covers the methodological foundations of data science, emphasizing basic concepts in statistics and learning theory, but also modern methodologies. Learning of distributions and their parameters. Testing of multiple hypotheses. Linear and nonlinear regression and prediction. Classification. Uncertainty quantification. Model validation. Clustering. Dimensionality reduction. Probably approximately correct (PAC) learning. Such theoretical concepts are further complemented by exemplar applications, case studies (datasets), and programming exercises (in Python) drawn from electrical engineering, computer science, the life sciences, finance, and social networks.

View Full Course Description

ESE 5420 Statistics for Data Science

Course Offerings
Course Creators
Pre-Requisites

CIT 5920 Mathematical Foundations of Computer Science, Programming background, Basic Probability

Course Description

The course covers the methodological foundations of data science, emphasizing basic concepts in statistics and learning theory, but also modern methodologies. Learning of distributions and their parameters. Testing of multiple hypotheses. Linear and nonlinear regression and prediction. Classification. Uncertainty quantification. Model validation. Clustering. Dimensionality reduction. Probably approximately correct (PAC) learning. Such theoretical concepts are further complemented by exemplar applications, case studies (datasets), and programming exercises (in Python) drawn from electrical engineering, computer science, the life sciences, finance, and social networks.

CIS 5150 Fundamentals of Linear Algebra & Optimization (Math for Machine Learning)

There are hardly any machine learning problems whose solutions do not make use of linear algebra. This course places emphasis on linear regression, data compression, support vector machines and more, which will provide a basis for further study in machine learning, computer vision, and data science.

View Full Course Description

CIS 5150 Fundamentals of Linear Algebra & Optimization (Math for Machine Learning)

Course Offerings
Course Creators
  • Jean Gallier
  • Jocelyn Quaintance
Pre-Requisites

Calculus (Chapters 8, 9, 10, and 48 of Schaum’s Outlines of Calculus fifth edition by Frank Ayers and Elliott Mendelssohn) Suggested: Undergraduate course in linear algebra (helpful but not required), Chapters 1 through 3 of Schaums Outline of Linear Algebra, fourth version by Seymour Lipschitz and Marc Lipson

Course Description

There are hardly any machine learning problems whose solutions do not make use of linear algebra. This course presents tools from linear algebra and basic optimization that are used to solve various machine learning and computer science problems. It places emphasis on linear regression, data compression, support vector machines and more, which will provide a basis for further study in machine learning, computer vision, and data science. Both theoretical and algorithmic aspects will be discussed, and students will apply theory to real-world situations through MATLAB projects.


Technical Electives

(Choose 4 Course Units)

Some electives may be launched in 2023/24.

CIS 5210 Artificial Intelligence

This course investigates algorithms to implement resource-limited knowledge-based agents which sense and act in the world. Topics include: search, machine learning, probabilistic reasoning, natural language processing, knowledge representation and logic. After a brief introduction to the language, programming assignments will be in Python.

View Full Course Description

CIS 5210 Artificial Intelligence

Course Offerings
Course Creators
  • Chris Callison-Burch
Pre-Requisites

CIT 5910, CIT 5920, CIT 5940, and CIT 5960

Course Description

This course investigates algorithms to implement resource-limited knowledge-based agents which sense and act in the world. Topics include: search, machine learning, probabilistic reasoning, natural language processing, knowledge representation and logic. After a brief introduction to the language, programming assignments will be in Python.

CIS 5300 Natural Language Processing

This course provides an overview of the field of natural language processing. The goal of the field is to build technologies that will allow machines to understand human languages. Applications include machine translation, automatic summarization, question answering systems, and dialog systems. NLP is used in technologies like Amazon Alexa and Google Translate.

View Full Course Description

CIS 5300 Natural Language Processing

Course Offerings
Course Creators
  • Chris Callison-Burch
Pre-Requisites

CIT 5910 Introduction to Software Development, CIT 5920 Mathematical Foundations of Computer Science , and CIT 5940 Data Structures & Software Design

Course Description

This course provides an overview of the field of natural language processing. The goal of the field is to build technologies that will allow machines to understand human languages. Applications include machine translation, automatic summarization, question answering systems, and dialog systems. NLP is used in technologies like Amazon Alexa and Google Translate.

ESE 5460 Principles of Deep Learning

The purpose of this course is to deconstruct the hype by teaching deep learning theories, models, skills, and applications that are useful for applications. Here, we will shed light on the methods behind the magic of Deep Learning. But we don’t stop there: We further look into the societal implications of deep learning and how we can design more ethical algorithms.

View Full Course Description

ESE 5460 Principles of Deep Learning

Course Offerings
Course Creators
  • Pratik Chaudhari
Pre-Requisites

CIT 5910, CIT 5920, CIS 5150 (ESE 5410 or CIT 5210 recommended, can be taken concurrently)

Course Description

Deep networks are at the heart of modern approaches in computer vision, natural language processing and robotics. Design of these networks requires a combination of intuition, theoretical foundation and empirical experience; this course discusses general principles of deep learning that cut across these three. It develops insight into popular empirical practices with a focus on the training of deep networks, builds theoretical skills to develop new ideas in deep learning and to deploy deep networks in real world applications. A fair degree of mathematical and programming proficiency is necessary to complete the coursework.

CIS 5510 Computer & Network Security

This is an introduction to topics in the security of computer systems and communication on networks of computers. The course covers four major areas: fundamentals of cryptography, security for communication protocols, security for operating systems and mobile programs, and security for electronic commerce.

View Full Course Description

CIS 5510 Computer & Network Security

Course Offerings
Course Creators
  • Sebastian Angel
Pre-Requisites

CIT 5920 Mathematical Foundations of Computer Science; CIT 5930 Intro to Computer Systems; CIT 5950 Computer Systems Programming

Course Description

This is an introduction to topics in the security of computer systems and communication on networks of computers. The course covers four major areas: fundamentals of cryptography, security for communication protocols, security for operating systems and mobile programs, and security for electronic commerce. Sample specific topics include: passwords and offline attacks, DES, RSA, DSA, SHA, SSL, CBC, IPSec, SET, DDoS attacks, biometric authentication, PKI, smart cards, S/MIME, privacy on the Web, viruses, security models, wireless security, and sandboxing. Students will be expected to display knowledge of both theory and practice through written examinations and programming assignments.

CIS 5550 Internet and Web Systems

This course focuses on the issues encountered in building Internet and Web systems, such as scalability, interoperability, consistency, replication, fault tolerance, and security. Examine how services like Google or Amazon handle billions of requests from all over the world each day, (almost) without failing or becoming unreachable. Study how to collect massive-scale data sets, how to process and extract useful information from them, and look at the massive, heavily distributed infrastructure that is used to run these services (and similar cloud-based services) today. This course will provide hands-on experience, using web search as our case study.

View Full Course Description

CIS 5550 Internet and Web Systems

Course Offerings
Course Creators
  • Andreas Haeberlen
Pre-Requisites

CIT 5950 Computer Systems Programming. Suggested: CIS 5470 Software Analysis, CIS 5490 Wireless Communications for Mobile Networks and Internet of Things, CIS 5510 Computer & Network Security, CIS 5530 Networked Systems, or CIT 5820 Blockchains & Cryptography (or any course that has students write a substantial program)

Course Description

This course focuses on the issues encountered in building Internet and Web systems, such as scalability, interoperability, consistency, replication, fault tolerance, and security. We will examine how services like Google or Amazon handle billions of requests from all over the world each day, (almost) without failing or becoming unreachable. We will study how to collect massive-scale data sets, how to process them, and how to extract useful information from them, and we will have a look at the massive, heavily distributed infrastructure that is used to run these services (and similar cloud-based services) today.

An important feature of the course is that we will not just discuss issues and solutions but also provide hands-on experience, using web search as our case study. There will be several substantial implementation projects throughout the semester, each of which will focus on a particular component of the search engine, such as frontend, storage, crawler, or indexer. The final project will be to build a Google-style search engine, and to deploy and run it on the cloud.

Notice that this is NOT a course on web design, or on web application development! Instead of learning how to use a web server such as Apache or a scalable analytics system such as Spark, we will actually build our own little web server, and a little mini-“Spark”, from scratch. As a side effect, you will learn about some aspects of large-scale software development, such as working with APIs and specifications, thinking about modularity, reading other people’s code, managing versions, and debugging.

CIS 5810 Computer Vision & Computational Photography

This is an introductory course to computer vision and computational photography. This course will explore four topics: 1) image feature detection, 2) image morphing, 3) image stitching, and 4) deep learning related to images. This course is intended to provide a hands-on experience with interesting things to do on images/pixels.

View Full Course Description

CIS 5810 Computer Vision & Computational Photography

Course Offerings
Course Creators
  • Jianbo Shi
Pre-Requisites

CIT 5910 Introduction to Software Development, CIT 5920 Mathematical Foundations of Computer Science, CIT 5930 Introduction to Computer Systems and CIT 5940 Data Structures & Software Design. Students may take CIT 5950 Computer Systems Programming and/or CIT 5960 Algorithms & Computation concurrently with this elective.

Course Description

This is an introductory course to computer vision and computational photography. This course will explore four topics: 1) image feature detection, 2) image morphing, 3) image stitching, and 4) deep learning related to images. This course is intended to provide a hands-on experience with interesting things to do on images/pixels. The world is becoming image-centric. Cameras are now found everywhere: in our cell phones, automobiles, and even in medical surgery tools. In addition, computer vision technology has led to innovations in areas such as movie production, medical diagnosis, biometrics, and digital library. This course is suited for students with any engineering background who have a basic understanding of linear algebra and programming, along with plenty of imagination.

CIT 5820 Blockchains & Cryptography

Introducing the fundamentals of cryptography and distributed systems that underpin modern blockchain platforms — including collision-resistant hash functions, digital signatures and classical consensus algorithms and examining the architecture of modern blockchain platforms, and develop tools to analyze and interact with them in Python.

View Full Course Description

CIT 5820 Blockchains & Cryptography

Course Offerings
Course Creators
  • Brett Falk
  • Mohammad Javad Amiri
Pre-Requisites

CIT 5910 Introduction to Software Development and CIT 5920 Mathematical Foundations of Computer Science

Course Description

Blockchains or Distributed Ledger Technology (DLT) provide a novel method for decentralizing databases in the presence of mutually distrustful or malicious agents. The promise of DLTs has attracted billions of dollars in investments, yet the true potential of these systems remains unclear.

This course introduces students to the fundamentals of cryptography and distributed systems that underpin modern blockchain platforms — including collision-resistant hash functions, digital signatures and classical consensus algorithms. From there, we will examine the architecture of modern blockchain platforms, and develop tools to analyze and interact with them in Python.

At the end of this course, students should understand the power and limitations of blockchain technology, and be able to develop software that interacts with current blockchain platforms.

Or one of the Core Courses


Technical Electives (Tentative)

  • Data Science for Health
  • Engineering Ethics
  • Data Visualization

Open Electives

(Choose 2 Course Units)

Students may take CIT 5950 Computer Systems Programming and CIT 5960 Algorithms and Computation as Open Electives.

CIS 5470 Software Analysis

This course provides a rigorous and hands-on introduction to the field of software analysis – a body of powerful techniques and tools for analyzing modern software, with applications to systematically uncover insidious bugs, prevent security vulnerabilities, automate testing and debugging, and improve our confidence that software will behave as intended.

View Full Course Description

CIS 5470 Software Analysis

Course Offerings
  • Not Offered
Course Creators
  • Mayur Naik
Pre-Requisites

CIT 5920 Mathematical Foundations of Computer Science, CIT 5940 Data Structures & Software Design, CIT 5950 Computer Systems Programming. Specifically: Assignments involve programming in C++ using the LLVM compiler infrastructure. Lectures and exams presume basic knowledge of algorithms (e.g. graph traversal and asymptotic analysis) and basic background in logic (e.g. set theory and boolean algebra).

Course Description

This course provides a rigorous and hands-on introduction to the field of software analysis — a body of powerful techniques and tools for analyzing modern software, with applications to systematically uncover insidious bugs, prevent security vulnerabilities, automate testing and debugging, and improve our confidence that software will behave as intended. Topics covered include dynamic analysis, random testing, automated test generation, dataflow analysis, constraint solving, type inference, and symbolic execution. Lectures present software analysis concepts and algorithms in a language-independent manner, while weekly programming labs involve realizing them concretely in C++ using the LLVM compiler infrastructure. This course will enable you to become a better software engineer or security analyst by learning a rich repertoire of software analysis ideas and know-how to apply them to specific scenarios in practice.

CIT 5490 Wireless Communications for Mobile Networks and Internet of Things

Portfolio Building Course

Study today’s state-of-the-art wireless technology (4G LTE), next-generation wireless technology (5G NR), Wi-Fi technologies and the Internet of Things. You’ll build a simple IoT service with an IoT client device emulator and a real IoT server platform on the Internet.

View Full Course Description

CIT 5490 Wireless Communications for Mobile Networks and Internet of Things

Portfolio Building Course
Course Offerings
Course Creators
  • Bongho Kim
Pre-Requisites

CIT 5930 Introduction to Computer Systems and CIT 5950 Computer Systems Programming

Course Description

This course covers today’s state-of-the-art wireless technology 4G LTE, the next-generation wireless technology, 5G NR, and Wi-Fi technologies. Internet of Things (IoT) and the network slicing technologies in the 4G and 5G mobile networks, which are the parts of the main drivers for 5G, and the Docker container and Kubernetes will be also covered. Students will use an end-to-end LTE and Wi-Fi application performance simulation platform to analyze network protocols and analyze the impact on end-to-end application performance over the wireless network. Students will also build a simple IoT service with an IoT client device emulator and a real IoT server platform on the Internet. The course starts with the fundamental wireless technology background and networking topics with hands-on projects to help students build a foundation for the course, and the course includes contemporary research paper readings, assignments to utilize the simulation platform and implementation projects. The simulation platform provides network protocol stacks and base source code.

CIS 5530 Networked Systems

This course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. Topics to be covered include: Internet architecture, network applications, addressing, routing, transport protocols, peer-to-peer networks, software-defined networks, and distributed systems.

View Full Course Description

CIS 5530 Networked Systems

Course Offerings
Course Creators
  • Boon Thau Loo
Pre-Requisites

CIT 5940 Data Structures & Software Design; CIT 5950 Computer Systems Programming; Understanding of basic probability. Course projects require knowledge of C/C++

Course Description

This course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. Topics to be covered include: Internet architecture, network applications, addressing, routing, transport protocols, peer-to-peer networks, software-defined networks, and distributed systems. The course involves regular quizzes, two large group-based networked systems implementation projects, and two written exams.

CIT 5950 Computer Systems Programming

This course is a continuation of CIT 5930 and introduces students to fundamental concepts in computing systems. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

View Full Course Description

CIT 5950 Computer Systems Programming

Course Offerings
Course Creators
Pre-Requisites

CIT 5930

Course Description

This course is a continuation of CIT 5930 and introduces students to fundamental concepts in computing systems. The course is divided into two parts. The first half of the course introduces important concepts in modern operating systems: processes, scheduling, caching, and virtual memory. The second half of the course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

CIT 5960 Algorithms & Computation

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

View Full Course Description

CIT 5960 Algorithms & Computation

Course Offerings
Course Creators
  • Sampath Kannan
  • Anindya De
  • Neil Lutz
Pre-Requisites

CIT 5920 | Co-requisite: CIT 5940 (Taking concurrently is allowed but taking beforehand is preferred)

Course Description

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

DATO 5990 Practicum

In the MSE-DS Online Practicum course, students will work with an advisor on a real world research project suitable for a portfolio. The course will include a one week on-campus component. Additional fees apply.

View Full Course Description

DATO 5990 Practicum

Course Offerings
Course Creators
Pre-Requisites

Students in their last semester of the MSE-DS Online program.Enrollment for this course is limited, and students will be required to apply for permission to enroll. More details on the process will be posted at a later date.

Course Description

In the MSE-DS Online Practicum course, students will work with an advisor on a real world research project suitable for a portfolio. The course will include a one week on-campus component. Additional fees apply.

Or one of the Core Courses or Technical Electives

*Courses subject to change


MSE-DS Program Length

How long does it take to complete a Penn Engineering Online degree program?

A Penn Engineering Online degree program requires the successful completion of ten courses. Students have access to a Student Success Advising Team that can help them plan their course schedule and overall degree plan. Students can easily switch between part-time and full-time registration each semester based on how many courses they take. Enrollment in the summer semester is optional. We encourage all students to meet with a member of our Student Success Advising Team to discuss the course load and route to degree completion that best fits their needs. Depending on how many classes you take each semester, you can complete the program in 16 to 40 months.

What is the definition of part-time vs full-time?

Part-time status for Penn Engineering Online degree students is defined as taking 1-2 courses in a semester. Full-time status is defined as taking 3-4 courses per semester. It is easy to switch back and forth between part-time and full-time status.

Stay In The Know

Are you interested in pursuing an MSE-DS Online degree?

Request More Information

MSE-DS Online Information Form

Not yet ready for the MSE-DS Online program?

Learn more about our MCIT | MSE-DS Online Dual Degree