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.
Assessment
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.
Certification
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 | ||
Assessment | |||
Submit Your Assignment | 00:00:00 | ||
Certification | 00:00:00 |
Course Reviews
No Reviews found for this course.