Hello! What I do personally is two different CSV's. One for classroom creation/teachers and one for students.
Classroom Creation/Staff - CSV Headers I use are alias, classname, section, classtitle, room, teacheremail. Then use the following GAM Command...
gam csv CSVNAME.csv gam create course alias ~alias name ~classname section ~section heading ~classtitle room ~room teacher ~teacheremail status PROVISIONED
I start with provisioned so it's not activated but the primary teacher and domain admins can still access it and can change it to active when ready.
GAM Mass Adding Students - CSV Headers I use are email, Firstname, Lastname, Org, Course. I then use the following GAM Command.
gam csv CSVNAME.csv gam course ~Course add student ~email
You can add additional teachers to the courses as well by using the same command except switch 'add student' to 'add teacher'