When you graduate, you’ll be able to:

  • Combine mathematical foundations and engineering principles to develop solutions to real-world computing problems
  • Design, construct and maintain high-quality software as part of a collaborative development team
  • Assess the appropriate use of modern techniques, skills and tools in creating a technology solution
  • Apply algorithmic thinking and computer science theory to the modeling and analysis of software systems

Degree Requirements

Penn Engineering’s 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.

The MCIT Online degree program requires the completion of 10 fully online computer science courses made up of six core courses and four electives. There are no required real-time sessions.

6 Core Courses

  • Introduction to Software Development (CIT 591) This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Includes an introduction to programming using Python, where students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. Also provides an introduction to basic data science techniques using Python. The second half of this course is an introduction to object-oriented programming using Java, where students are introduced to polymorphism, inheritance, abstract classes, interfaces, and advanced data structures. Students will also 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.

  • Mathematical Foundations of Computer Science (CIT 592) This 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 course goal of is to ensure students are comfortable with the math required for most CIS electives.

  • Introduction to Computer Systems (CIT 593) This course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn C programming language and an instruction set (machine language) as basis for understanding how computers represent data, process information, and execute programs.

  • Data Structures & Software Design (CIT 594) This course focuses on data structures, software design, and advanced Java; starting with an introduction to data structures and basics of algorithm analysis. 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.

  • Computer Systems Programming (CIT 595) This course is a continuation of CIT 593 and introduces students to fundamental concepts in computing systems. 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.

  • Algorithms & Computation (CIT 596) This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms, then investigates graph algorithms. General algorithm design patterns like dynamic programming and greedy algorithms are then introduced. A section of this course is also devoted to understanding NP-Completeness.

It is recommended that students take the core courses in sequential order. That said, students do not need special permission to take courses out of sequence so long as prerequisites and corequisites are followed. Note that new students must take CIT 591 in their first semester and students must complete four of the core courses before registering for electives.

4 Electives

MCIT Online students must complete four graduate-level electives. MCIT Online is still in the process of developing new electives. Students must pass and complete four of the core courses before registering for electives.

Descriptions of each course are on the MCIT Online Course List.

Enrollment Options

Courses are offered in the spring (January to May), summer (May to August), and fall (August to December), and the summer semester is optional. New cohorts start in fall and spring semesters. View a few sample course plans here.

Students may enroll in the MCIT Online program on a part-time or full-time basis. Students are allowed a maximum of seven years to complete the MCIT Online degree program. On average, students complete the program in 16-40 months depending on their course load.

Try a course

Wondering if the MCIT Online is right for you?

Get familiar with the degree program by taking Penn Engineering’s Specialization, Introduction to Programming with Python and Java, on Coursera. It features some of the lecture videos and content from the first course in the program. The Specialization certificate will be viewed favorably by the admissions committee so be sure to mention it in your application.

You can also try Penn Engineering’s stand-alone course, Computational Thinking for Problem Solving, and assess your ability to think like a computer scientist. The course is open for enrollment and costs $49.

Not sure if you're ready to start?

Take this quiz from Penn Engineering to help decide if now is the right time for you to pursue this degree. Note: This quiz will in no way factor into your application -- this is purely to assess your ability to thrive in an online degree program and to help you prepare for success in MCIT Online. This blog post helps explain more about the expectations of the degree.

Download Coursera's mobile app


Fall 2023 applications are now open!.

  • Early application and scholarship deadline: March 1, 2023
  • Regular application deadline: May 2, 2023

MCIT Online accepts applications for the fall and spring semesters.

View all upcoming webinars and events here.

Coursera does not grant credit, and does not represent that any institution other than the degree granting institution will recognize the credit or credential awarded by the institution; the decision to grant, accept, or transfer credit is subject to the sole and absolute discretion of an educational institution.

We encourage you to investigate whether this degree meets your academic and/or professional needs before applying.

Have questions?

If you have questions about the application process or eligibility, please contact our admissions team at online-admissions@seas.upenn.edu.