CSE2305 - Object-Oriented Software Engineering
tutor resources

CSE2305
Object-Oriented Software Engineering

Meeting 3: 3 August 2004

Present: Nadeeja, Nadejda, Khalid, Tony M, Tony T, Kym, Jon, Menake (12:15 -
45 minutes)


Assignment 2


We mainly discussed the solution to assignment 2, noting the common problems
that students seem to be having.
Q1- not knowing when to store the date (many are just printing the current
time whenever the Message gets printed, instead of storing the creation time)
- It might be a good idea to try to explain to the students that the interface
is defined in the Message class, TSMessage is a more specialised form of
Message - it simply extends the Message class (they are having trouble
understanding the concept of inheritance
- Note that the provided time structures and date functions in C++ and linux
have trouble representing many dates (earlier than 1970 I think). The Date
class as implemented in Homework exercise 2 is based on the Julian (sp?) date
system, which can represent any date at any time in history and in the future
- it deals with missed years in ancient times, etc. and thus is much more
robust than using cftime or another provided time/date functin/class.
- It's important to keep common functionality in the parent class, for example
BinaryOp::evaluate needs to get the result of the lhs and rhs evaluation
before doing the actual operation (which will depend on the type of derived
class - this is why there is another function performOp which is virtual in
BinaryOp, but implemented in the derived classes).
- discourage the overuse of inheritance. Like all _new_ things the students
learn, they often try to apply it to all problems, but should only be using
inheritance where necessary.

Tutorials:
- Please use UML notation to explain abstraction (including inheritance,
composition etc)
- It would be good to cover why public/private/protected sections are
important in inheritance (and what the different types of inheritance allow
access to).
- Remind the students to read the assignment sheets carefully:
for example: where a noun is used, it typically indicates a class (Log some
_messages_), an adjective usually indicated attributes of the class.
- Note that there is always an exam question that is similar to assignment 3,
so making a big effort in this assignment is excellent preparation for part
of the exam.

Assignment 1 - UML
- Note that it is unnecessary to show the use of the templated vector/list
classes as that is an implementation (as opposed to a design) aspect. It
would be enough to note that there is a List of Messages in the MessageLog
class as a dataMember.

Post-meeting addendum:
Ass 1 results have been released, all queries are to come to Jon/me, not the
actual markers (even though the students know who did mark them).

 

This material is part of the CSE2305 – Object-Oriented Software Engineering course.
Copyright © Jon McCormack, 2004.  All rights reserved.

Last modified: August 20, 2004