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 2018/9

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

The module will be delivered through a combination of lectures, supervised lab sessions, example classes and tutorials as appropriate.

 

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

Coursework: The coursework will allow the student to demonstrate their knowledge and practical skills and to apply the principles taught in lectures to simulate and analyse a simple problem (LO1, LO5).

Exam: A written exam (2 h) will test the student's knowledge and understanding of basic Python programming and concepts, topics from discrete maths, and the development and analysis of simple algorithms  (LO1, LO2, LO3, LO4).

The potential for reassessment in this module is a 100% resit examination during the summer.

 

 

 

 

 

Assessment Breakdown

Type % Title Duration(hrs)
Exam - Autumn Semester 60 Problem Solving With Python 2
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

 

Essential Reading and Resource List

Think Python! http://greenteapress.com/wp/think-python-2e/
Downey, A.   2015. Think Python  2nd ed.   Farnham : O'Reilly. 

Background Reading and Resource List

Epp, S. S. 2011. Discrete mathematics with applications 4th ed.  UK : Brooks/Cole, Cengage Learning  ( 3rd ed also fine)

 


Copyright Cardiff University. Registered charity no. 1136855