根据给定的条件和限制，为一组学生分配到不同的课程和时间表。


学生名单：10名学生，每个学生有3个课程的选择，无重复。
可用时间表：周一到周五，上午10点到下午4点，每半小时为一个时间段。
限制条件：
- 一名学生一天只能上2个课程。
- 每个时间段只能有一个学生上课。
应该考虑使用课程调度算法来解决这个问题，从而为学生分配可行的课程和时间表。其中，对于每个学生和每个时间段，都需要考虑它们的可行性和约束条件，以便决定是否可以安排该学生在该时间段上课。另外，需要在每个学生的可选课程中进行选择，以便最大限度地满足每个学生的课程需求。