EEN512 Study Guide (19th November 1998)
(I think this covers everything, but it is only a list of reminders.)
- Object Oriented Design
- Identify objects and relationships between them
- Object Model Diagrams
- Be able to construct one, or understand a given one
- Meanings of the shapes: rectangles, diamonds, triangles
- Meanings of connections and "blobs" on ends of connections
- Classes, attributes, relationships, roles, link attributes
- Difference between inheritance, membership, and relationship
- Be able to convert diagram into C++ or Java definitions
- And be able to do the reverse.
- Using classes to encapsulate and hide implementation details
- The dangers of trusting provided libraries
- If the implementation is hidden from you, how do you know it is good?
- (the example of thinking Java's Vector class is good for queues)
- Programming
- IMPORTANT:
- You are expected to know the basic principles of
BOTH java and C++ and be able to understand both,
and explain their ways of doing things and major
differences, advantages, and disadvantages.
- You are only expected to be reasonable proficient
at programming in ONE of the langauges.
- The differences between using objects and pointers to objects
- Polymorphism via superclass pointers, "Object" in Java.
- Creation of objects and arrays in C++ vs. in Java
- Private, Protected, and Public members and inheritance
- (Re-)defining operators in C++
- overloaded method names and how methods are chosen
- Constructors and operators automatically provided by C++
- Virtual methods
- Controversial use of p->method() when p is NULL
- programming problems when null objects can't be used (tree example)
- different implementations:
- virtual method as member which is pointer to function
- type tags in objects used to select from "dispatch tables"
- Templates vs. Interfaces
- Active Objects
- Really taking the "sending a message" model of method calling seriously
- Adaptability to true parallel processing
- Design insights sometimes leading to better non-active implementations
- (remember the shortest path example for instance)
- Implementation using threads
- Problems of concurrent access to shared data:
- Makes communication between threads difficult
- Solution to the problem
- Java's Abstract Windows Toolkit (AWT)
- The general hierarchy of classes
- The style of programming
- Components, Containers, Listeners, and Events.
- Proofs of Programs
- The concept of "Weakest Precondition"
- Basic rules for calculating wp(S,{Q}) where S is:
- Assignment, Sequence(;), SKIP, Conditional.
- Principles behind proofs of loops.
----------------------1st test, 29th September------------------
----------------------2nd test, 19th November-------------------
---------Final Examination, 5pm Tuesday 15th December-----------