University of Calgary
mail toRob Kremer

SENG 701.01 Object Theory

Graduate Course

Fall term, 2005


Note:
This course is not a course on object oriented programming or object oriented analysis and design.  It is a course about the design space for object oriented languages and introduces concepts that may be new to even an experienced object oriented programmer.  It is assumed that all students in the course have a reasonably strong background in object oriented programming, analysis, and design.

You may register for this course only with permission from the instructor.  In order to get that permission, you will be given a short (30 minute) test to assess your understanding of object oriented analysis and design, which is a necessary prerequisite if you are to understand the contents of this course.  The test will lay out a scenario for which you must sketch an object oriented model.  Note also that the readings are quite technical and require some mathematical background.


In this course, students are expected to post all work, including assignments, on their web pages where it may be shared for discussion in the spirit of open communication and collaboration.  Please note that this may not be the standard for all courses.

That said, plagiarism of any kind will not tolerated in the course.  "Not understanding how to properly quote" is not an excuse.  On the first instance of plagiarism being discovered, the incident will be immediately reported, without discussion, to the student's department head, the head of the department computer science, and the student's dean, as required by academic policy.  Please insure you read Citations, Quotes, and Other Advice on Written Work and Plagiarism/Cheating/Other Academic Miconduct before doing any of the assignments.

Table of Contents

Details
Instructor:
Dr. Rob Kremer, ICT748, email: kremer@cpsc.ucalgary.ca
Dates:
Sept 13 - Dec 10, 2005
Meeting time:
T/R, 11:00-12:15
Location:
ENF0334
Course type:
Half course

Course Links
Class List:
 
Marks:
 
Glossary:
http://sern.ucalgary.ca/~kremer/courses/cpsc701.01/F2005/index.html

Course Description
This course is a broad introduction to the wide range of possible object-oriented or object-based language designs. In the process, the following topics are covered: 
  • class-based and object-based languages
  • classes and objects
  • subclasses and inheritance
  • subsumption and dynamic dispatch
  • types
  • covariance, contravariance, invariance
  • method specialization
  • "Self" type
  • subtyping vs subclassing
  • type parameterization
  • object protocols (interfaces)
  • prototypes and clones
  • object inheritance
    • delegation
    • embedding
  • getting classes from objects
  • types in object-based languages
  • polymorphism

Grading
25
Major Paper Reviews and Presentations: See "Assigments" section.
35
Research Paper and (possibly) Presentation: See "Assignments" section.
15%
In-Class Exam: 1h.
10
Paper Summaries: Before each paper is presented in class, every student must hand in a 1/2 page summary of the paper presented.
15
Class Participation: Based on participation in class and in the mail list.

Assignments

All written assignments are to be constructed as web documents, which will be linked to these course pages and remain as a perminent record of the couse. Please read the "Advice to students" page for important information about plagiarism, citations, and style.

Major Paper Review and PresentationStudents (either individually or in small groups -- depending on the size of the class) will choose a paper from the reading list to analyse in detail, and 
  1. write up the analysis of the paper as a web document of 6 to 8 pages, 
  2. write up the analysis in point (or diagramic) form appropriate for the presentation, 
  3. present the analysis to the class in a 30 minute presentation, and 
  4. lead the class in a 20 minute discussion about the topic of the paper. 
The analysis should summarize the paper, show your understanding of the paper, place the paper in context to the other papers presented in the class in context to the literature, and describe the paper in terms of its significance and contribution to the literature. 

The web paper (part 1) will be written as a formal paper, as though it were being submitted to a conference or journal.  This means a title, abstract, introduction, background, body, conclusion or discussion, references, correct and complete citations, and numbered and captioned figures.  Research to produce the paper will usually entail digging up information from other sourses.  Since it is a web document, hyperlinks, both intra-document links (for example, between a citation and the relivant reference in the reference section)  and inter-document links (for example, to other documents found on the web) are expected. 

The presentation form (part 2) is not the same as the paper form.  It should be in either point form or diagramiatic form and should be much shorter (in terms of word count) than the prose form.  It need not describe the entire analysis in detail, because you will be there to present the material and answer any questions.  Since presentations will generally be made using a LCD projector, either a web browser or MS Power Point should be used (preference is for using web browsers because it is easier to publish and allows for flexible hyperlinking).  Note: for web browser presentations, it is especially important not to use font size specifications (e.g. <font size="6">), since it will not allow you to adjust your presentation for LCD resolution, projection size, room size, etc. (relative font sizes, e.g. <font size="+1"> is OK). 


Research Paper
and Presentation
The paper will be on a topic of your choice related to object theory.  You may choose to build your topic around some aspect of the paper you presented in class, relate some course topic to your thesis topic, or examine some specific language in relation to the concepts in the course.  You should get your topic approved by the instructor as soon as possible. 

The paper will be a web document and will be written as a formal paper, as though it were being submitted to a conference or journal.  This means a title, abstract, introduction, background, body, conclusion or discussion, references, correct and complete citations, and numbered and captioned figures.  Research to produce the paper will entail digging up information from other sourses.  Since it is a web document, hyperlinks, both intra-document links (for example, between a citation and the relivant reference in the reference section)  and inter-document links (for example, to other documents found on the web) are expected.  Length is will be between 10-20 pages. 

