Is C++ going to be used widely by companies in the United States for non embedded programming projects for many more years or decades to come?
Will Java or some other language (which other language?) will replace C++ as programming language of first preference in the near future (how soon or after how many years later)?
In other words, will there be high paying C++ programming jobs (other than embedded programming) in the USA, for many more years to come?
Are there Engineering Bachelor's & Master's degree level C++ courses such as (data structures, algorithm analysis using C++, software engineering using C++ etc) being offered at most of the American universities? If yes how many more years such courses will be offered?
In other words, will there be huge number of jobs for years to come in the USA, that use C++17 and C++ 20 features for science, engineering and technology software programming projects?
Well, you're asking us to predict the future. The likelihood is that C++, Java, and other languages will be important in businesses for years to come. Languages don't really replace each other the way you seem to think since many are used for different uses.
And yes, those courses are offered at many universities and probably always will be.
C was purposely built to write UNIX. It was created to be a CPU independent assembler, and many referred to it as such through the 70's and 80's. C++ was designed to absorb C, but add leverage to provide high level of expression, addressing application targets better than C does.
Java was a response to a particular issue in corporate or casual development. Languages like C and Pascal required high levels of skill. Java allowed the development of applications that didn't crash as often, from the hands of lower skilled programmers. As a result corporate interests were served because they could pay less for those programmers.
C# was developed to kill Java. This is an oversimplification, based partly on rumor and public statements by Bill Gates (also aimed at Netscape), but basically C# is Microsoft's response to Java answering the corporate call for easier development of GUI applications. At first, C# wasn't portable. It is now, and Java always was.
Every major software package I know, with one minor exception, is written in C++, except some IDE's. Visual Studio (since perhaps 2010) is written in a mix of C++ and C#. Eclipse is written in Java. The entire lines of Adobe and AutoDESK are C++ (some few were once in C). Only ArchiCAD was written in Java, and frankly it shows.
Today, Linux is written in C. As is Windows. MAC (OS X and iOS) is built on top of FreeBSD (UNIX), from C source. Android is based on Linux. As long as there are operating systems, there will be C.
As long as there is C, there will be C++.
Did Java kill C++? If that were going to happen, it would have happened already.
I can't say I know exactly what you mean by the phrase "science, engineering and technology". I can say that all engineering packages I know of heavily rely upon C++. Engineers themselves, however (depending on the industry) either know nothing about programming, or picked it up as a side skill, often preferring languages like Python, Java, C#, Rust, Ruby, etc. Similarly, scientists may view programming simply as a means of pushing math into a machine.
Technology will always rely heavily on C++ and C, but depending on what you really mean, there may be mixtures of other languages involved.
Android's GUI is based on Java. I regard that as an error, but it has stuck.
If you're trying to make a choice, you have only one option. Learn all 3.
After having done this myself since the late 70's, I can tell you this...you will always be studying new languages. Today's C++17 and the forthcoming C++20 hardly resemble the C++ I knew when templates were first released.
Students who first learn Java or C# are at a disadvantage in my view. In decades of observation, all the people I've known who learned those first find C++ a shock. They reject it as too complex. It is to their loss, and they'll never really understand that.
All C++ programmers I've known picked up C# and Java as a trivial experience. Most don't actually prefer it. I personally feel like my office has been stuffed in a 60's style phone booth when I work in C# or Java.
I come from a time before C++ existed, and I find great benefit in having had only those options of C, assembler, BASIC (which I've happily forgotten) or Pascal. The COBOL programmers I knew in the 80's were already retiring, and few came to replace them.
Javascript is unavoidable in some situations, but I loathe the requirement. When it was relegated to flyover buttons and a few effects it was sufficient, but what's been done with it in recent years is like turbo charging a lawn mower to make a race car.
There are certain American universities with the best programs for computer science and study. The classics are history, like Berkeley, where UNIX became the first open source operating system (before the phrase was invented). It is also the source of a great deal of the classic computer science, like the Bresenham line and ellipse algorithms. Texas A&M is noteworthy (Stroustrup, the inventor of C++, once taught there). I can't list more from memory, but be aware that much of what one learns anywhere is also learned during a career after the degree. We are perpetual students in this field, which is to say not only will that never stop, you may as well start now, before you even attend.
You didn't ask about AI. I will only offer this: Modern AI applications are pushed into the GPU for speed. The GPU is not programmed in C# or Java. It is programmed in C or C++.
yes, c++ will be used. It is used where performance is critical and portability is not -- some types of games, scientific calculations, back-ends, servers, drivers, etc.
java is for portable programs, but it has dozens of artificial limitations that prevent using it for many tasks. It has no unsigned type, so you can't even do an ascii bucket sort / lookup table type algorithm without jumping though hoops, and you can't overload operators, so you can't write math code that is readable ( a =c.multiply( y.add(b)) vs a = c*(y+b) … which one is readable when you have pages of it?). You can't just have a stand alone function either. Its annoying; even when you can bypass these issues (some yes, some no) its clunky and has extra code that you shouldn't need to do it.
After the first year of college, the language is not important; the coursework is more about technique and general skills that work on all languages. You have to be able to use the language the course is offered in.
That said most programming jobs are going to be for web/networked/database/ "so called IT" computing, and c++ is edged out there. Games, science, R&D, driver development, backends, servers, applications software (eg word/excel/etc) and such that use c++ are a smaller % of all possible jobs. But the "IT" jobs are also often cut and farmed out to 3rd world countries for $1 an hour, they pay less, they are moving to cloud as well where the bulk of the work is just stringing together existing tools, a job for junior programmers. There are a lot of questions to answer to think about your job / career path... where you live (the high paying cutting edge stuff is also in a high cost of living area that eats all your salary, some of those places have gigantic tax rates, million bucks for a tiny home, etc), what you enjoy doing, whether you want to keep coding or work into design or management or whatever roles, and more. Keep your nose clean -- a lot of the really high paying jobs are tied to a security clearance, and if you can't qualify due to how you live... Anyway, there is only so much one can say here.
If you're going to become a programmer then the language won't matter. If the job is in C++ then you'll learn C++. If it's Java then you'll have to learn java. It's it python or perl then learn python or perl. The point is that the language itself is a small part of what you need to know to become a good programmer.
For a job it is actually good to know more than one language. Knowing C++ is certainly a plus in your application no matter whether your final language is java, c#, or even php.
And yes, c++ will certainly be around the next decades.