MY570      Half Unit
Computer Programming

This information is for the 2025/26 session.

Course Convenor

Dr Milena Tsvetkova

Availability

This course is available on the MPhil/PhD in International Relations. This course is freely available as an outside option to students on other programmes where regulations permit. It does not require permission.

This course is not controlled access. If you register for a place and meet the prerequisites, if any, you are likely to be given a place.

Course content

This course introduces students to the fundamentals of computer programming as students design, write, and debug computer programs using the programming language Python. The course will also cover the foundations of computer languages, algorithms, functions, variables, object-orientation, scoping, and assignment. The course will rely on practical examples from computational social science and social data science.
Students will learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs. Students acquire skills and experience as they learn Python, through programming assignments with an approach that integrates project-based learning. This course is an introduction to the fundamental concepts of programming for students who lack a formal background in the field, but will include more advanced problem-solving skills in the later stages of the course. Topics include algorithm design and program development; data types; control structures; functions and parameter passing; recursion; computational complexity; searching and sorting; and an introduction to the principles of object-oriented programming and unit testing. The primary programming languages used in the course will be Python.

Teaching

15 hours of seminars and 20 hours of lectures in the Autumn Term.

This course has a reading week in Week 6 of Autumn Term.

Formative assessment

Students will be expected to produce 1 problem sets in the AT.

Students will work on weekly, structured problem sets in the staff-led class sessions. Example solutions will be provided at the end of each week.

 

Indicative reading

  • Guttag, John V. Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press, 2016.
  • Gries, Paul, Jennifer Campbell, and Jason M Montojo. Practical Programming: An Introduction to Computer Science Using Python 3. The Pragmatic Bookshelf, 2013.
  • Miller, Bradley N. and David L. Ranum. Problem Solving with Algorithms and Data Structures Using Python. Available online at http://interactivepython.org/runestone/static/pythonds/index.html.
  • Python, Intermediate and advanced documentation at https://www.python.org/doc/.

Assessment

Problem sets (50%)

Project (50%) in Winter Term Week 1

For the individual project, students will be required to develop Python software that addresses a sufficiently complex computational social science task. Examples of possible projects include a software package that collects and analyses online data, an experimental game, or an agent-based model. Marking of this assessment will be at a level appropriate for PhD students.


Key facts

Department: Methodology

Course Study Period: Autumn Term

Unit value: Half unit

FHEQ Level: Level 8

CEFR Level: Null

Total students 2024/25: 5

Average class size 2024/25: 2

Controlled access 2024/25: No
Guidelines for interpreting course guide information

Course selection videos

Some departments have produced short videos to introduce their courses. Please refer to the course selection videos index page for further information.

Personal development skills

  • Self-management
  • Team working
  • Problem solving
  • Application of information skills
  • Communication
  • Application of numeracy skills
  • Specialist skills