One of the greatest challenges when learning a new subject is having the background knowledge necessary to learn that subject. For example, before learning about data structures one must first know about computer programming. However knowing what knowledge is necessary before learning a new subject is challenging. In this project you will develop a recommendation tool which recommends subjects to study before one begins to study a new subject.