Before we get to checkboxes, it seems like you need another table to link Contacts (students) to the courses that they will take or possibly to the modules that make up those courses:
Contacts----<Enrollment>----Modules>-----Courses (---< means "one to many" )
Enrollment is a "join table" that would record each module that you assign to a given student in contacts.
Rather than check boxes, I'd place a portal to enrollment on the contacts layout and use it to list each module assigned to that student. The enrollment records can also record any data on whether the student successfully completes the module.
Once you have that basic structure working, there are several options that can be used so that you can select a Course for a student and all the relevant modules can be added in one step to the enrollment table and properly linked to the current contact record.