PROGRAMMING FOR DATA SCIENCE - 2027/8

Module code: COMM080

Module Overview

This module provides a solid foundation in Python programming relevant for data science. It introduces students to core programming concepts, essential Python libraries, and practical coding techniques widely used in data analysis and machine learning. By the end of the module, students will be confident in writing Python programs for solving real-world data problems, handling data, performing analysis, and creating visualisations.

Module provider

Computer Science and Electronic Eng

Module Leader

MARSHAN Alaa (CS & EE)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 7

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 62

Lecture Hours: 22

Laboratory Hours: 22

Guided Learning: 22

Captured Content: 22

Module Availability

Semester 1

Prerequisites / Co-requisites

None

Module content

The module provides a practical introduction to Python programming for data science. Indicative content includes:

  • Python Fundamentals: variables, expressions, control flow, functions, iterations, and file handling.

  • Data Structures in Python: lists, dictionaries, tuples, and sets.

  • Data Handling with NumPy and Pandas: arrays, data frames, indexing, selection, aggregation, and cleaning.

  • Data Visualization: using Matplotlib and Seaborn for exploratory analysis.

  • Introduction to Machine Learning with Scikit-learn: applying Python workflows to simple supervised and unsupervised learning problems.

The module emphasizes practical application through coding exercises, case studies, and real-world datasets, preparing students for advanced data science techniques.

Assessment pattern

Assessment type Unit of assessment Weighting
School-timetabled exam/test PC Lab In class Test (1.5 hours) 20
Coursework Coursework 80

Alternative Assessment

None

Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate that they have achieved the module¿s intended learning outcomes described above.
Thus, the summative assessment for this module consists of:

  • A mid-term class test, which evaluates students' comprehension of essential computational thinking and Python programming practices suitable for real-world data science applications. This will address LO1 to LO2.

  • A comprehensive programming exercises to test students¿ ability to understand and use Python for data science case study. This will address LO3 to LO5.

Formative assessment and feedback
Formative assessment and feedback during the lab sessions.

Module aims

  • Build Computational Thinking and Problem-Solving Skills - Foster analytical and logical reasoning abilities to approach complex data challenges with computational solutions.
  • Develop Python Programming Skills - Provide hands-on experience in Python programming, including data manipulation, visualization, and the use of key data science libraries.
  • Bridge Theory and Practice -Demonstrate how programming techniques can be applied to data science tasks through coding exercises, problem-solving, and case studies.
  • Prepare for Advanced Data Science Modules - Lay a strong programming foundation to support further study in machine learning, deep learning, and advanced data analytics.

Learning outcomes

Attributes Developed
001 Demonstrate computational thinking and programming practices suitable for real-world data science applications. KC
002 Understand the Python-based data science and machine learning ecosystem. KPT
003 Perform data cleaning, transformation, and visualization using Python. KCPT
004 Write and execute Python programs for data analysis and problem-solving. KCPT
005 Utilize key Python libraries such as NumPy, Pandas, Matplotlib, and Scikit-learn. C
006 Apply Python-based workflows to implement and evaluate simple machine learning tasks. CPT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Methods of Teaching / Learning

The learning and teaching strategy is designed to:
Help students achieve the intended learning outcomes of the module through in-class discussions and hands-on exercises in the lab sessions and via the coursework.
The learning and teaching methods include:

  • Lectures with class discussion.

  • Lab sessions.

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: COMM080

Other information

The School of Computer Science and Electronic Engineering is committed to developing graduates with strengths in Employability, Digital Capabilities, Global and Cultural Capabilities, Sustainability, and Resourcefulness and Resilience. This module is designed to allow students to develop knowledge, skills, and capabilities in the following areas:
Digital Capabilities
The programming skills taught in this module provide students with relevant digital skills that are fundamental to solving important computer science problems.
Employability
This module provides important introductory skills relevant for data science, and software skills that are important in solving real-life problems today. As the title suggests, students are equipped with practical programming experience through self-guided lab activities that require employing a range programming techniques. The problem-solving skills, theoretical skills, and programming skills are all highly valuable to employers.
Global and Cultural Skills
Computer Science is a global language and the tools and languages used on this module can be used internationally. This module allows students to develop skills that will allow them to reason about and develop and use code that can be used in various domains.
Sustainability
This module demonstrates how computers can be used to analyse a wide range of data. These datasets can relate to different topics including the UN sustainability goals. This module will teach techniques to identify patterns in the data and draw conclusions.
Resourcefulness and Resilience
This module involves practical problem-solving skills that teach a student how to reason about and solve new unseen problems through combining the theory taught with practical technologies for systems that are in everyday use.

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2027/8 academic year.