Programme/Approved Electives for 2026/27
None
Available as a Free Standing Elective
No
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,3apply basic software engineering principles in order to design and implement computer programs: 2,3evaluate the suitability of computer language data and control structures to achieve basic problem-solving: 3Apply object-oriented design techniques to represent real-world scenarios as a connected set of objects: 4Create formal documents for object-oriented code using industry standards: 4Implement an object-oriented system in Java using standard software development practices: 4Demonstrate the ability to apply industry standard unit testing frameworks to object-oriented systems: 4
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 hourssecond-half Coursework: 50 hours (25 hours for each part of the coursework) Private study: 106 hours
Description of Module Assessment
1: Class Test weighted 12%First class test to be completed through course of the moduleFirst 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 moduleSecond 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 tasksCoursework 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 scenarioStudents 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.