The alarming graduation statistics in higher education institutions have resulted in an increased demand on finding ways to improve the learning environment for students to help them graduate in a successful and timely manner. With the rise of data available about past students, machine learning researchers have been able to learn predictive models that solve different problems in the education domain. In this paper, we focus on the problem of course recommendation that aims to recommend to each student a set of courses from which they can register for in their following term, for the ultimate goal of improving the student's GPA and graduation time. We first propose a different definition for the course recommendation problem statement, by focusing on recommending courses on which the students' expected grades will help maintain or improve their GPAs. We then leverage two widely-known representation learning techniques, in order to learn the sequence by which students take courses and create better personalized rankings for students. Our experiments on a large dataset obtained from the University of Minnesota that includes students from 23 different majors show that the methods based on the proposed problem statement can better recommend courses on which the students are expected to perform well and that align with their degree programs. Moreover, the results show that the proposed methods achieve statistically significant results for course recommendation over the current methods.