Prompts for “Object-Oriented Programming”


Due on Wednesday, May 11 by 10pm


Watch the video lecture Object-Oriented Programming from the beginning up to 34:30 by Dan Ingalls.

(The rest of the video is an interview with David Unger, creator of the Self programming language, which had a major influence on the design of Javascript. Feel free to continue watching the interview if you enjoyed the first part. Fun fact: Dave Unger was sitting in the front row of the auditorium when I gave my first conference talk, and he was the first one at the mic for the post-talk Q&A session. Nerve-wracking for sure, not the least of which because Dave has a reputation for asking tough questions! I completely don’t remember what question he asked me, but I do remember his reaction, which was “Oh, that makes sense. Nice work!” I don’t remember the rest of the day either, because immediately after my session, my labmates dragged me off to the conference bar…)


  1. Dan Ingalls says that the complexity of a system increases as the square of the number of components in the system. What does he mean? The two components worth counting in this calculation are functions and data types. In F# terms, you might consider the effect on the implementation effort for functions when a new case is added to an algebraic data type.
  2. What is the “rectangle test”? Why is it an argument in favor of object-oriented program design? Your answer should depend on your answer to the first question.
  3. OOP is now the dominant program design paradigm. There have always been a small cadre of language designers who advocate for a return to functional programming, but few in the software industry take them seriously. It is clear that OOP “won.” Is this outcome a case of “worse is better” or “better is better”? I want your opinion.


Length

Your entire response should be short: at least 200 words and no more than 400 words total.


Submission Instructions

Commit your response to your short responses repository. You must commit both your .tex source file and your generated .pdf. You are required to use LaTeX to typeset your response.

FILE MUST BE NAMED reading10.pdf.

  • CSCI 334: Principles of Programming Languages, Spring 2022

CSCI 334 website repository, Spring 2022

Powered by Bootstrap 4 Github Pages