points _ Dictionary new. file _ CrLfFileStream readOnlyFileNamed: 'f1.dat'. [file atEnd] whileFalse: [points at: (file upTo: $=) put: file nextLine as Integer]. file close. answer _ WriteStream on: String new. points keysAndValuesDo: [ :name :point | point = points max ifTrue: [ answer nextPutAll: 'Best: ', name, '(', point asString, ')', Character cr asString. ]. ]. answer nextPutAll: 'Average: ', points average asFloat asString, Character cr asString. Transcript show: answer contents.