Why did students fail in their programming assignments?