Computer programming languages evolved with time. Teaching students to program involves building the essential thinking skills; e.g. be able to analyse the problem, to develop the algorithm and to map that algorithm into certain programming constructs in certain order and construction based on the programming language of choice itself. An engineer in the field might welcome the capabilities embedded in certain new languages, such as Python, which includes lots of ready libraries which reliefs him from thinking about the details of many elements in his overall problem. Python to him looks like a turn-key solution. On the other hand, a student in the university, especially in his early stages of learning programming, has not yet developed the associated thinking skills and applying using a bare programming language with no such big libraries, such as C, C++ and Java can be more educational. Additionally, an option can be to teach basic programming using a skimmed Python, but this is in my opinion like teaching some one to drive a car using an autonomous car but asking him no to use the auto parking and auto driving functionalities.
I raise this discussion as there is a tendency here and there to teach Python at early stages to computer science students in the universities in contrast to a few years ago where C/C++ was a focus at early years of study regardless. Do you agree or not?. Are there other options?, What is the current norm in your institution?. Your contributions are welcomed.