Skip to main content
 

LIBA2011: Programming for Students of Arts and Humanities

Please ensure you check the module availability box for each module outline, as not all modules will run in each academic year. Each module description relates to the year indicated in the module availability box, and this may change from year to year, due to, for example: changing staff expertise, disciplinary developments, the requirements of external bodies and partners, and student feedback. Current modules are subject to change in light of the ongoing disruption caused by Covid-19.

Type Open
Level 2
Credits 20
Availability Available in 2023/24
Module Cap None.
Location Durham
Department Liberal Arts

Prerequisites

  • None

Corequisites

  • None

Excluded Combinations of Modules

  • None

Aims

  • To introduce the theory and principles of computation to students from disciplines across the Faculty of Arts and Humanities.
  • To train humanities students in the practical craft of computer programming through examples drawn entirely from the manipulation of cultural data, including texts, images and music.
  • To empower students to find for themselves the tools they will need to teach themselves further topics and to improve as programmers in the future.
  • To introduce humanities students to the culture of open-source software and open-access data.
  • To give the students an informed perspective from which to critique our increasingly algorithmic and data-driven culture.
  • To enable the students to formulate and answer data-driven research questions drawn from disciplines across the Faculty of Arts and Humanities.
  • To introduce the students to the principles of sound software construction.
  • To teach the students to write idiomatic and efficient code in the Python programming language.
  • To introduce the students to the elements of web programming.

Content

  • Variables, types, flow control, functions and data structures in Python.
  • Jupyter notebooks.
  • Object-oriented programming.
  • Testing and error handling.
  • Understanding software documentation.
  • Using external software libraries.
  • Processing unstructured text with regular expressions.
  • Parsing XML: the Document Object Model (DOM) and XPATH
  • The Text Encoding Initiative.
  • Manipulating multimedia data.
  • Basic web programming: HTML, CSS and JavaScript.
  • Web scraping.
  • Introduction to data science and machine learning.
  • Critiques of digital culture

Learning Outcomes

Subject-specific Knowledge:

  • Students will acquire an understanding of the principles and practice of sound computer programming by solving problems drawn from the various domains of the humanities.
  • An awareness of the principles of sound software design.
  • An awareness of the basic principles of complexity analysis.
  • An awareness of the main tools of the Python programming ecosystem.
  • An awareness of the principles of open-access data.
  • An understanding of the technical infrastructure of the web.
  • An understanding of the limits of data-driven analysis

Subject-specific Skills:

  • Students studying this module will develop:
  • Skills in solving problems by writing and debugging programs in Python.
  • Skills in creating complex data structures to facilitate efficient algorithmic solutions.
  • Skills in manipulating unstructured textual data.
  • Skills in manipulating texts with structured markup.
  • Skills in manipulating non-textual, multimedia data.
  • Basic skills in web programming.
  • Competence in Python programming to an intermediate level.

Key Skills:

  • Students studying this module will develop:
  • Capacity to think algorithmically.
  • Competence in manipulating textual data, including web pages.
  • Competence in manipulating non-textual data, including images and music.
  • Capacity to formulate and solve computational research problems in the humanities disciplines.
  • Competence in explaining computational solutions in clear, non-technical language

Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module

  • Programming Lectures. Weekly lectures will explain the principles of programming in general, illustrated by examples in Python. Programming Demonstrations. Each fortnight, the topic explained in the programming lecture will be further elaborated with practical code. Programming Workshops. In these sessions, students will be provided with short programming exercises on the fortnights topic, which they are to attempt to solve on their own computers, working alone or in small groups. Digital Humanities Lectures. These occasional lectures will be on various current problems and issues at the intersection of the humanities and digital culture. Quizzes. To ensure that students are understanding each of the topics covered, there will be a quiz every other week.
  • Formative Project Proposal: This write-up allows students to explore ideas for their final project and to get feedback that will permit them to shape it in the light of that input.
  • Final Project Report. The final project has two components, each worth 50%. The first is a report in which the students will explain the research question they are addressing, and the data and programming methods used to address it. Final Project Code Notebook. The second part of the project is a Jupyter notebook containing the code written by the student along with its documentation

Teaching Methods and Learning Hours

ActivityNumberFrequencyDurationTotalMonitored
Programming Lectures20Weekly1 hour20 
Programming Demonstrations20Weekly1 hour20 
Programming Workshops20Weekly2 hours40 
Digital Humanities Lectures6Weeks 3, 6, 9 in MT and weeks 13, 16, 19 in EpT1 hour6 
Preparation and Reading114 
Total200 

Summative Assessment

Component: Coursework ProjectComponent Weighting: 80%
ElementLength / DurationElement WeightingResit Opportunity
Project report3,000 words50 
Documented code notebookN/A50 
Component: Weekly quizzesComponent Weighting: 20%
ElementLength / DurationElement WeightingResit Opportunity
10 QuizzesOnline/untimed10% each 

Formative Assessment

Students will submit a 1000 word proposal for their final project at the start of Epiphany term and will receive feedback on its suitability and on avenues for further development toward the final project.

More information

If you have a question about Durham's modular degree programmes, please visit our FAQ webpages, Help page or our glossary of terms. If you have a question about modular programmes that is not covered by the FAQ, or a query about the on-line Undergraduate Module Handbook, please contact us.

Prospective Students: If you have a query about a specific module or degree programme, please Ask Us.

Current Students: Please contact your department.