Özet:
University students need to prepare their course programs at the beginning of each semester. A large number of offered courses is desired by students since it is easier to create a schedule using a great diversity of courses. However, increase in the number of offered courses makes students to be indecisive about selecting courses. Although this problem exists for smaller number of courses, it becomes harder as the number of courses increases. Another problem for students is that they may not be aware of some courses which are good fit for their preference and course program. They can make use of a course recommendation tool which helps them find their prospective courses. Furthermore, students are also interested in making their graduation plan. They might have completed some courses and could be interested in arrangement of remain ing ones into semesters. In order to address these problems, Mecanin, an online platform for Bo˘gazic¸i Uni versity students that provides a course schedule optimizer, a course recommendation tool, and a graduation planner, is developed. In this thesis, integer programming mod els for course program optimization and graduation planning are proposed along with recommendation algorithms to suggest courses to students. Proposed algorithms are tested and compared with three baselines which are random, popular, and popularity based probabilistic recommendation algorithms, and the results are presented.