Jak tady psal už člověk předemnou: Pokud se později mají vaši studenti setkat např. s mikrokontroléry (SŠ se zaměřením elektro), tak rozhodně C/C++.
Pokud se jedná o školu IT zaměření, tak se dá o Javě uvažovat, ale i potom by měli vědet co se na těch nižších úrovní děje a na VŠ se s Cčkem taky potkají, takže nevím, zda-li bych i s nima neprolít nějákej ten nízkoúrovňový jazyk.
Pokud by se jednalo o školu nějákého jiného (ne IT/elektro), tak bych se přikláněl taky k pythonu. Javu bych je neučil, stejně jako OOP všeobecně. Můj názor je, že se OOP na SŠ nemají šanci naučit tak kvalitně, aby si nevytvořili nějáké zlozvyky, které by jim pak akorát přidělávali práci na VŠ.
Nás kdysi na SŠ učili nejdřív pascal, pak C++ a potom C pro 8051. Rozhodně myslím, že měli rovnou začít C++kem, případně Cčkem a ušetřil bych si dost starostí.
Na VŠ jsme se pak učili nejdřív JSA pro 8051 (assembler), pak C a pak C# (kdo chtěl mohl dělat v C++).
Takže osobně, pokud mají vaši studenti pokračovat v programování dál, tak bych volil C++ nebo samotný C. Nemá smysl zabíhat moc do OOP, hlavně ať vědí co je to pointer a jak se používá. Ze zkušenosti vím, že potom na VŠ není na čem stavět a nebo ty jejich programy nemají žádnou kultůru.
Možná bych jim ještě ukázal jak udělat nějáký to jednoduchý GUI (ke konci studia) a k tomu může v C++ stačit třeba Qt Creator. Ale hlavní je ať uměj dobře procedurální přístup, to potom nebudou mít až takový problém na VŠ.
Pokud ale jde jen o to aby uměli jen něco jednoduchýho naprogramovat, s tím, že se s tím už nesetkaji, tak nemá smysl je mordovat s OOP, takže buď ten python anebo pokud se ho učit nechcete, tak nějáký základ C. Java pro ně bude zbytečně matoucí.