This course teaches basic programming skills to non-programmers and introduces them to the value of those skills. Students will learn about the various capabilities of the R programming language and participate in discussions about the purpose of programming including task automation and interactive web design. Students will be introduced to elementary data types, control flow and functions as well as functional and object oriented programming. Students will practice approaches to problem solving with computer programs and learn debugging strategies. By the end of the course, students are expected to create a program that helps them solve a problem or perform a task (either self-chosen or assigned) in the context of data science.