Homework of Computer Systems: A Programmer's Perspective