Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CuisUniversity and DenotativeObjects by Hernan Wilkinson


Published on

CuisUniversity is a customized version of Cuis that we are using to teach Object Oriented at the UBA and UNQ.
We created that distribution to facilitate its installation and use by young students. It comes with Aconcagua, Chalten, Refactoring for Cuis and DenotativeObject.
DenotativeObject is an environment to work with classless objects, a la Self, but using Smalltalk tools as the browser, workspace, inspector and debugger. We will show how the solution we adopted to have classless objects, how we implemented delegation, sharing, cloning and the like, how we customized the tools to work with classless objects and minimize the transition from those tools to the classic Smalltalk tools.

Published in: Technology
  • Login to see the comments

  • Be the first to like this

CuisUniversity and DenotativeObjects by Hernan Wilkinson

  1. 1. CuisUniversity Hernán A. Wilkinson @hernanwilkinson agile software development & services
  2. 2. Teaching OO/Smalltalk Challenges Class or Instance? To subclass or not to subclass Where is the code? How do I share it? “The image crashed!! I lost everything!!” What class should I use? There are so many!
  3. 3. Cuis • Advantages: • Small  Easier to learn • Fast  UI response is immediate • Stable  Very important for non-Smalltalkers! • Simple code sharing  File in/out or packages with Git • Navigation from UI Tools to model (Halos)  Helps inspection and learning • 32/64 bits, Mac/Win/Linux support and RaspberryPi • Appropriable
  4. 4. CuisUniversity ( • Customized Cuis distribution created to teach OO at Universities • Dedicated Web Site • Support in Spanish • Simpler Installation (different files for 32/64 & win/mac/linux) • Pre-installed packages • Aconcagua • Chalten • Refactorings • DenotativeObjects
  5. 5. Aconcagua
  6. 6.
  7. 7. Chalten
  8. 8.
  9. 9. Refactoring (more are coming… Implemented with TDD)
  10. 10. Improved TDD tool support
  11. 11. Recover lost changes
  12. 12. DenotativeObjects • Objectives: • To help learning OO with direct object manipulation • Avoid class-instance differentiation at the beginning • Reinforce representation (modeling) • Reinforce encapsulation and cohesion • Similar tools to facilitate transition (similar browser, inspector, debugger, etc.) • Be able to debug and inspect from the beginning • Denotative: The denotation of a word is its explicit definition as listed in a dictionary • Connotative: Association or set of associations that a word usually brings to mind • Implementation: Use classes as DenotativeObjects © Name & Ideas by Máximo Prieto, Implementation & Ideas by Hernán Wilkinson, Ideas by Juan Vuletich and Sponsored by 10Pines
  13. 13. only objects auto created Direct object reference Embedded workspace Simplified and applied only to denotative objects
  14. 14. Special menus Immediate send, inspect and debug Simple code & object sharing
  15. 15. Object creation Object definition Object using sharing
  16. 16. Delegation to parent (no super  ) Delegation without special keyword… Delegation sending different message
  17. 17. Direct send or execution of test
  18. 18. Assert (implemented using TDD with itself!)
  19. 19. Denotative object contexts only Steps only into denotative objects Behaves as Through
  20. 20. Clones & Replicants
  21. 21. Achievements • Concrete manipulation of Objects • Immediate feedback of computation • Better understanding of Objects • Easy migration from DenotativeObject’s tools to Smalltalk’s tools • Inspection from day one • Debugging from day one • 49 hrs implementation investment!  Cuis showed to be simple & powerful enough
  22. 22. agile software development & services ¡Gracias!