You are here

Introduction to Computational Thinking for Arts and Social Science Students

This page summarizes the course design as of Fall 2014.  You can also see the course designs from 2010 and 2011.

Introduction

I recently lead the transformation of this course from one that focused on using software to a course that teaches modern computational thinking skills.  The new calendar description, which will appear fall 2015, is as follows:

An introduction to computational thinking and its applications to the arts and social sciences. Students will gain computational thinking skills by exploring data representation, basic programming concepts, a selection of algorithms, and advanced usage of software packages for the arts and social sciences.

Learning Objectives

By the end of the course, students will:

  1. Develop an appreciation of computer science.
    1. Understand what computer science is.
    2. See how computer science can help solve problems in arts and social sciences
    3. Learn how computer science can help you by automating boring, repetitive, or error-prone tasks.    
  2. Develop computational thinking skills.
    1. Learn how information is stored on a computer.
    2. Learn basic programming concepts (variables, if statements, loops, and functions) and write simple programs using these concepts.
    3. Learn how to formulate searching and sorting problems in a way a computer can solve them, and understand the efficiency of the solutions.
  3. Develop an advanced understanding of useful software packages by applying computational thinking skills.
    1. Apply an understanding of variables to effective use of word processing software.
    2. Apply an understanding of variables, if statements, and functions to effective use of spreadsheet software.
    3. Apply an understanding of variables and references to database software.

Topics

Many topics have a context in which the concepts are placed.  For example, for conditionals and repetition, we discuss how the logic would look for a robot that can find its own way out of a maze.  We start with just the ideas, such as how to break the right-hand rule for maze-solving down into its constituent parts, then see how to implement if statements and while loops in snippets of Python code later on.

Links in the below topic list are for class slides.  Students also have access to supplemental written materials which I wrote, but cannot post here.

  1. Introduction
    1. Course intro
    2. What is computer science?
    3. What is computational thinking?
  2. Binary Numbers and Data Representation: How Photography Went Digital
    1. Image representation
    2. Binary numbers
    3. Bits and bytes in memory
    4. Using the Python interactive shell and calling functions
  3. Conditionals and Repetition: Helping a Robot Find Its Way
    1. Boolean expressions, and/or/not
    2. If, else, elif
    3. while loops
  4. Data Structures: Making Stories Interactive
    1. Data types and variables
    2. Lists
    3. Dictionaries
    4. References and simple graphs
  5. Searching and Sorting Algorithms: Finding Music Quickly
    1. Searching: linear, binary, hash
    2. Sorting: insertion, selection, quick
  6. Applying Computational Thinking to Word, Excel, and Access
  7. Miscellaneous applications of computational thinking / Python
    1. E.g. PyschoPy, RenPy, etc

Assignment Topics

  1. Computer science, computational thinking, binary numbers
  2. Image and text representation, first Python turtle program
  3. Python turtle programs with if statements, loops, and variables
  4. Searching and sorting (conceptual), Python turtle program with a user-defined function
  5. Word, Excel, Access