I’m grading for the data structures course this semester. The prof has never taught the course and is reusing assignments from a previous professor’s version of the coursework.
I spent Monday sick and grading. (I did not receive the assignments to grade until after the department grade-by due date and had to rush.)
Grading is a very disheartening. The purpose of the assignment was to demonstrate using a queue. Prof said they could use more advanced data structures. The students did not comprehend they were to still follow the queue requirements (enqueue, dequeue, limited access, etc.).
Out of 70 students only 1 included a queue, reused from recitation. About 20 had included Java’s queue (many of which preceded to use a secondary data structure to do the actual work). The rest used another data structure altogether to reach the same effect: ArrayLists to LinkedLists to HashMaps to trees.
For people that are not familiar with a queue, this is among one of the simplest data structures to implement. It implements a First In, First Out (FIFO) means of accessing data. One can only access the first (or “top”) Object in the queue; all other contents are inaccessible.
… I don’t understand the drive of these students to use more complex data structures (and code design) than is necessary. A queue uses notably less memory and has a faster access time these other data structures.
I read comments that a hash table is more efficient than a queue. Queues have constant time adds (enqueues) and removals (dequeues). A hash table has O(1 + k/n), where k is the number of keys and n is the number of elements; this is between linear and logarithmic time scales (meaning the amount of time to perform an add or removal will increase with an increase in the size of data structure).
This scares me. There will be (if there aren’t already) computer scientists and programmers making inefficient code because they genuinely believe their way is better.
… I talked to the prof in charge (who has been out of town this week) about my issues. My actual boss, the Director of Mentoring and Retention, had spoken to him previously about this. (I was actually third to complain about it to her.) And she was not getting through to him; she was even considering going to the department chair.
After I told the prof what had transpired, the light bulb finally went on for him. Students will not prove they understand concepts unless they are forced to. Getting the right answer is more important than learning, I guess.