Glut and GLX are "things" that allow X windows to interact with OpenGL. You don't need them, per se, but they will make writing code much, much easier. Without them, you'd have to write your own windowing system - something you don't want to do in all but the most extreme cases.
As far as the language goes, I would guess the class will dictate that? I always write my GL apps in C++, but a buddy of mine has pretty good luck with python (I think it's called pyGL)?