CM1103: Problem Solving with Python

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CM1103
External Subject Code 100956
Number of Credits 20
Level L4
Language of Delivery English
Module Leader Professor Stuart Allen
Semester Autumn Semester
Academic Year 2024/5

Outline Description of Module

This module will provide students with the fundamental programming and problem solving skills necessary to continue study in Computer Science. The delivery of the module will be case study based, motivated by a study of a number of classical and topical real-world problems. Through these, the module will introduce the mathematical theory necessary to model problems and the programming skills necessary to implement efficient solutions. 

On completion of the module a student should be able to

  1. Use Python and common modules to implement simple algorithms expressed in pseudocode, and understand fundamental programming concepts 
     

  2. Develop informal algorithms and apply recursion to solve simple problems 
     
  3. Informally analyse the efficiency of algorithms and contrast different searching algorithms 
     
  4. Understand and apply basic logic, set theory, counting techniques, probability and statistics 
     
  5. Write scientific reports describing the analysis of a problem 

How the module will be delivered

Modules will be delivered through blended learning. You will be guided through learning activities appropriate to your module, which may include: 

on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes), 

on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings) 

face to face small group sessions (e.g. help classes, feedback sessions) 

Skills that will be practised and developed

Programming in Python 

Problem Solving 

Effectively using online and offline API documentation 

Writing scientific reports 

Using the command line to manipulate files and run code 

How the module will be assessed

A blend of assessment types which may include coursework and portfolio assessments, class tests, and/or formal examinations 

Students will be provided with reassessment opportunities in line with University regulations. 

Assessment Breakdown

Type % Title Duration(hrs)
Class Test 60 Problem Solving With Python N/A
Written Assessment 40 Problem Solving Exercise N/A

Syllabus content

Fundamental programming concepts in Python 

         Representing data: booleans, numbers, strings, lists & tuples, functions & classes, sets 

         Defining functions and modules 

         Program control – loops and branching 

         Input and output 

         Useful Python modules 

         References, mutability and lambda functions 

Algorithms, including: 

         Searching: including Linear search, Binary search, Regular expressions 

         Fisher-Yates shuffle 

         Recursion 

         Efficiency 

Mathematics 

         Numerical skills 

         Propositional logic 

         Basic set theory 

         Basic statistics and probability 

         Permutations, combinations 

         Introduction to mathematical proofs 

Scientific report writing, including: 

            Structuring a report 

            Analysing and presenting results 

            Drawing conclusions 


Copyright Cardiff University. Registered charity no. 1136855