If programming is not their profession, it may be C #. If you have ever professional program is necessary and C + + and Java.
I prefer to start teaching OOP with UML language and let a code generator to create the designed programs. When you start with some programming language, students concentrate on the syntax and language specialties and they perceive the taught OOP principles as a not so important background. They then mix programming with coding. We do not teach a programming language until we reach the limits of the code generator in use and we need to teach, how to solve programs, which requirements are behind these limits. However in this time students yet digested most important architectonic OO principles and they are able to design the complex programs much better.
National Institute of Science & Technology
Armand Gutiérrez Arumí
University Pompeu Fabra
Air University of Islamabad
Mississippi State University
Eugène C. Ezin
Institute of Mathematics and Physics
Christopher W. Johnson
Australian National University
Harshadkumar B Prajapati
Dharmsinh Desai University
COMSATS Institute of Information Technology