Storing data in multiple rows vs serialized data
2M rows is "medium-sized".  That should not be your concern; databases are designed to handle millions, even billions, of rows.  However you will need to have suitable indexes, and include the optimal PRIMARY KEY.

Think about what "entities" you have -- departments, students, sessions, courses, etc.  Thin think about the "relationships" -- course in department; student in a session of a course; etc.

1:many is handled by an id in one table for JOINing to another table.  many:many is handled by an extra table with two ids in it.  1:1 is (usually) a no-no.

Work through some tutorials on database design.  Be sure to understand JOINs.