ST101      Half Unit
Programming for Data Science

This information is for the 2020/21 session.

Teacher responsible

Miss Lok Ting Yuen


This course is available on the BSc in Actuarial Science and BSc in Mathematics, Statistics and Business. This course is available with permission as an outside option to students on other programmes where regulations permit and to General Course students.

Course content

The primary focus of the course is to cover principles of computer programming with a focus on data science applications.

The topic covered will include variables, basic data types, data structures and sequences, control flow structures, modularisation, functions, variable and function scoping, errors and exception handling, and data input-output operations using file systems and operating system standard input-output; use of multi-dimensional arrays and their implementation in numpy, data processing using pandas dataframes; principles of object-oriented programming including objects, classes, methods, encapsulation, inheritance, and polymorphism; principles of functional programming languages such as use of immutable data, declerative programming model, flow control using functional calls and recursions, basic parallel programming concepts; practical aspects of algorithmic concepts such as recursions, search and tree structures.

The course will primarily use Python programming language, but will also discuss and provide references to how the fundamental programming concepts are implemented in other programming languages, in particular, R. 


20 hours of lectures and 15 hours of seminars in the LT.

This course will be delivered through a combination of classes and lectures totalling a minimum of 35 hours across Lent Term. This year, some or all of this teaching may be delivered through a combination of virtual classes and flipped-lectures delivered as short online videos. This course includes a reading week in Week 6 of Lent Term.

Formative coursework

Students will be expected to produce 10 exercises in the LT.

The problem sets will consist of computer programming exercises, mostly in Python programming language, but also some exercises will be offered to practice implementation in R.  

Indicative reading

Essential Reading: 

  • J. V. Guttag, Introduction to Computation and Programming using Python, Second Edition, The MIT Press, 2017
  • W. Mckinney, Python for Data Analysis, 2nd Edition, O'Reilly, 2017
  • A. B. Downey, Think Python: How to Think like a Computer Scientist, 2nd Edition, O'Reilly Media, 2015
  • M. Dawson, Python Programming for the Absolute Beginner, 3rd Edition, Course Technology, 2010

Additional Reading: 

  • J. Zelle, Python Programming: An Introduction to Computer Science, 3rd edition, Franklin, Beedle & Associates, 2016
  • M. Lutz, Learning Python, 5th Edition, O'Reilly Media, 2013


Coursework (40%) and project (60%) in the LT.

Students are required to hand in solutions to 4 sets of exercises using Python (or R), each accounting for 10% of the final assessment.

The project will require from students to solve a practical programming task, which will allow them to apply the concepts learned in the course and demonstrate their knowledge. 

Important information in response to COVID-19

Please note that during 2020/21 academic year some variation to teaching and learning activities may be required to respond to changes in public health advice and/or to account for the situation of students in attendance on campus and those studying online during the early part of the academic year. For assessment, this may involve changes to mode of delivery and/or the format or weighting of assessments. Changes will only be made if required and students will be notified about any changes to teaching or assessment plans at the earliest opportunity.

Key facts

Department: Statistics

Total students 2019/20: Unavailable

Average class size 2019/20: Unavailable

Capped 2019/20: No

Value: Half Unit

Guidelines for interpreting course guide information

Personal development skills

  • Self-management
  • Problem solving
  • Application of information skills
  • Communication
  • Application of numeracy skills
  • Commercial awareness
  • Specialist skills