CSC-10084 - Problem Solving and Computer Programming
Coordinator: Bappaditya Mandal Room: CR036 Tel: +44 1782 7 33076
Lecture Time: See Timetable...
Level: Level 4
Credits: 30
Study Hours: 300
School Office: 01782 733075

Programme/Approved Electives for 2026/27

None

Available as a Free Standing Elective

No

Co-requisites

None

Prerequisites

None

Barred Combinations

None

Description for 2026/27

In the first part the module introduces the fundamental concepts underlying computer programming, together with techniques for applying these using Python. The module has a strong practical element. Examples will come from various areas of Computer Science and Data Science. You will gain skills of producing, compiling, and debugging simple programs in Python. These skills will be refined in later modules with applications in various areas of Computer Science.
In the second part this module teaches students modern programming practices in a different paradigm than they study in Introduction to Programming. Professional programming and modelling practices will be studied, and you will be introduced to the Java programming language, expanding your suite of practical skills. You will learn more about testing strategies of computer programs, and intermediate Java programming syntax.

Aims
This module introduces the fundamental concepts underlying computer programming together with techniques for applying these using Python. The module will have a strong practical element and use examples from several applications areas in Computer Science, including Data Science.
This module also aims to give students an understanding of the theories and principles of modelling real-world problems through object-oriented design, for the development of robust, professional and high quality software systems. Techniques will be shown to model such systems, formally document them, and to convert them into real software systems.

Intended Learning Outcomes

demonstrate understanding of the basic concepts of computer programming through the creation of simple programs: 1,2,3
apply basic software engineering principles in order to design and implement computer programs: 2,3
evaluate the suitability of computer language data and control structures to achieve basic problem-solving: 3
Apply object-oriented design techniques to represent real-world scenarios as a connected set of objects: 4
Create formal documents for object-oriented code using industry standards: 4
Implement an object-oriented system in Java using standard software development practices: 4
Demonstrate the ability to apply industry standard unit testing frameworks to object-oriented systems: 4

Study hours

Lectures: 44 hours (44 1h Lectures)
Practicals: 44 hours (44 1h Practicals)
Practical preparation and review: 44 hours (1h per practical)
Preparing for in-class tests: 8 hours (4h per in-class test)
Working on first-half coursework (programming assignment): 15 hours
second-half Coursework: 50 hours (25 hours for each part of the coursework)
Private study: 106 hours

School Rules

None

Description of Module Assessment

1: Class Test weighted 12%
First class test to be completed through course of the module
First class test to be completed through course of the module in Week 6-7 of Semester I. This will take place during a lab practical class and will be of multiple choice questions.

2: Class Test weighted 13%
Second class test to be completed through course of the module
Second class test to be completed through course of the module in Week 9-10 in Semester I. This will take place during a lab practical class and will be of multiple choice questions.

3: Assignment weighted 25%
Coursework assignment on basic programming tasks
Coursework assignment on basic programming tasks. The tasks will relate to application areas of Computer Science, including Data Science. Equivalent to a 1000 word report.

4: Assignment weighted 50%
Report on an object-oriented scenario and An implemented software system for a given scenario
Students will write a program in Java to solve a given problem. Consideration of testing strategies for the developed system will also be shown. Equivalent to 1500 word report.