Object-Oriented Programming or OOP is the concept which you can find almost everywhere today. It is required for understanding of many modern programming languages. As a result, you would find it very often as a required skill when reading job postings.
Being introduced back in 1970s as part of SIMULA language, OOP still remains somewhat of the mystery. Question then raised – why OOP is not taught as a primary discipline for Computer Science program? (wikipedia, in Java, in C, some course papers (1), (2))
Lets look at some of the leading Universities in US for Fall/Spring 2007:
- Princenton Department of CS – Courses– only course COS441 mentions anything about OO languages, and not even OOP
- Harvard University’s School of Engineering and Applied Sciences – Courses – 3 courses have mentioned OO style, paradigm or data model – but it is half-unit courses with many other things covered and we can only guess how deep is the coverage.
- CS Yale University – Courses – I have not found any specific referencing to OO of any sort.
Of course, it is just Spring calendar and it could be covered during Fall already.
Yet, seeing what choices we have right at the moment, it is not very impressive picture. And it only proves that application aspect is usually considered preferable versus theory.
Any modern language today uses OO methodology – Delphi, C#, C++, Java, PHP, etc. So how can we efficiently use language without knowing base info?
I was asked recently, if I can help with some references to good resources explaining OOP. Below you can find first what comes to mind:
- great deal of information is available at wikipedia, and it can be good starting point
- using Delphi for many years, one should know OOP course by Zarco Gajic
- Is OOP bad? Some people think so… I disagree with many “myths” there, but it is fun to read.
I am thinking to collect some more information about the subject, and if you have something to add, please do so – best comments might be incorporated in the post itself.