Lecture Notes/Talks .. being updated, revisit!


  Design and Re-engineering
Lectures on Abstractions and Paradigms

  • Types and Values slides
  • Structured Programming slides 
  • Talks on Assertions   1  2  3
  • Lambda Expressions slides
  • Eliminating variables  slides
  • Higher Order functions  slides
  • Closures slides
  • Lazy evaluation  slides
  • Logic Programming  slides
  • Objects and connections slides
  • Polymorphism slides
  • Inheritance, Interfaces, Visibilities slides
  • The game of Tetris   

  Distributed Systems
  • Communicating sequential processes slides
  • Distributed processes slides
  • Self stabilization slides
  • Distributed shared memory slides
  • Commit protocols slides
  • Distributed deadlock detection slides
  • Distributed mutual exclusion slides
  • Logical clocks slides
  • Remote procedure calls slides
  • Distributed file systems slides
  • Interoperability introduction slides
  • Leader election slides

  Software Architecture
  • Monitor Servers vs ordinary servers slides
  • Push/pull Architectures slides
  • Patterns in Software Architecture slides
  • Software Architecture pdf
  • An Introduction to Software Architecture ppt
  • SOA & EDA pdf
  • Process Patterns slides
  • Architecture Extraction from OO Sources pdf
  • Evolution of SOA pdf
  • Mobile Code and Agents pdf
  • Corba: An introduction pdf
  • Introduction to BPMN slides
  • BPMN choreography, conversations, elements slides
  • BPMN Activities and Gateways slides
  • BPMN  event gateways, markers, Events slides
  • Ontologies in Software Architecture slides
  • CCS, and CCS Based Architecture Modeling slides

  Principles of Object Orientation
full course on object oriented systems slides (video recording available with cdeep)
  Programming langugaes


  • Primitive Types, Composite Types  slides
  • More composites, Subtyping and Subsumption slides
  • Function Subtypes, Top and Bottom types, Overloading slides
  • Subtyping in Object Oriented Languages slides
  • Types, Subtypes, Type Constructors, Polymorphism slides
  • Variables and locations slides
  • Untyped Lambda calculus pdf
  • OOP basic principles slides
  • OOPLs: paradigmatic and implementation issues slides
  • OOPL implementation of objects and inheritance slides
  Object Oriented Analysis and Design
  • OO Modeling pdf
  • OOA Processes pdf
  • part-whole structures pdf
  • Design Patterns pdf
  • Dynamic Modeling pdf
  • Which Design is Better? pdf
  • Measuring OOD pdf
  • Thinking about Quality Designs pdf
  • Techniques for Design Improvements pdf
  Programming in Java

  • Program, Data, Control, Interfaces, Classes, Objects  pdf
  • Initializer, Finalizer, Primitive types, Operators, Parameters pdf
  • Problem solving through programming (general) pdf
  • Interfaces, inheritance and polumorphism pdf
  • Working through Inheritance pdf
  • Threads and Synchronization, Wait/Notify pdf
  • Streams pdf
  • Exceptions, Assertions, Contracts pdf 
  • Packages, Jars, Applets, Mouse handling pdf
  • Nested classes, class Object pdf
  • Lots of Programs here
  Operating Systems

 CS101 Programming in C++
  • Background and Introduction slides
  • Basic Elements of a Program slides
  • Variables, Values, Types,  Assignment slides
  • Expressions and Control Flow slides
  • Control Flow: Iteration and Loop Design slides
  • Iteration continued.. Arrays and the For loop slides
  • Arrays and loops slides
  • Functions slides
  • Separate compilation, and a program development technique slides
  • More on Parameters, Arrays as parameters slides
  • Arrays as parameters, Recursion slides
  • Recursion slides
  • Classes slides
  • Modularity abstractions, Libraries Classes for File Handling slides
  • Revisiting values, parameter passing and pointers  slides
  • Typecasting, char pointers, arguments to main, strings slides
  • 2D arrays slides
  • Searching and Sorting slides
  • n-way branching, structures vs. classes, linking slides
  • Random numbers, monte carlo, shell commands slides
  • Operator Overloading slides
  • Reuse through inheritance slides
Filters, aspects, agents
  • On aspect orientation pdf
  • Filter Objects for MICO pdf
  • Message-based models for Evolution pdf
  • Filter Objects: Programming Models and Applications pdf 
  • Implementing Assertions in Distributed Systems pdf
  • Requirements Aspects: Early Aspects in Agent Oriented Modeling pdf
 Misc. Talks/Articles
  • White Box Testing pdf
  • A Talk on Writing pdf
  • Program Development: The Seed Process article
  • Seminars: The Process article