Abstract

This course is designed to give students a basic introduction to programming and data processing. Students will get a hands-on introduction to the Python programming language and how to work with tabular data. This will enable them to solve simple programmatic tasks as well as to get an idea of what the role of the programmer entails. After the course student will be able to discuss and reflect on challenges and opportunities derived from approaching the world through algorithms.

Description

The purpose of this course is to teach Python to students with no previous programming knowledge and with diverse academic backgrounds. It takes a slightly different approach than what is usually done within Computer Science or other technology-oriented programs.

This means that instead of putting focus on the fastest, most efficient or elegant forms of code, students will be instructed to prioritise transparency and readability. Creative ways of approaching code will be explored. Much emphasis will also be put on “critical” aspects of programming related to perspectives prevalent within the humanities and social sciences. The purpose of this is to give students tools to articulate and reflect on the challenges and opportunities which emerge out of attempting to solve real-world problems with algorithms, something which is in great demand by future employers.

Intended learning outcomes

After the course, the student should be able to:

  • Identify basic elements in a piece of code
  • Use text-based tools for program development
  • Analyse computational tasks through pseudo code
  • Construct and manipulate tabular data in text format
  • Solve programmatic problems by modifying existing code
  • Develop simple programmatic solutions implemented in code

Learning activities

Lectures

Each Monday new programming elements and programming-related issues will be introduced and discussed in the lecture. Students are expected to come to lecture prepared with reflections on the assigned readings.

Exercises

This course has a high level of engagement through hands-on exercises for learning how to program. Exercises will provide a foundation of skills for completing the assignments outside of class.

Readings

Before each lecture, students will be assigned readings that will introduce them to new programming elements and programming-related issues.

Assignments

During the lectures and exercise sessions the students will be provided with assigments that focus on the topics covered that week. These will not be assessed or graded, but the answers will be provided and discussed in class during the following week.

Overview

  • Week 01: Introduction, flowcharts, variables
  • Week 02: Input, operations, output
  • Week 03: Types, flow control
  • Week 04: Loops
  • Week 05: Functions
  • Week 06: Lists and Dictionaries
  • Week 07: Classes
  • Week 08: Data Processing
  • Week 09: Putting it all together
  • Week 10: Recap
  • Week 11: Case One - Your First Dice Game
  • Week 12: Case Two - Parsing Facebook Messages
  • Week 13: Case Three - Data Visualisation
  • Week 14: Exam Q&A

Literature

Programming with Python for Social Scientists by Phillip D. Brooker, 2019.