Microsoft SQL Server creating an Inline function
Do I need to create a stored procedure first that way the inputs are
  recognized?


You are missing @ symbols at the beginning of each parameter. 

Find out more about writing functions here 

Once you know the basics this article by Jeremiah Peschka explains the benefits of inline functions and much more. Basically if your table valued function is not inline then it will execute once for every row returned by the calling query. This can be very inefficient. An inline table valued function can be referred to as a parameterised view. 

Your function is a scalar function which will always execute once for each row but it could be converted to an inline table valued function with the code below.

CREATE FUNCTION dbo.GPAofStudents 
  (@StudentID int, 
   @ClassStartDateStart date, 
   @ClassStartDateEnd date)

RETURNS TABLE WITH SCHEMABINDING
AS
RETURN
    SELECT  @StudentID AS Student_ID,
            AVG(Class_GPA) AS GPA
    FROM    dbo.Students_Classes 
    WHERE   Student_ID = @StudentID 
            AND Start_Date &gt; @ClassStartDateStart 
            AND Start_Date &lt;= @ClassStartDateEnd 
            AND Class_GPA &gt; 0; 


Using the WITH SCHEMABINDING option will stop anyone from editing the schema used by your function and breaking it.