Friday, August 29, 2014

This Year's Design for 'Computers for Arts and Social Science Students'

I've been working on our non-majors computing course for a while now.  Last year was the first time I got to try it with a large group (440 students!), and also the first time I tried using Python.  I have since refined it to the following design.  I will report how it went at the end of the semester, but I have a great set of TAs and am optimistic about using turtle in assignments to make programming a bit less daunting.

 We're not using the robot turtle, but wouldn't it be fun? Image from Wikipedia

This course design lives on my portfolio site, and will be updated there as time goes on.

Introduction

This course is currently undergoing a transformation.  It has traditionally taught basic office software usage in a step-by-step workshop style.  The new version focuses on computational thinking skills by teaching basic programming concepts in Python and then applying them to understanding more advanced functions of the same software previously covered in detail.  Instead of learning a laundry list of programming concepts, however, the concepts are embedded in four relatable general contexts (see topic list below).

A new calendar course name and description, which I developed, is up for approval Fall 2014.

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 down into its constituent parts, then see how to implement if statements and while loops in snippets of Python later on.
  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
  3. Conditionals and Repetition: Helping a Robot Find Its Way
    1. Boolean expressions
    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: Managing a Bookstore More Efficiently
    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

No comments:

Post a Comment

Comments are moderated - please be patient while I approve yours.

Note: Only a member of this blog may post a comment.