Hello Zippy,
Overall I would say that it would be easier to have the entries as separate fields, because then you can promote them in SharePoint columns, and know whether the user entered the data or picked from a list. This would be especially important if the user entered data that was not an exact match to the course/course number. However, it may be good to have a user select from an option button or similar logic whether they would like to pick from the dropdown or create a manual entry.
For your third question, you could use the option selected to hide/show the entry to determine the value of the calculation in your subsequent view. This would be done with rules and logic, so if the selection is "manual" set the calculated field to concat(fieldchoice1, fieldchoice2).
Here is another resource that may be helpful: http://www.infopathdev.com/forums/p/28750/98716.aspx#98716
Thanks!
Bre