Class presentations on this paper may or may not be required, depending on class size.


Reading List
(suggested text) forward to next page
Abadi, M. & Cardelli, L. (1996). A Theory of Objects. New York, Springer. (chapters 1-4) 

Cook, W. R., Hill, W. L. & Canning, P. S. (1994). Inheritance Is Not Subtyping. Theoretical Aspects of Object Oriented Programming: Types, Semantics, and Language Design. C. A. Gunter & J. C. Mitchel. Cambridge, Mass, The MIT Press: 497-517. 

Danforth, S. & Tomlinson, C. (1988). Type Theories and Object-Oriented Programming. ACM Computing Surveys 10(1): 29-72. 

Hailpern, B. & Nguyen, V. (1987). A Model for Object-Based Inheritance. Research Directions in Object-Oriented Programming. B. Shriver & P. Wegner. Cambridge, Massachusetts, MIT Press: 147-164. 

Kristensen, B. B., Madsen, O. L., Moller-Pedersen, B. & Nygaard, K. (1988). The BETA Programming Language. Research Directions in Object-Oriented Programming. B. Shriver & P. Wegner. Cambridge, Massachusetts, MIT Press: 7-48. 

Laufer, K. (1995). A Framework for Higher-Order Functions in C++. UNEXIX Conference on Object-Oriented Technologies (COOTS). Monteray, CA.: 103-116. 

Madsen, O. (1988). Block-Structure and Object-Oriented Languages. Research Directions in Object-Oriented Programming. B. Shriver & P. Wegner. Cambridge, Massachusetts, The MIT Press. 

Mitchell, J. C. (1994). Toward a Typed Foundation for Method Specialization and Inheritance. Theoretical Aspects of Object Oriented Programming: Types, Semantics, and Language Design. C. A. Gunter & J. C. Mitchel. Cambridge, Mass, The MIT Press: 519-546. 

Wegner, P. (1988). The Object-Oriented Classification Paradigm. Research Directions in Object-Oriented Programming. B. Shriver & P. Wegner. Cambridge, Massachusetts, MIT Press: 479-560. 

Zalta, E. (1983). Abstract Objects: An Introduction to Axiomatic Metaphysics. Dordrecht, D. Reidel.


Tentative Class Schedule
DateTopicsPresenter
Tues, Sep13

Organization, introduction 
Abadi, M. & Cardelli, L. (1996). A Theory of Objects. Chapter 1: "Object Orientation."

Rob
Thurs, Sep15Abadi, M. & Cardelli, L. (1996). A Theory of Objects. Chapter 2: "Class-Based Languages."
Abadi, M. & Cardelli, L. (1996). A Theory of Objects. Chapter 3: "Advanced Class-Based Features."
Abadi, M. & Cardelli, L. (1996). A Theory of Objects. Chapter 4: "Object-Based Languages."
Rob
Tues, Sep20
Thurs, Sep22
Tues, Sep27
Thurs, Sep29
Tues, Oct4--presentation prep-- 
Thurs, Oct6Wegner, P. (1988). "The Object-Oriented Classification Paradigm."  Part 1: Classification 
Tues, Oct11Wegner, P. (1988). "The Object-Oriented Classification Paradigm."  Part 2: Inheritance 
Thurs, Oct13Wegner, P. (1988). "The Object-Oriented Classification Paradigm."  Part 3: Mathimatical  
Tues, Oct18Wegner, P. (1988). "The Object-Oriented Classification Paradigm."  Part 4: Philosophical 
Thurs, Oct20Hailpern, B. & Nguyen, V. (1987). A Model for Object-Based Inheritance. 
Tues, Oct25Madsen, O. (1988). Block-Structure and Object-Oriented Languages.  
Thurs, Oct27Danforth, S. & Tomlinson, C. (1988). Type Theories and Object-Oriented Programming. 
Tues, Nov1 Cook, W. R., Hill, W. L. & Canning, P. S. (1994). "Inheritance Is Not Subtyping." 
Thurs, Nov3Mitchell, J. C. (1994). "Toward a Typed Foundation for Method Specialization and Inheritance." 
Tues, Nov8Kristensen, B. B., Madsen, O. L., Moller-Pedersen, B. & Nygaard, K. (1988). The BETA Programming Language.  Part 1. 
Thurs, Nov10

--READING DAYS--

 
Tues, Nov15Kristensen, B. B., Madsen, O. L., Moller-Pedersen, B. & Nygaard, K. (1988). The BETA Programming Language.  Part 2. 
Thurs, Nov17Zalta, E. (1983). Abstract Objects: An Introduction to Axiomatic Metaphysics. 
Tues, Nov22Laufer, K. (1995). A Framework for Higher-Order Functions in C++. 
Thurs, Nov24in-class exam 
Tues, Nov29Selected chapter in Abadi & Carlelli 
Thurs, Dec1 
Tues, Dec6 
Thurs, Dec8 


 
Assignments
StudentTopic

 





The University of Calgary
back to previous page
back
Up to page above
up
forward to next page
forward

mail toRob Kremer
Last Modified2005-09-12 23:09
SENG 701.01 Object Theory
 Graduate Course