From what I have seen 95% of CS graduates don't understand how algorithms mesh with hardware. Sorting 20GB of data requires more RAM than they are going to have access to. So if they want to sort things quickly they are going to have to think about how access times alter an algorithms efficiency. So now we have an "easy" problem that exposes students to real world issues. Hand coding for a specific amount of L1 / L2 cache might have some value based on time constraints as is limiting the number of memory allocations by the OS etc.
IMO machine vision or other "hard" problems don't really help students at the introductory level as they use known methods by rote as apposed to rediscovering classic solutions to reasonable problems.
From what I have seen 95% of CS graduates don't understand how algorithms mesh with hardware. Sorting 20GB of data requires more RAM than they are going to have access to. So if they want to sort things quickly they are going to have to think about how access times alter an algorithms efficiency. So now we have an "easy" problem that exposes students to real world issues. Hand coding for a specific amount of L1 / L2 cache might have some value based on time constraints as is limiting the number of memory allocations by the OS etc.
IMO machine vision or other "hard" problems don't really help students at the introductory level as they use known methods by rote as apposed to rediscovering classic solutions to reasonable problems.