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
  • Estimate features of code such as satisfiability and energy consumption
  • 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 week new programming concepts and programming-related issues will be introduced and discussed in the lecture.

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 concepts and programming-related issues.

Assignments

After some lectures/exercises, students will be provided with optional assigments that cover the programming concepts covered in the course. 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
  • Week 07: Dictionaries
  • Week 08: Classes
  • Week 09: Data processing
  • Week 10: Putting it all together
  • Week 11: Case One - Parsing JSON conversations
  • Week 12: Case Two - Timing code
  • Week 13: Recap
  • Week 14: Exam Q&A

Literature

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