Is there a way to input the data of multiple content types all on the same page? I have three content types: student, course, and student_takes_course (student_takes_course have two reference fields that points to the student and course content types).

To input a new student_takes_course record, I would first have to go to the student content type and input a new student record, and then go to the course content type and input a new course record, and only then I can go to the student_takes_course content type and input a new record that have references to the newly inputted student and course records).

But is there a way to input the student and course and student_takes_course records all on the same page?
You can use the module Inline Entity Form as widget for student and course in your student-course content type. 

This widget loads the node form for student and course in student-course content creation form, so you can fill all the data in the same place.