survey programming