Penn Engineering’s accelerated MCIT Online degree combines Ivy League quality with the flexibility of a virtual experience.
Designed specifically for students who are new to computer science, MCIT Online offers the same innovative curriculum and high-quality teaching as Penn’s on-campus program. Regardless of what you studied as an undergraduate, motivated students will build a strong foundation in computer science and gain real-world coding skills.
Core courses and electives blend computer science theory and applied, project-based learning. You’ll use real-world tools and environments such as TensorFlow and Amazon Cloud, and you’ll have ongoing access to Penn Engineering faculty and TAs through live office hours and discussion forums.
To earn a master’s degree, you’ll complete ten courses – six core courses and four electives. All courses are fully online, and there are no required real-time sessions.
We recommend that you take the core courses in sequential order, but it is not required. You must take CIT 591 in your first semester and complete four core courses before registering for electives.
This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Students learn how to read and write to files, connect to databases, and use regular expressions to parse text. This course includes substantial programming assignments in both Python and Java, and teaches techniques for test-driven development and debugging code.
View Full Course DescriptionThis course introduces students to math concepts that form the backbone of the majority of computer science. Topics covered include sets, functions, permutations and combinations, discrete probability, expectation, mathematical induction, and graph theory. The goal of the course is to ensure that students are comfortable enough with the math required for most of the CIS electives.
View Full Course DescriptionThis course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs.
View Full Course DescriptionThis course focuses on data structures, software design, and advanced Java. The course starts off with an introduction to data structures and basics of the analysis of algorithms. Important data structures covered include arrays, lists, stacks, queues, trees, hash maps, and graphs. The course also focuses on software design and advanced Java topics such as software architectures, design patterns, and concurrency.
View Full Course DescriptionThis 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 DescriptionThis 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 DescriptionYou’ll complete four graduate-level electives. MCIT Online students may use MSE-DS Online electives to satisfy their elective requirements.
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 DescriptionThis 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 DescriptionThis 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 DescriptionThis 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 DescriptionThis 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 DescriptionStudy 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 DescriptionStructured 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 DescriptionThis 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 DescriptionThis 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 DescriptionThis 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 DescriptionThis 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 DescriptionIntroducing 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 DescriptionCloud computing is the heart of modern digital applications. This course provides practical, hands-on knowledge and understanding of distributed computing principles to design and develop applications that utilize public clouds such as Google Cloud, Amazon Web Services, Azure, etc. The course will cover cloud infrastructure services for computing, storage, networking, data analytics, machine learning, and modern application development. Students will learn to architect and implement complex applications utilizing different cloud infrastructure components to engineer robust, scalable solutions across practical industry use cases.
View Full Course DescriptionIn 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 DescriptionThe 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 DescriptionThe 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 DescriptionNot sure if MCIT Online is for you? Try an open-enrollment course or specialization to find out what to expect.