Many To Many Relationships
Generally a many-to-many relationship is done with a junction table, like so:

Student (id, name, date of birth, department) 

Course (id, name)

Student_Course (student_id, course_id)


You can either create an artificial key on the Student_Course table or create a primary key or unique index with both fields.  student_id is a foreign key to student.id and course_id is a foreign key to course.id.

Note that the junction table need not be exactly two fields.  You can include fields such as date_added or date_dropped so you could see when students have added and dropped courses.