バランスのとれたCSの学生には、4種類のプログラミング言語のそれぞれの言語を教えるべきだと思います。
機能的 -Lisp / Haskell / PostScript。Haskellの経験はあまりありませんが、他のプログラマーがこれについて絶賛しているのを聞いたことがあります。関数型プログラミングの構造と多くの状況でそれらが有用である理由を理解することは、プログラマーが他の言語でアルゴリズムを整理するのにも役立つでしょう。
オブジェクト指向 -選択してください。C#/ Java / Python / Ruby / yadda yadda yadda。このタイプは現代のビジネスが望むものであるという理由だけで教える必要があります。
必須 -C / Fortran / Pascal。これらは最近ではあまり一般的ではありませんが、実用的/歴史的な観点から学ぶ必要があります。彼らが採用している方法は、すべての言語ですべてが命令に要約されるため、依然として実用性があります。また、命令型言語は、リストの作成と指示に従うのが非常に得意です。
論理 -ProLog。これらの言語の実用的な使用例は一度も見つかりませんでしたが、オブジェクト指向言語でメソッドを作成する方法を見つけようとすると、論理言語の背後にある概念がいくつか見つかりました。私は大学時代に論理的な言語に長く集中することはできませんでした。