I'm a software developer working at a college trying to create an in-house solution to the problem of making sure when a student chooses their three courses that they don't clash on the timetable.
The timetable has 6 blocks throughout the week (A to F), a course takes up one block and cannot have another course with it in the same block. Some courses are available in multiple blocks (Maths for example is in B,C & E, Biology in A & D - the most a course is available is in three different blocks) making it easier for a student wishing to choose those courses. But some courses are only in one block (they aren't popular enough for the need of more classes) and as such they cannot be in the same combination as another course that is only available in that same block (Physics and RE are both in block A for example). Below is an example of three courses that don't work because two subjects are only in block F:

If you are asking this is a concrete problem, and haven't simplified it very strongly, then almost certainly the easiest solution is to simply loop over every triple $(a, b, c)$ of blocks, check that $a, b, c$ are all different, and check that the student's first choice is available in block $a$, the student's second choice is available in block $b$, and the third choice available in block $c$. This is a very inefficient solution from a formal computational complexity perspective, but for the kinds of numbers you are likely to be dealing with in a realistic schedule, this will be more than fast enough on any computer.
A trivial speed-up would be to let $a$ run only over the blocks in which the first course selected is available, and similarly for $b, c$ and the other two courses. Then you just have to check that $a, b, c$ are all distinct.
A slightly more advanced approach would use Hall's marriage theorem: if each course has at least one block available, there are no two courses among the three which are only offered in a single block which is the same, and if the three courses together are offered in at least three blocks total, then it is possible to schedule the courses. (Note that the example in your image fails the second condition: there are two courses which are only offered in a single block, and it is the same block for both of them.)