• No products in the cart.

Java is a general-purpose computer programming language. The   [course_title] course covers the process of software development and teaches you how to write “good codes” or the how to write codes free from bugs, easy to write and ready to change.

In the course, you will learn how to make your code better using testing, specifications, code review, exceptions, immutability, abstract data types, and interfaces.

Upon completion, it is hoped that you will be able to write “good codes” by using the Java programming language.


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 needs 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 the 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: Massachusetts Institute of Technology

Course Curriculum

Reading 1: Static Checking
Reading 1 Objectives 00:02:00
Hailstone Sequence 00:05:00
Types 00:06:00
Static Typing 00:11:00
Arrays and Collections 00:13:00
Methods 00:04:00
Mutating Values Vs. Reassigning Variables 00:08:00
Documenting Assumptions 00:02:00
The Goal of 6.005 00:04:00
Reading 2: Code Review
Reading 2 Objectives 00:01:00
Don’t Repeat Yourself 00:05:00
Comments Where Needed 00:00:00
Fail Fast 00:00:00
Avoid Magic Numbers 00:02:00
One Purpose For Each Variable 00:02:00
Use Good Names 00:03:00
Use Whitespace To Help The Reader 00:04:00
Don’t Use Global Variables; Return, Don’t Print 00:00:00
Reading 3: Testing
Reading 3 Objectives 00:01:00
Why Software Testing is Hard 00:06:00
Test-First Programming; Partitioning 00:15:00
Blackbox and Whitebox Testing 00:02:00
Documenting Your Testing Strategy 00:04:00
Automated Testing and Regression Testing 00:04:00
Reading 4 Objectives 00:01:00
Why Specifications 00:08:00
Specification Structure 00:08:00
What a Specification May Talk About 00:09:00
Exceptions 00:11:00
Exception Design Considerations 00:06:00
Reading 4: Specifications
Reading 4 Objectives 00:01:00
Why Specifications 00:08:00
Specification Structure 00:08:00
What a Specification May Talk About 00:09:00
Exceptions 00:11:00
Exception Design Considerations 00:06:00
Reading 5: Designing Specifications
Reading 5 Objectives 00:01:00
Deterministic vs. Underdetermined Specs 00:06:00
Declarative vs. Operational Specs 00:03:00
Stronger vs. Weaker Specs 00:09:00
Designing Good Specifications 00:13:00
Reading 6: Avoiding Debugging
Reading 6 Objectives 00:01:00
First Defense: Make Bugs Impossible 00:03:00
Second Defense: Localize Bugs 00:10:00
Incremental Development, Modularity & Encapsulation 00:08:00
Reading 7: Mutability and Immutability
Reading 7 Objectives 00:01:00
Mutability 00:04:00
Risks of Mutation 00:00:00
Risky Example 2 00:05:00
Aliasing is What Makes Mutable Types Risky 00:05:00
Iterating Over Arrays and Lists 00:07:00
Mutation Undermines an Iterator 00:02:00
Mutation and Contracts 00:12:00
Regarding 8: Debugging
Reading 8 Objectives 00:01:00
Systematic Debugging 00:05:00
Understand the Location and Cause of the Bug 00:12:00
Reading 9: Abstract Data Types
Reading 9 Objectives 00:01:00
What Abstraction Means 00:05:00
Classifying Types and Operations 00:09:00
Designing an Abstract Type 00:10:00
Realizing ADT Concepts in Java 00:05:00
Reading 10: Abstraction Function and Rep Invariants
Reading 10 Objectives 00:01:00
Rep Invariant and Abstraction Function 00:12:00
Checking the Rep Invariant 00:00:00
Documenting the AF, RI, and Safety From Rep Exposure 00:02:00
How to Establish Invariants 00:02:00
Invariants 00:12:00
Reading 11: Interfaces
Reading 11 Objectives 00:00:00
Interfaces 00:02:00
Subtypes 00:03:00
Examples 00:07:00
Why Interfaces 00:05:00
Reading 12: Equality
Reading 12 Objectives 00:02:00
Three Ways To Regard Equality 00:06:00
Equality of Immutable Types 00:12:00
Breaking Hash Tables 00:06:00
Equality of Mutable Types 00:06:00
Autoboxing and Equality 00:03: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