POL42340 Programming for Soc Scientists

Academic Year 2023/2024

This module provides an introduction to computer programming using the object-oriented language Python. Python is the 3rd most popular programming language at the moment, the most popular among data scientists, and is generally known as an excellent language to learn programming. A basic grounding in programming will allow you to automate mundane and repetitive tasks related to text and files, large data sets, web scraping, or develop complex simulations, all applications that are typical for a social scientist.

In this module, the main application will be a social simulation, which will be developed in teams. While all students will learn the basic programming skills, different students will be assigned different aspects of the overall program, while sharing their experience with the rest of the class. This will allow us to cover a wide range of aspects of the system (file manipulation, user interface, simulation model, visualisation of results, etc.), while keeping the overall effort manageable.

Lectures will be provided through video and seminar meetings will be used for practice with Python and related development and collaboration tools, as well as brainstorm and feedback sessions on the overall project, the development of the social simulation.

The target audience of this module is students who have no or very limited prior experience with Python programming or computer programming in general.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

- Good grasp of key concepts in object-oriented programming
- Foundational level knowledge of the Python programming language
- Solid experience in team-based development
- Basic experience with collaborative programming tools
- Basic understanding of agile development approaches
- Basic understanding of developing social simulations
- Understanding of the relevance of computer programming in the social sciences

Indicative Module Content:

- Working with IDEs and code repository management systems (git)
- Variables, functions, control statements
- Lists and other data structures
- Object-oriented software design
- String and file manipulation
- Debugging, logging, exception handling
- Working with APIs
- Basic introduction to social science simulations
- Basic visualisations of data

Student Effort Hours: 
Student Effort Type Hours
Autonomous Student Learning


Seminar (or Webinar)


Computer Aided Lab




Approaches to Teaching and Learning:
The main course material will be provided in a blended format, using video lectures, face-to-face group discussion, and reflection by students. Evaluation of this material will take place through a number of short quizzes.

Due to COVID-19, in Autumn 2020 the group sessions will be through an online platform as well.

The main participation will consist of a large development project throughout the module in large groups, which will be structured and managed throughout the module under supervision of the module coordinator. Evaluation of this material will take place through reflective essays and an assessment of the level of participation. 
Requirements, Exclusions and Recommendations

Not applicable to this module.

Module Requisites and Incompatibles
Not applicable to this module.
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade In Module Component Repeat Offered
Assignment: Class diagram Week 7 n/a Graded No


Lab Report: Report on programming project Week 12 n/a Graded No


Multiple Choice Questionnaire (Short): Short MCQ on Python programming 1 Week 4 n/a Alternative linear conversion grade scale 40% No


Multiple Choice Questionnaire (Short): Short MCQ on Python programming 2 Week 7 n/a Alternative linear conversion grade scale 40% No


Multiple Choice Questionnaire (Short): Short MCQ on Python programming 3 Week 12 n/a Alternative linear conversion grade scale 40% No



Carry forward of passed components
Resit In Terminal Exam
Summer No
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment
• Group/class feedback, post-assessment
• Online automated feedback
• Peer review activities

How will my Feedback be Delivered?

Informal feedback on programming tasks will be provided throughout, both instructor- and peer-lead. Feedback on quizzes will be automatic. Feedback on reflective essays will be provided within 20 working days from submission, in writing.