Text this: Incorporating of constraint-based reasoning into particle swarm optimization for university timetabling problem