How to minimize cheating while running a computer-based quiz? I will be teaching a course that has a significant programming component.
I would like to evaluate students' programming skills
using a computer-based quiz/exam,
because it seems to me that this is a better way
to evaluate students' programming skills than a paper-based quiz/exam,
given that in the real world,
people write code on a computer, not on paper.

Unfortunately, I have never attended a quiz/exam
where programming was done on a computer,
and the computer was connected to the Internet.
(I think I did take a computer-based SAT or GRE exam many years ago,
but I don't think the computer was connected to the Internet.)
I am worried that in a computer-based setting,
students may be tempted to cheat
using e-mail or Internet messaging software.
Is there a reasonable setup that I could use
that allows students to work on the computer,
and submit their work online,
while limiting the ability of the students to use Internet communication?
If you have control over the lab software

Have your IT dept install software that will allow you to monitor the activity on each system. I think the term is Classroom management software. Sit back and watch for suspicious activity. 

Otherwise - adapt

I like the strategies discussed in this question about take-home exams (How to prevent cheating on take-home exams) 

The TL/DR - think about how you might test learning of the material in a situation where students ARE going to collaborate and ARE going to access materials on the subject. 

My two cents on the concept of computer based exams


  it seems to me that this is a better way to evaluate students' programming skills than a paper-based quiz/exam, given that in the real world, people write code on a computer, not on paper.


I don't agree with this statement, because in the real world people also have access to other supports like references and peers while writing code on a computer. 

I don't think writing a coding exam on a computer actually tests knowledge of coding any better than writing code on paper. In fact, in some ways it hampers student performance because they must focus on creating properly formatted, compilable, code instead of getting their knowledge of the concepts on paper.
Pseudo code is faster to write and easier to evaluate.

If you want to test their ability to write executable code, give them assignments.