Text this: A review of techniques in automatic programming assessment for practical skill test