If you only need the month(not date or year) and the time, then you could use an int for the month, and a Time for the time. You could also use the DateTime instead and just work out a convention that ignores the date and year aspect of the date.
I would recommend nvarchar or varchar for the name. Use nvarchar if you anticipate there ever being a point in the future that you will need to support foreign languages that might contain unicode characters that are not supported by varchar. I would look at the longest name I anticipate needing, double it's length and then round up to the nearest 50. So if "Introduction to Partial Differential Equations" at 48 then I would make it varchar(100).
The purpose of making it so much larger is to allow for future values. If I only made it varchar(48) to accomdate the current largest value, I might later have a coursename that's larger than that, and thus would have to modify the database structure and the applications to accomdate this larger size! By making it varchar(100) we have plenty of room for larger course names that might occur in the future.