Skip to main content

Software Development Fundamentals

Provided by University of Pennsylvania (PennX)
See prerequisites

Learn the fundamentals of object-oriented programming in Java, as well as best practices of modern software development.

Start Date:

Before you start

Basic knowledge of computer programming (variables, functions, control flow)
Course opens: May 15, 2017
Course ends: Jul 17, 2019

What you will learn

  • How to write a large program in Java using Java keywords, syntax and libraries
  • How to represent a problem in terms of the different classes that need to be designed
  • Identify and write a set of comprehensive test cases
  • Development environments, tools, and frameworks for modern Java software development
Week 1: Java basics.
Week 2: Testing and Debugging.
Week 3: Collections. Object Oriented  Design.
Week 4: Polymorphism - Interfaces, Inheritance, Overloading, Overriding.


Software developers are in high demand in the current job market, and computer programming is a prerequisite skill for success in this field.

Start your journey toward becoming a professional software developer by learning Java, one of the industry’s most commonly used programming languages.

This course, part of the CS Essentials for Software Development Professional Certificate program, will quickly cover Java syntax and keywords and then explore features of object-oriented programming including encapsulation, inheritance, and polymorphism. You will learn how to apply these concepts to programmatic problem solving by investigating class modeling techniques and relationships such as aggregation, realization, and generalization.

In addition to programming, you will learn about software testing techniques that help us find problems in our code, and you will use modern development environments and tools for tasks like debugging and unit testing. We will introduce Eclipse, the eclipse debugger and Junit (a unit testing framework).

After completing this course, you will be able to design, develop, and test large applications in Java and understand and apply core principles of professional software development.

Meet your instructors

Arvind Bhusnurmath
Lecturer, Computer and Information Science
University of Pennsylvania
View Courses
This course is part of:

Earn a Professional Certificate in 2-4 months if courses are taken one at a time.

View the program
  1. Software Development Fundamentals
  2. 32–40 hours of effort

    Learn how to select, apply, and analyze the most appropriate data representations in your code and design high quality software that is easy to understand and modify.

  3. 24–32 hours of effort

    Learn about the core principles of computer science: algorithmic thinking and computational problem solving.

  4. 24–32 hours of effort

    Learn how to develop dynamic, interactive, and data-driven web apps using JavaScript.

Get started in computer science

Browse over 600 computer science courses
Of all edX learners:
73% are employed
Of all edX learners:
45% have children
Based on internal survey results
430,736 people are learning on edX today