How much data is sufficient to learn high-performing algorithms? generalization guarantees for data-driven algorithm design (Proceedings of the 53rd Annual ACM SIGACT Symposium on Theory of Computing)