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)