To me, the answer to Should the tblStudentCourseInfo have the dates or the tblCourse? would be that the course dates are an attribute of the courses, so they belong there. The table for student/course info looks like a junction table since many students could take many courses, thus it joins the many to many.
As for #4, the layout suggests a crosstab query since the courses seem to be transposed from rows (in the courses table) to columns in the query result. If that is not the answer, then maybe a Union query. The problem with the Union approach is that the number of columns can only be fixed during design, whereas with the crosstab, you can get a column for every course type. Add more courses = more columns (if the query is designed correctly). If the dashes are to be taken literally, then the query fields have to be calculated; i.e. show "-" where the result is Null.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.