I'll try to provide some useful advice. I have been teaching 3D graphics and game development for 12 years, and most of the major game studios (including EA, Ubisoft, Blizzard, and more) now employ at least one of my students.
Students of mine have had great success using UDK. I highly recommend it. There are plenty of tutorials on the main site student can watch to quickly learn how to use it. The learning curve is quite easy. Students of mine have been able to create nice looking content on the same day they were introduced to the software.
In particular, what's great about UDK is that it allows non programmers to create Gameplay logic, because of its visual scripting system. Many of my more artistically minded students now use UDK to create their demo reels since UDK is capable of such high visual quality.
Unity3D is also a viable choice, however, it is much more work to get a high-end game up and running because most of the gameplay programming has to be written from scratch. At the moment it is also lagging very far behind UDK's visual ability. Unity has nothing that comes close to the "lightmass" global illumination system in UDK, which can be used to create fantastic looking levels.
UDK's weakness is that for gameplay development, it is quite hard to make a game totally different from the sample game it ships with. ("UdkGame") Programming for UDK is much more difficult and programming for Unity or most other systems. This is mostly because the UDK API is poorly documented by comparison, and UDK isn't supported in the same way as the full Unreal Engine.
If you are looking for an open source or linux based program, Blender can be used. The newest beta version is actually quite powerful. Blender has a game engine built in and it allows students to create visual "logic bricks" but also to program their game using python. (Of all the languages I have taught, students new to programming consistently pick up Python the fastest.) The Blender game engine Python API is well documented and easy to work with in my experience, though it does have some limitations, such as not being able to create new logic bricks on the fly, or being able to get a reference to a logic brick that is not "connected" to the currently running script. Fortunately, Blender is open source, so you could fix these issues yourself if you needed to.
Also, as another pieces of advice, you should decide on whether you want your students to focus on gameplay or graphics (or if you want to be able to give them the choice). Either one is a valid choice, but tudents tend to specialize in one or the other, and most students don't have enough time to get really both at both.
If you would like to discuss anything further, please contact me, I'll do my best to help.
You can read more about my teaching at: http://www.teaching3d.com/wp/?page_id=210