: 2 to 3 days

Recommended Class Size: 15 to 30 
Core understanding of programming principles

The purpose of this course is to learn to think in objects, to learn how to design flexible, reusable, maintainable object-oriented systems in Java, C#, or Smalltalk. You will acquire skills in developing applications in the one of these languages. These languages are a powerful systems, and it takes time to learn them. One aspect of our teaching method which sets us apart is that we do not believe in short one-week courses. A short course in an object-oriented language only introduces you to it; it cannot make you useful in it. We believe that a good course needs to be at least a couple of weeks long.

Our thorough method culminates with the students using what they have learned on a practical project, with some mentoring. This is what makes the difference in people being productive in the language and those who are merely familiar with it. With that in mind, we offer the class in two increments; a 4-5 day introductory course (which this proposal addresses) and an advanced course (highly recommended).

Course Objectives:

  • Introduction to the basics of objects (polymorphism and inheritance)
  • Know how to Read and write Java, C#/.NET, or Smalltalk
  • Understand the differences between Classes and Objects
  • Understand language specific messages, primitive data types, variables, syntax and control structures
  • Take design requirements and implement them in the given language
  • Understand core components that all developers need to know to be productive.
  • Reducing code dependencies
  • Learn basic debugging techniques – how to be productive programming with objects
  • Work as part of team to produce successful projects effectively

One of the characteristics of our courses is that we teach by doing. We have a series of assignments that prepare students for applying their skills in projects. The benefit of completing projects during the training course is that it proves the student's proficiency. One of the teaching techniques that we use for this course utilizes a principle of eXtreme Programming (XP) which pairs students together; this pairing helps students learn from each other and assists them with their productivity in object-oriented programming in a shorter amount of time.
This introductory course will teach the basics of objects and the language to students as outlined in the benefits section above. Students will have hands on experience working with some sample exercises that will have them reading and writing object-oriented code along with debugging applications.

Ideal Candidates:
This course is recommended for software developers who wish to develop in objects. Attendees of this course should have basic understanding of programming concepts and have some experience writing software in any programming language.

Both introductory and advanced courses are available.