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.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 .
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).
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.
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:
- Intro to Object Oriented Analysis and Design [one of the two course below]
Prerequisite Course: LCO110W -- Object Oriented Terminology and Concepts for Beginners (or equivalent experience see below).
- LCO320L -- Introduction to Object Oriented Analysis and Design for Software Developers
- LCO325L -- Introduction to Object Oriented Analysis and Design for System Engineers
- LCO323L -- Object Oriented Analysis Using CRC Cards
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.
- LCO326L -- Object Oriented Design Heuristics
- LCOxxxL -- Design Work Shops/Seminars
- LCOxxxL - Bob Martin's Design Principles
2-3 days, needs needs analysis and thinking, review- Other OO design topics
Special Topics
- LCO327L -- Design for Evolution: Leveraging the Legacy
Advanced Topics
- LCO500L -- Using Design Patterns, Frameworks and CORBA to Develop Object Oriented Communications Systems
Related Courses
- Introduction to ObjecTime
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
- LCS211L -- Patterns Writing Workshop
Intermediate Courses
- LCO322L -- Object Oriented Software Patterns for Software Engineers [ also known as the Dalmation design patterns course ]
LCS211L is not a prerequisite for this course.
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
- CORBA Workshop
-- see current offering by the COTS group of STCCore Courses
- LCO328L: Designing Applications using Component Technology -- David Laurence's Course
Applications
Language and technology specific classes for Implementors.
- CORBA
- LCL309H -- Distributed C++ Programming Using CORBA
- LCL303H -- Distributed Java Programming Using CORBA
- LCO500L -- Using Design Patterns, Frameworks and CORBA to Develop Object Oriented Communications Systems
- COM Series of Classes already offered by the NT Curriculum
- LCP104H -- Essential COM for C++ Programmers
- LCP105H -- Advanced Component Object Model (COM)
- Java-based
- LCJ050H -- Swing and JavaBeans
- LCJ051H -- Sockets, RMI and Servlets in Java
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 languagesOther Object Oriented languages but currently no courses are offered or planned:
- C++
- Java
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.
- Smalltalk
- CLOS
C++
Beginners
There are two different course sequences:
- The following is for experienced C programmers
- LCL200H -- Object-Oriented Programming in C++
- The following two class are for Non-C Programmers
- LCL203H -- C++ for Non-C Programmers
- LCL204H -- C++ Programming Workshop
Intermediate
There are three courses already in the catalog that need to be revamped for ANSI C++ and standard components:
- LCL201H -- C++ Reusable Library Components
- LCL205H -- Using I/O Streams with C++ Programs
- LCL202H -- Intermediate C++: Memory Handling, Exceptions, etc.
This is a new course to cover ANSI C++ and standard components:- LCLxxxH -- Templates and the Standard Template Library [ Dan Saks gave this once].
Advanced
- LCLxxxH -- Advanced C++: Styles and Idioms -- Cope's Course/Book
- LCL309H -- Distributed C++ Programming Using CORBA
- LCLxxxH -- Multi-Paradigm Design for C++ -- Cope's Course/Book
- LCLxxxH -- Efficient C++ programming [ Dan Saks has one course, Stan Lipman has another. Cope likes Stan. ]
Java
Beginners
- LCL302H -- Programming in Java [Thinking in Java]
Intermediate
- LCJ050H -- Swing and JavaBeans
Advanced
- LCJ051H -- Sockets, RMI and Servlets in Java
- LCJ052H -- JDBC, JNI and Security in Java
- LCL303H -- Distributed Java Programming Using CORBA
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.
There are three reading lists and bibliographies.
- Bookshelf - this is a list of books recommended by the Subject Matter Experts to buy and keep on your book shelf; The books are grouped by subject and level.
- Object Technology Bibliography - lots of books, annotated and organized. (PDF Version)
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.