Checkliste og spørgsmål MIP eksamen
For kurset i objekt-orienteret programmering er eksamen en 48 timers
programmeringsopgave. Dette er den generelle checkliste og spørgsmål som
censor og eksaminator bruger til at vurdere de afleverede MIP opgaver.
Checkliste og spørgsmål er på engelsk da de er diskuteret med ikke dansk
talende personer.
Checkliste og spørgsmål kan er IKKE en komplete liste af spørgsmål der kan stilles
til MIP eksamen, men kan bruges til at orientere sig om hvad det er vi lægger vægt på.
Spørgsmål
Dette afsnit lister en række spørgsmål, der skal bruges til
at afdække de studerendes faglige niveau og hvad de burde kunne
svare på i henhold til kursets indlæringsmål.
Variables
- What is the difference between an instance variable and a local (or method) variable?
- What is a static variable?
- How are constants (final) defined in Java?
- Do variables always have a type? + do variables always have a value?
- What is the different of a variable declared in at the scope of the class and in a method?
- Can variables simply be used or do they need to be declared first?
- What is the scope of variables?
- What is a reference to an object?
Access modifiers
- What are the access modifiers in Java?
Methods
- What is a method?
- Are there both functions and procedures in Java?
- How are methods called?
- Formal parameter what is that?
- Actual parameter what is that?
- Method passing mechanisms how many different in Java?
- How can a call-by-reference like mechanishm be used in Java?
- Can there be methods outside a class?
- What is method overloading?
- What is a final method?
- What is a static method?
- Do all methods have a body?
- What access modifiers are available on methods?
Constructor
- What is a constructor?
- What is a default constructor (no-arg constructor)?
- What names can a constructor have?
- Can constructors be overloaded?
- Can constructors be private?
Class
- What is a class?
- What is an abstract class?
- What is the relationship between an object and a class?
- What is the this keyword used for?
- Does a class always have a constructor?
Object
- Which operator is used to create new objects?
- What is the relationship between an object and a class?
- Possible to call static method on an object?
- What is a reference to an object?
Interface
- What is an interface?
- What are the allowed access modifiers in interfaces?
- What is the different between an abstract class and an interface?
- Are method bodies possible in an interface?
Inheritance
- What is inheritance? (superclass and subclass)
- Does Java support multiple inheritance (can it be "faked")?
- Are all instance variables, methods, and constructors inherited?
- What is method redefinition?
- Polymophism/dynamic binding explain this concept?
- Constructors and inheritance?
- What is upcast and downcast? Where is it typically used in Java (iterator)
- What is the super keyword used for?
- Does a class always have a superclass?
- What are the advantages of having Object as root in the inheritance hierarchy?
The Program in General
- How is a program started in Java (the main method)?
- What is the package keyword used for?
- What are imports used for?
Checkliste
Dette er en checkliste af de ting vi kigger på for hver MIP opgave. Listen er IKKE komplet,
men skal vise, hvad det er vi kigger på.
- Do classes/methodes/variables/parameters have reasonable names?
- JavaDoc on all public constructions (and relevant private)?
- Implemented in the default package?
- Method overloading used?
- Are constructors used/overloaded?
- Method redefined in particular is toString, clone, equals redefined?
- Are access methods used (get/set methods)?
- Are instance variables private/protected?
- Is the iterator design pattern used instead of for loops?
- Is code repeated, i.e., has copy-paste been used anywhere in the program?
- Are the hardwired or "magic" values in the program?
- Is Serialization used?
- Is the String data type used for dates?
- Is UI code mixed with "core" code (if the UI is changed then also necessary to change core classes)?
- Return used at end of procedures or constructors?
- Polymorph call of methods?
- Is structured exception handling used?
- Are pre/post conditions used?