programming exploration