• No products in the cart.

You’ll 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.


This course does not involve any written exams. Students need to answer 5 assignment questions to complete the course, the answers will be in the form of written work in pdf or word. Students can write the answers in their own time. Each answer need to be 200 words (1 Page). Once the answers are submitted, the tutor will check and assess the work.


Edukite courses are free to study. To successfully complete a course you must submit all the assignment of the course as part of assessment. Upon successful completion of a course, you can choose to make your achievement formal by obtaining your Certificate at a cost of £49.

Having an Official Edukite Certification is a great way to celebrate and share your success. You can:

  • Add the certificate to your CV or resume and brighten up your career
  • Show it to prove your success


Course Credit: The University of British Columbia

Course Curriculum

Welcome and Introduction 00:07:00
Introducing: The Career Development Series 859874 00:03:00
1: Introduction to Software Construction
Welcome to Software Construction 00:03:00
First Look 00:08:00
Package Relationships 00:08:00
Class Relationships 00:03:00
2a: Control and Data Flow: Structures
Introduction 00:04:00
Call Graphs 00:08:00
Classes and Objects 00:02:00
Variables 00:09:00
Anatomy of a Class 00:05:00
Debugging, Part 1 00:11:00
2b: Control and Data Flow: Models
Data Flow 00:04:00
Passing Parameters 00:09:00
Returning Values 00:07:00
Constructors 00:06:00
Debugging, Part 2 00:12:00
Execution of a Method 00:05:00
If and If Else 00:06:00
Foreach Loops 00:05:00
For Loops 00:05:00
So Much Going On 00:04:00
Debugging, Part 3 00:10:00
3a: Data Abstraction: Specifying and Using
Introduction 00:06:00
What is Abstraction? 00:04:00
Visibility 00:08:00
Specifying a Data Abstraction 00:05:00
Requires 00:04:00
Modifies 00:08:00
Effects 00:02:00
Specifying the insert() method 00:06:00
Specification for IntegerSet 00:01:00
Using a Data Abstraction 00:05:00
3b: Data Abstraction: Testing and Implementing
Testing 00:04:00
Devising Test Cases 00:11:00
JUnit, part 1 (@Test and Fields) 00:09:00
JUnit, part 2 (@Before, Asserts and Fails) 00:04:00
Testability 00:05:00
Writing Tests 00:14:00
Debugging, Part 4 00:12:00
Implementing a Data Abstraction 00:02:00
Implementing IntegerSet 00:04:00
4: Type Hierarchies, Polymorphism and Dispatching
Introduction 00:04:00
Types in Java 00:04:00
Specifying and Implementing Interfaces 00:08:00
Apparent and Actual Types 00:03:00
Types and Parameters 00:04:00
Software Construction: Data Abstraction (UBC) 00:14:00
IntegerSetInterface (Extracting an Interface) 00:10:00
Inheritance 00:04:00
Extending Classes 00:06:00
Method Overriding and Overloading 00:06:00
Super Calls 00:04:00
Abstract Classes 00:06:00
Abstract IntegerSetTest 00:07:00
Submit Your Assignment 00:00:00
Certification 00:00:00

Course Reviews


9 ratings
  • 5 stars0
  • 4 stars0
  • 3 stars0
  • 2 stars0
  • 1 stars0

No Reviews found for this course.

©2021 Edukite. All Rights Resereved
Edukite is A Part Of Ebrahim College, Charity Commission
Reg No 110841