Course scheduling is process of placing courses into available time-and-classroom slots. As number of course activities and requirement needed increase, the solution to scheduling problem become more complicated and time consuming. The aim of this research is to improve the previous research on Course Scheduling using Genetic Algorithm, such that number of students in each class complies with the class size. This research also used to measure the performance of Genetic Algorithm. In this research, chromosomes are represented by a matrix of course activities. This matrix consists of all the course activities in one semester. Rows of matrix represent the amount of time-slots in a week course, from Monday to Saturday. Columns of the matrix represent the number of available classrooms. The data used in this research are FMIPA IPB timetable data from Handbook of Undergraduate Program at IPB edition. The processing of this data produced students, lecturers, programs, time-slots, and course activities data. There are two kinds of students data used in this research, that is safe and unsafe data. The first data type ignores classroom and number of students of a class, while the latter does not. The results of this research show that Genetic Algorithm gets the optimal solution with crossover rate 0.7, mutation rate 0.2, number of population 50, maximum generation 500, threshold 0, and stall generation 100. Results reveal that the number of conflicts on unsafe data is more than the safe one. The best schedule ever reached is by allocating of 6 time-slots per day with 6 classrooms with 97.02% effectivities and 93.33% efficiencies - Hermadi, Irman (Jurnal Ilmiah Ilmu Komputer, 2011)