What language best prepares a high school student for a STEM undergraduate major? I intend to lead a nephew through the exercises of sequence, selection and iteration via Python.  I also intend to introduce hardware sensors for data collection.  If there is a better choice  (I learned via C++ and embedded op code programming), for a high school student, I would be interested in understanding other options.  I have minimal experience with Python, however, I have had success with barcode readers, databases, string processing using Python.

Which programming language best prepares high school students for a STEM college major and why? Any STEM: not necessarily a CS or even a EE major.

I would like the student to master the fundamentals:


sequence
selection
iteration
utilizing library functions


The student should master these fundamentals so that he / she can search and recognize these concepts in another language (MATLAB, Ada, C, Smalltalk, etc.)   

The choice of language is important in the sense that one must consider the audience and balance the need for simplicity (from the standpoint of 14 year old) and pedagogical quality: as a stepping stone to future  STEM problem solving activities.

Reasons for my initial selection of Python include my observation that MIT is teaching statistics, which assumes fluency in Python.  Other reasons include a large number of Python libraries to support Raspberry Pi sensors and boards.  

If you are an instructor at the university level, please state this in your reply.
There isn't a best language, other than the language that you know well and can use for modeling things. Python is good. And it is reasonably straightforward for a young beginner. 

Don't fall into the trap of thinking that a lot of languages learned superficially is valuable. It isn't and can lead you astray. 

But the things you list aren't enough. The big idea of modern computing languages is "abstraction". Object oriented languages like Python do a pretty good job creating values that have sensible behavior that can be composed into programs. 

In the US, a CS program is more likely to use Java than other languages, though it isn't universal. Another good language is Scheme, but with a C++ background you might have a harder time teaching the essence of it. 

And, don't fall into the trap of teaching Python as if it were C++ with more words. Each language has a mental model that is worth the effort to learn.