My thought process:
block all ports other than port 80 - not effective, see tools like google chat
block port 80 + internal dns a records to make sure chat/email sites like gmail, hotmail, yahoo mail don't get resolved - still not foolproof, and a chat client that operates on LAN could get around it (engineering students are clever after all), alternately phones can sit in your pocket and be tethered and no one would know you're not on their firewalled connection.
use school-provided laptops? - too expensive How about make a program that the students are required to install to take the exam, and the program screenschots at random times what they are doing and uploads it to a LAN address so you can just see what they're doing? Maybe even get a programming class to write the apps and analysis software as one of their own final projects. - is definitely an invasion of privacy though (if students currently taking an exam can claim to have such a thing)
Or just make the exams so friggin hard that if they have to google every little thing, they won't get a good grade because they won't finish it. Ask for things like to sketch flowcharts that will not translate over text or chat in a meaningful way. (and if 20 students all submit exactly the same flowchart due to an email ring, it'd be easy to spot for the grader)