What can I do if I master “objects”?
Explanation Advanced level
You apply the following programming concepts and have examples that demonstrate your mastery of the following concepts:
For the in-depth level, everything that applied to the exploratory level applies with the following additional requirements:
You apply all of the programming concepts listed. The focus here is on readable (e.g. naming, indentation) and maintainable software programs (so just a program that works is not good enough).
You create a design (CRC, class diagram) that reflects the most important functionality.
You ask for feedback from a teacher with software engineering knowledge and show that you have incorporated this feedback.
Concepts/Topics:
(NOT A CHECKLIST!)
- objects / classes
- constructors
- encapsulation:
- private fields
- Get/set method and/or property
- method/constructor overloading
- override ToString().
- CRC / class diagram
- Methods with (own) Classes as parameter or return value.
- Classes in conjunction: relationships (between classes).
- Separation of GUI and Domain.
You have also demonstrated and/or worked on the following skills:
- V1. Readability/Maintainability.
- Coding Guidelines followed?
- Comments in code.
Sometimes useful, but don’t go adding unnecessary comments!
If a variable-, method- or class-name needs explanation,
try to come up with a better name first.
- V2. Algorithm
- V3. Feedback requested from teacher, noted, processed.
- V4. Communicated professionally. In particular, I am on time, report to instructor if I am absent or late one time.
A “sort of” checklist (non-complete) that can help:
- To master concepts and practice with them you have done some “training”.
- In the ‘contest’ you show what you can do. In a contest app, an app(lication) created for the ‘contest’, you show that you know how multiple concepts are used within a maintainable app. The rules below are about your competition apps!
- To convince yourself and a teacher that you can create classes, you have created at least 10 classes, of which at least 5 are within 1 contest app.
- These classes have methods, fields, properties, constructors, etc.
- In at least 5 classes you have added a meaningful ‘override ToString()’.