Module enrollment systems take data from university staff about what modules students are allowed to take and from students about what modules they wish to take and either enroll the student in the modules if their choices are allowed or don’t if they aren’t, hopefully with some feedback about why they aren’t allowed.
A real such system has to cope with many details which we’ll ignore in this simplified example, like the fact that a university typically has hundreds or thousands of categories of students, depending on entry route, intended degree, year of study, etc. and that each of these groups has different restrictions on the modules they can take. All of that detail is important in a real system but in a hypothetical system intended just to illustrate some basic ideas it would just be a distraction so we’ll assume here that all students have the same set of choices. We’ll also ignore issues of time, such as whether a student may have taken a prerequisite module in a previous year. We’ll also ignore most user interface considerations.