You don't want to be grouping by GPA, as this is the alias you've given to the SUM()
Aggregate that you've applied to the set that you have grouped on (Student). Just remove it from the GROUP BY
:
SELECT S.STUDENT_ID, S.STUDENT_LNAME, S.STUDENT_FNAME,
SUM(C.CREDITS*P.POINTS)/SUM(C.CREDITS) AS GPA
FROM GRADE_POINT P, STUDENT S, COURSE C, GRADE G
WHERE S.STUDENT_ID=G.STUDENT_ID
AND C.COURSE_NO=G.COURSE_NO
AND G.GRADE=P.GRADE
GROUP BY S.STUDENT_ID, S.STUDENT_LNAME, S.STUDENT_FNAME;
One other point which might get you marks is to use JOIN
instead of (ab)using the WHERE clause (recent versions of Oracle do support this syntax):
FROM STUDENT S
INNER JOIN GRADE G
ON S.STUDENT_ID=G.STUDENT_ID
...