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
-
Use Python and common modules to implement simple algorithms expressed in pseudocode, and understand fundamental programming concepts
- Develop informal algorithms and apply recursion to solve simple problems
- Informally analyse the efficiency of algorithms and contrast different searching algorithms
- Understand and apply basic logic, set theory, counting techniques, probability and statistics
- 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