algorithm design experiences