Home

Course Contents

Grading Policy

Resources

Projects

Assignments

TA Page

Assignment Upload Page

Project Upload Page

Marks

Student List

CS 698 Y/Z: Topics in Object Oriented Language Implementation



The course is designed primarily to bring synergy and interplay among the following core components of the Computer Science Curriculum::

 Course Contents:

  1. Introduction & Course Overview
    • Contemporary & Emerging Computing Environments
    • Trusted Computing
    • Software Reuse

      Phase I: Object Oriented Computing : Understanding and Concepts

  2. Evolution of Programming System Techniques
    • Programming Language Paradigms
    • From Procedural to OOP
    • Synergy between PLDI and Software Engineering Emergence of VEE
    • Evolution of OOP

  3. Review : Compiler Writing I
    • Preprocessor, Translator & Compiler

  4. Data Abstraction Computing Paradigm
    • Towards better programming practices
    • ADT - Types, Interfaces & Implementation
    • Abstraction and Encapsulation
    • Software Reuse through Generic-ity: Generic Programming and Generic Algorithms

  5. Object Oriented Computing
    • Need for OOC for software Reuse
    • Type and sub-types,
    • Inheritance and Polymorphism,
    • Pillers of OOC: Message Dispatch, Dynamic Type, and Late Binding
    • Commonality of Abstraction / Interfaces
    • OO System Design & Implementation,
    • Type substitutiion and dynamic cast.

      Phase II: Object Oriented Language & Implementation (OOLI)

  6. Core Java
    • Java Preliminaries,
    • Java for computing with built-in data types
    • Java with objects as ADTs
    • Java with objects for OOC
    • Java Exception Handling and Assertions

  7. Inheritance
    • Forms of Inheritance
    • Type Substitution, Subtypes and Subclasses

  8. Runtime Type Identification & Introspection
    • Runtime Type Identifiers (RTTIs)
    • 'Class' and 'Object' Classes

  9. Review : Compiler Writing II
    • Bootstrapping & Retargeting
    • Compiler Writing Tools and Generators
  10. Object Oriented Prog. Language Implementation
    • Data Structures for facilitating OOC
    • Class and Methods: Static & Non-Static
    • Constructors and Method Overloading
    • Message Dispatch and RTTIs
    • Generics and parameterized polymorphism

      Phase III: Object Oriented Analysis & Design (OOAD)

  11. Object Oriented Modelling
    • Object Model: Structure & Behavior
    • Class, Object and Relations
    • Classes, Responsibilities and Collaboration (CRC)

  12. OO Analysis and Design with UML (if time permits)
    • UML Notations
    • UML Structure and Behaviour Diagrams

  13. Design Patterns & Implementation (if time permits)
  14.   Phase IV: Runtime System : Virtual Execution Environment

  15. Virtual Execution Environment
    • Virtualization
    • CISC & RISC ISA vs. P-Code (Bytecode/MSIL)
    • Stack-based code execution and property verification
    • VEE Architecture
    • Memory Management and Garbage Collection
    • Class Loader and Initiliazer
    • Linker and Verifier
    • Code Interpretation and JIT
    • Runtime Security
    • Reflection: Structural and Computational
    • Case studies from JVM (or Microsoft/CLR)