Learning Map for Object Oriented Technology

Please note: this document was prepared in 1999 for the Lucent Technologies Software Leadership Council Software Excellence Curriculum. Life at Lucent has changed since then and much of the courses and content below may not be offered. Course descriptions are not available since they are inside the Lucent firewall and the URLs are blocked. 

Table of Contents

Preface

The OO Track team started by discussing the current set of courses and then attempted to fill in the gaps. After many fruitless meeting we decided to scrap this line of attack and start from scratch. We started with understanding the nature of curriculum development. We started with Bloom's Taxonmy of Educational Objectives.1

After debating this we held a two-day work shop to plan a curriculum.

We listed the following areas we needed to address:
This detailed skills list was developed by members of the Object Oriented Specialty Track.  The skills  list is intended to be used in evaluating courses as candidates for inclusion in the Object Oriented Specialty Track, a special curriculum under development for Lucent's Learning and Performance Center.

We examined each course and checked off each skill/concept that was covered in the course and in the list. Then we examined what was left of the list and created courses that would cover the the rest of the list.2

Introduction

The Learning Map for Object Oriented Technology reflects the current recommendations by the Object Oriented Specialty Team for the Software Excellence Curriculum sponsored by the Lucent Software Leadership Council. It represents a curriculum in the sense of a University Major. In addition to course work, the student is urged to work in study groups and to read the literature. An education in Object Oriented Technology includes not only classes but also reading and small peer study groups.

1. Vision

The goal of the OO Specialty Track is to develop competence in the Lucent software community in Object Oriented Technology. Competence is defined as the ability to execute the fundamentals of the discipline while being aware of state-of-the-art techniques.

2. Students

Incoming Students for the OO Specialty Track

3. Curriculum, Skills and Competencies

This learning map is designed to satisfy the Skills List for Designers/Developers .
As is true of any list of courses not all students need to take all classes. The actual classes a student needs to take depends upon the role in the development process. Mangers and students who use this map to plan training for a specific project should consult with a Subject Matter Expert (SME) for a list of specific classes.

The curriculum for Object Oriented Technology is organized into five subject matter areas or tracks (humorously known as the five pillars of knowledge -- see The Seven Pillars of Wisdom, by T. E. Lawrence).

Object Oriented Learning Map


Figure 1. Object Oriented Learning Map

In keeping with the Object Oriented theme, this learning map is established as a set of UML models using Rational Rose. The printed output of the model is in Adobe Acrobat (PDF) and PostScript format. PostScript works better for printing. Use a color printer if possible. Here is the model source as a Rose 98i model.

Object Oriented Analysis and Design

Goal and Objective: Teach people how to think about objects. Understand the concepts of the object paradigm including encapsulation, coupling, coherency, inheritance and polymorphism and be able to apply them to real life projects.

Description: This area teaches the core knowledge on Object Oriented technology: Analysis and Design.

Core Courses

These are required. Notes on Related Courses:
For novice software developers: Students who have no OO, C++, or Java background may choose to take course LCO110W - Object Oriented Terminology and Concepts for Beginners via Distance Learning. This course gives a good introduction to the vocabulary of object oriented software development.

For systems engineers: LCO325L - Introduction to Object Oriented Analysis and Design for Systems Engineers is a course that presents an overview of object oriented modeling for non-programmers -- primarily focusing on the modeling notations and processes that can be used by software professionals who are writing requirements.

For software developers who want to learn more: LCO323L - Object Oriented Analysis using CRC Cards is a course that covers one object oriented modeling technique in more depth. Students who do software design would benefit from taking both courses -- they gain a better understanding of the overall object oriented modeling process by learning about object oriented modeling from two different points of view. LCO320L and LCO323L can be taken in either order, but it is best to have a gap of a few months between taking the two courses in order to gain some experience and perspective.

Intermediate Courses

Students should not take these course until they have had some experience in working with Object Oriented concepts and thinking about objects. We recommend at least three months after taking LCO320L.

Special Topics

Advanced Topics

Related Courses

Design Patterns

Goal and Objective:  Understand the concepts of architectural patterns and their application to software. Indoctrinate the student into the patterns community and its culture.

Description: Basic concepts of patterns, mastery of fundamental design patterns and their applications to communication systems.

Core Courses

Intermediate Courses

Distributed Technology

Goal and Objective:  Understand the concepts of software components and how to develop them. Understand the methods of distributing components among several platforms and communicating among them. Learn how to organize objects into components and to compartment objects.

Description:  CORBA, COM, etc. David ... I need words here

Introductory Courses

Core Courses

Applications

Language and technology specific classes for Implementors.

Object Oriented Languages

Goal: The goal of the OO Curriculum is to have each developer competent in a minimum of two Object Oriented languages. Become proficient in the chosen languages: understand the standard features and APIs for the language, style and idioms of the language, and the problem areas and pitfalls. Due to the current development environment training is given in the the following languages Other Object Oriented languages but currently no courses are offered or planned: Description: The Beginners class allows the student to start programming. Students need to take the intermediate and/or advanced courses after some time programming. These classes should start about three to six months after finishing the initial class.

C++

Java

Beginners

Intermediate

Advanced

Management Topics

Object Oriented Concepts for Managers

This could be a re-write of the 2 day course provided by Semaphore in 1996 to the ICore Management Team.

Why Object Oriented Projects Fail

Catchy title. Semaphore has a two day course based on the book by this name. Really project management and OO. How is it different, and what are the pitfalls.

Reading

There are three reading lists and bibliographies.

Study Groups

Study groups are small groups of people that take a topic and discuss it. They may start as Patterns Reading Groups. The group meets regularly and read and discuss a paper. A good plan is to meet at lunch time weekly or bi-weekly. Topics to discuss are typically chapters from a patterns book (or one pattern per meeting) or one of Bob Martin's papers.

See Linda Rising, " Improving Quality and Productivity in Training: A New Model for the High-Tech Learning Environment", Bell Labs Technical Journal , Jan-Mar 1998. (Paper in PDF) Details on how to organize one, what to study and effectiveness.



Footnotes:

1.  Following the 1948 Convention of the American Psychological Association, B S Bloom took a lead in formulating a classification of "the goals of the educational process". Three "domains" of educational activities were identified. The first of these, named the Cognitive Domain, involves knowledge and the development of intellectual attitudes and skills. (The other domains are the Affective Domain and the Psychomotor Domain, and need not concern us here).

Eventually, Bloom and his co-workers established a hierarchy of educational objectives, which is generally referred to as Bloom's Taxonomy, and which attempts to divide cognitive objectives into subdivisions ranging from the simplest behaviour to the most complex.

The following references were used to illuminate our thoughts: 2. The following working topics were used to organize our thoughts: