Links
Course Documents
     Main Page
     Assignments
     Contact Information
     Course Announcement
     Course Participants
     Discussion Forum
     Lecture Material
     Previous Course
     Project
     Questionnaires
     Schedule and Syllabus
     Swiki Basics
Swiki Features:
  View this Page
  Edit this Page
  Printer Friendly View
  Lock this Page
  References to this Page
  Uploads to this Page
  History of this Page
  Top of the Swiki
  Recent Changes
  Search the Swiki
  Help Guide
Related Links:
     Atlas Program
     Center for LifeLong Learning and Design
     Computer Science Department
     Institute of Cognitive Science
     College of Architecture and Planning
     University of Colorado at Boulder

Homework assignment #12

Tomohiro Oda


  1. How many programming languages have you used?


    15 : BASIC, assembly language, C, PASCAL, Miranda, LISP, Smalltalk, SQL, Prolog, Java, LOGO, C#, Modula-3, ML, and Python.


  2. In your experience, what is the most difficult part of learning a new programming language?


    To understand styles of a language; coding style, thinking style, and development style.
    I believe that those styles reflect culture of the language, and represent nature of the language.


  3. Have you ever found that you have accidentally implemented a function that is in the library already?


    Countless times!



    The stupidest re-invention I recently made is that I hacked an E-mail reader called "mew", which is written in emacs lisp and is capable to spell smtp and pop via SSH's port forwarding, to pass additional options to ssh command according to remote user's profile.
    After having written a function of 20 lines, I found that I could embedd the options into a remote host name.
    What a waste!
    One fortunate thing was that I noticed it just before submitting the waste to the developer.




  1. What do you find

    1. interesting about the article


      Many researches have been done focusing on how to locate a reusable component and how to create reusable a component.
      Some of them are on repository management like indexing, some others are on formal specification matching.
      The paper focuses on delivery of reuse information which sounded new to me (besides the author told me his idea 2.5 years ago) and I believe this study has potential power to change the viewpoint of software reuse and is also a good example of how different disciplines (software engineering and cognitive science) can be entwined into a good work.


    2. not interesting about the article


      It might get more interesting if the author described programming styles of the subjects in the experiment, because the main idea of CodeBroker is to sneak into programmer's action space to provide active reflection, where coding style and development style would have certain influence.
      In addition, it would become more easy to understand if a diagram of CodeBroker, such as a collaboration diagram in UML, were given in the paper.



  2. Do you have any ideas how this research could / should be extended based on your own knowledge and experience?


    As described in the previous section, I would be interested in relationship between active information delivery and programming styles.
    For example, some programmers start coding from writing classes, while some others including me first create an example code which expresses what I want to do using this class and then start describing a class.
    What different information can CodeBroker capture from the different styles above?



    Another idea is to search "sibling" components.
    If another program has similar comments, components which the program use could possibly a good choice and the program could be an example coding of "using the component".



View this PageEdit this PagePrinter Friendly ViewLock this PageReferences to this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide