// Create a fake dataset of student course requests public Schedule GenerateDataset() { Schedule schedule = new Schedule(semesters, blocks); // Generate courses and add them to the schedule Console.WriteLine("Adding courses"); for (int course_id = 0; course_id < total_courses; course_id++) { Course new_course = new Course(course_id); schedule.AddCourse(ref new_course); } // Generate instructors Console.WriteLine("Adding instructors"); Random generator = new Random(); for (int instructor_id = 0; instructor_id < total_instructors; instructor_id++) { Instructor new_instructor = new Instructor(instructor_id); // Add instructor to the right amount of courses, ensuring 1 per course /* for (int course_num = 0; course_num < courses_per_instructor; course_num++) * { * int offset = (courses_per_instructor * instructor_id) + course_num; * schedule.course_offerings[offset].instructors.Add(new_instructor); * }*/ } // Create student requests Console.WriteLine("Adding student requests"); for (int student_id = 0; student_id < total_students; student_id++) { Student new_student = new Student(student_id); // Add requests for (int request = 0; request < courses_requests_allowed; request++) { int random_course = generator.Next(total_courses); new_student.course_requests.Add(schedule.course_offerings[random_course]); } schedule.students.Add(new_student); } // Return dataset Console.WriteLine("Returning schedule"); return(schedule); }