Free Online Course on Software Construction: Data Abstraction

The University of British Columbia

The University of British Columbia is offering free online course on Software Construction: Data Abstraction. This is the third course in the Software Development MicroMasters program.

In this course, applicants will learn powerful data abstraction and decomposition techniques to build large, complex programs. The course will start on August 15, 2017.

Course At A Glance

Length: 6 weeks
Effort: 8-10 hours pw
Subject: Computer Science
Institution: University of British Columbia and edx
Languages: English
Price: Free
Certificate Available: Yes, Add a Verified Certificate for $125
Session: Course Starts on August 15, 2017

Providers’ Details

The University of British Columbia is a global centre for research and teaching, consistently ranked among the 40 best universities in the world. Since 1915, UBC’s West Coast spirit has embraced innovation and challenged the status quo. Its entrepreneurial perspective encourages students, staff and faculty to challenge convention, lead discovery and explore new ways of learning. At UBC, bold thinking is given a place to develop into ideas that can change the world.

About This Course

This is the third course in the Software Development MicroMasters program. You will learn how to build larger and more complex software systems using the Java programming language.

The course begins with the topic of data abstraction – from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type hierarchies and polymorphism can be used to decrease redundancy in your code. The course wraps up with a discussion of how to design robust classes.

Why Take This Course?

By the end of the course, you will have a solid foundation in designing software in Java, and be ready to move onto Software Construction: Object-Oriented Design, where you will learn more complex design patterns and principles designing object-oriented programs.

Learning Outcomes

  • How to read and write Java programs
  • How to test Java programs with JUnit
    To build larger software systems using abstraction and decomposition
  • How to specify, implement, use and test a data abstraction


Gail Murphy

Professor of Computer Science, University of British Columbia

Elisa Baniassad

Instructor in Computer Science, University of British Columbia


How to Code: Simple Data
How to Code: Complex Data

How To Join This Course

  • Go to the course website link
  • Create an edX account to SignUp
  • Choose “Register Now” to get started.
  • EdX offers honor code certificates of achievement, verified certificates of achievement, and XSeries certificates of achievement. Currently, verified certificates are only available in some courses.
  • Once applicant sign up for a course and activate their account, click on the Log In button on the homepage and type in their email address and edX password. This will take them to the dashboard, with access to each of their active courses. (Before a course begins, it will be listed on their dashboard but will not yet have a “view course” option.)

Apply Now

Share on facebook
Share on twitter
Share on linkedin