I am teaching some programming topics to university students (some 300+) including python, sql etc. I would welcome some tips on what's the best way to assess the students and also avoid giving them the chance to copy each other.
So far the major piece of assignment, e.g., in SQL, is to give them a scenario describing an information system, explaining what are users, types of data, relations etc. And they are asked to use sql to implement a database, populate some data, and perform some queries.
The problem with this is that the correct solution is quite standard, so it is often the case that students submit same or very similar solutions. This itself may not be the problem, but combined with the factor that the large majority of the cohort gets very high grades (>70%), I fear that they are copying, but I cannot think of an easy way to find out, or address this.
Does anyone teach similar technical subjects and if so, how would you suggest to fix this?