Exercise on Object-oriented Programming
Gain practical experience with a purely object-oriented programming style.
Develop a sample program in Smalltalk as an example for a pure object-oriented language.
Create a simple drawing program for straight lines.
The program should display a window with an initially empty drawing area. The user can then draw straight lines by clicking the starting point, dragging the mouse pointer and releasing the mouse button at the end point. It should be possible to draw an unlimited number of lines.
The above is the absolute minimum requirement. You should extend that by at least one of the following additional features:
Important: You can easily find working examples of similar programs implemented in Smalltalk. You are encouraged to study such examples, but you must finally implement your own program. During the demo, you must be able to explain how you did it.
Squeak is an open-source development environment for Smalltalk.
Pharo is an alternative system with a more modern look. In fact, Pharo was built on top of the Squeak system.
Both Squeak and Pharo are available for Windows, Mac and various Unix variants. They come with a wealth of documentation, tutorials and examples. For further information, see the documentation and samples on the project pages.
When you present your results at the end of the semester, we expect you to critically discuss your own implementation with respect to Smalltalk compared to other object-oriented languages. Which language properties of Smalltalk did you actively use? Which of them were helpful for the given task? Which got in your way and required workarounds? What would your solution look like if you had implemented it in a different language, such as Java?
During your presentation, you must expect questions about the standard classes of Smalltalk. It is therefore highly recommended that you familiarize yourself with the available classes in the Smalltalk class library. You should be able to explain why you chose a certain class in your implementation.
You have to present the result of your work in person at the end of the term. Please bring your own computer and prepare it for a quick demo, including a look at the source code of your implementation.
The presentation takes place in room number 0204 (Blaschek's office, Science Park SP3, 2nd floor) on Tuesday, January 8 and Wednesday, January 9.