types of computer science students