How can I balance teaching computer-assisted skills and risks of cheating at exams?
My undergraduate multivariable statistics class was designed like this: there were 5 larger computer labs, where we got to analyse large amounts of data using various computer programmes to try to answer some questions. We found out in advance that there were 15 sets of data, and 5 versions of the questions, so everyone had a different assignment. These labs were used to check our computer skills. 

During the final exam, we were tested on theory: proofs, deriving formulas, explaining which statistical test we would use for some hypothetical situation, and one question on interpreting the output from the statistics programme (MINITAB) that we used the most. This way, we were tested on the computer skills in a setting that was very similar to how we might use them in our working life, and the exam was pure theory: I never even opened my calculator during the final exam. Giving us different data sets, as well as requiring a full lab report analysing the output ensured that we actually understood what was going on with the computer and made it very difficult to cheat.