Advanced Learning Programs

  1. Effective Code Review
  2. This program is designed to dramatically improve effectiveness of Code Reviews. It teaches the participants How to systematically analyze code to find the defects. Participants learn about

    1. Analyzing assumptions and their side effects
    2. Analyzing dependancies
    3. Checking code complexity
    4. Detecting various code smells

    Duration : 3-6 hrs

  3. OO Design Principles
  4. You probably have few developers in your group/company who have almost intuitive understanding of good/bad design. They can 'smell' a good or bad design but they have hard time explaining why a design is Good or Bad.

    This program is focussed on explaining the typical characteristics (or principles) of design, their impact (+ve and -ve), how to use these principles evaluate a design.
    The program covers following principles

    1. Open Closed Principle (OCP)
    2. Liskov Substitution Principle (LSP)
    3. Dependency Inversion Principle (DIP)
    4. Interface Segregation Principle (ISP)
    5. Acyclic Dependency Principle (ADP).

    Each principle will be discussed with examples, how those principles are applied in every aspects of programming like OS, device drivers, COM programming, SOA etc.

    Duration : 3 sessions of 2-3 hrs each

  5. Multiple Facets of Design
  6. Usually Participants know the design methodologies like Procedural, Object Oriented, Functional. However, while architecting a real life project you have to keep many other aspects of design in mind. This program focusses on covering the aspects of design/architecture, which many times are missed during initial design considerations and discussions.

    1. Methodologies
    2. Algorithm design
    3. User Interface Design
    4. Design by Contract
    5. Design for Testability and debuggability
    6. Design for performance
    7. Design for scale

    Duration : 3-4 hrs

  7. Design Patterns
  8. The programs introduces the commonly used design patterns from GoF book. It covers concept of Design Patterns, Types of Patterns (Creational, Behavioural, Structural), Common design patterns from each type with examples and discusssions on pros/cons of each pattern.

    Duration : 4-5 sessions of 2-3 hrs each

  9. Performance Optimization
  10. This program teaches participants principles of achieving an ‘order of magnitude’ improvement in performance ? The program covers topics like

    1. What is 'profiler' ? Why use 'profiler' ? How to interprete profiler output ?
    2. Specific strategies to improve performance
    3. Impact of selection of data structure
    4. Impact of data size (scale)

      Duration : 3 -4 hrs

  11. Design Workshop
  12. 2 day intensive hands-on design workshop

    • Participants have to create design for given problem.
    • Basic Design Principles and multiple facets/aspects of design will be discussed
    • Participants will then present their designs. The designs will be critically reviewed based on princinples discussed.
    • Now Participants have to improve the design based on the review feedback and present it again.