This is really easy to do.
Add a data connection to the SharePoint list called Courses. Show the values for name and date in two dropdowns. Second dropdown is filtered on first..
Add a rule to the second dropdown that queries a data connection to get the Attendee Names based on the first two values.
If you add the SharePoint list IDs to your data connection, you can populate the forms with this and use it to query Attendee Names based on course.
To autonumber rows in a form is pretty simple - just use the count() xpath function when a row gets added or, if you need a unique identifier you could look at a plugin like qRules that comes with a rule for automatically generating ids.
To add 3 empty rows automatically, go to Tools->Default Values and add them there.
This stuff is what InfoPath is really good at.