First-Order Methods