Problem Solving Through Programming COM411
Why is this module important?
Problem solving is concerned with identifying problems, devising possible solutions and taking an appropriate course of action. Problem solving is a fundamental skill that allows us to tackle problems of varying scope in a systematic manner. It is also the single most desirable and sought-after skill in the computing profession. All software is designed to solve a human problem and comprises of an array of solutions to a series of smaller problems. Software is developed using computer programming whereby computing problems are transformed into instructions that make up a software solution. In this module you will develop your problem-solving skills through computer programming and the development of software solutions. You will gain knowledge and skills that are highly desirable in the computing profession and are essential to the course of your study.
What you will learn on this module
You will be introduced to the problem-solving process and its importance in the computing profession. You will learn to tackle computer problems of varying scope in a systematic manner. You will learn core computer programming concepts such as data types, expressions and control structures as well as fundamental software development principles and techniques. Whilst the coding aspect of computer programming will be explored in some depth, the importance of understanding the problem domain, planning and subsequently evaluating a solution will be emphasised. You will learn techniques related the design, implementation and testing of software solutions and gain an appreciation for their role in the context of the computing profession and the wider industry.
What you will be able to do after the module:
- Describe a problem-solving process and its value in the computing profession as well as the wider context.
- Design, implement, test, and debug software solutions to meet requirements
- Demonstrate awareness of contemporary techniques for the design, development, testing, correcting, deploying and documenting of software solutions from specifications and/or problem descriptions, using relevant standards and tools.
- Apply analytical and critical thinking skills to systematically analyse and apply structured problem-solving techniques to computer problems.
- Interpret and follow approaches to version and source control
- Recognise legal, social, ethical & professional issues related to software development.
The module is split into 4 blocks:
- Block 1: Basics - fundamental programming concepts such as input/output, conditional statements, loops, functions, and modules.
- Block 2: Data - working with data sources such as CSV and JSON. Storing data in data structures such as lists and dictionaries.
- Block 3: Visualisation - visualising data using popular visualisation libraries.
- Block 4: OOP - learn key object-oriented programming concepts and applying this to program construction.
Tech Stack & Tools:
- Python (+ a range of python modules)
- Matplotlib
- PyCharm
- Git
- GitHub
As a student you can get a GitHub student education account FREE, just sign up for a GitHub account with your university email then verify that you are a student here: education.github.com/pack/join
Summative assessment details
AE1 Weighting: 50%
Time Constrained Assessment (TCA) 4 hours
AE2 Weighting: 50%
Software Product with Report 2000 words