I've run Ubuntu on my laptops for the past couple years with nary a problem for personal use as well as for classes that required Java (shudder), C, C++, ML, Scheme, and x86 assembly.
The only thing is Ubuntu generally doesn't come with any development packages installed - it's targeted more at users after all. If you're programming in C and don't want to ssh or telnet into your local campus to do all your coding, you'll want to install at the very least the following packages:
* libc6-dev
* manpages-dev
* ddd (debugger)
* gcc
* valgrind (are you freeing all your memory?)
* indent (for when you've made a mess of it, run indent -kr -i8 file.c)
Those can be installed either via Synaptic Package Manager (System > Administration > Synaptic Package Manager) or via the command line with apt-get.
Ubuntu ships with at least three very capable editors - vim (Vi IMproved), gedit (GNOME's version of notepad), and nano. I use vim, can tolerate gedit for programming, and abhor nano, but that's a very personal choice.
On the subject of drivers, you probably won't have a problem, but if you have any doubts, boot in LiveCD mode first to make sure the distro you eventually choose can find drivers for everything. Personally, the only thing Ubuntu doesn't really know about is this dadgum fingerprint scanner.
Hope that helps, and if you have any questions, feel free to PM me or reply here.