The aim of this module is to train students in Object Oriented Programming (OOP) by using a contemporary language (e.g., Java) and to provide them with an overview of other efficient object oriented languages (e.g., C++, C#, Python) used to develop applications in areas such as social networking, finance, telecommunications and other engineering domains. Students will learn about principles and practices of all stages of OOP, including software design, code development, and testing and debugging. Computer programming, especially OOP, is essential to all computing programmes. The programmes that share this module include MRes Computer Science, MSc Applied Informatics, MSc Social Computing, MSc Financial Computing, and MSc Human-Computer Interaction.
A. Critically analyse Object Oriented Programming features and principles. B. Design an Object Oriented Programming solution to a specific problem using the Unified Modelling Language (UML). C. Apply Artificial Intelligence (AI) assisted tools to solve a substantial problem using an Object Oriented Programming language, and critically evaluate the solution. D. Critically compare Object Oriented Programming languages such as Java, C++, C#, and Python, and make an informed decision on the selection of an appropriate programming language for a given problem. E. Effectively work as a member of a development team, recognising the different roles within a team and different ways of organising teams.
Formal lectures: Students will be expected to attend two hours of formal lectures in a typical week plus two hours of supervised lab session. Key concepts are introduced and illustrated through lectures. These are then enforced through problem-solving activities in lab sessions. The necessary practical skills are developed through laboratory exercises and assessment tasks. Private study: In a typical week, students will be expected to devote six hours of unsupervised time to private study. The time allowed per week for private study will typically include three hours for revision of course material and background reading, with three hours for completion of practical work. Assessment: The assessment consists of two coursework tasks and a written exam. The first coursework task asks students to research and critically analyse the differences Java and another OOP language of their choice, focusing on OOP aspects in their comparison. The second task is a group project in which students will develop (design and implement) a solution to a substantial programming problem using an OOP language, and critically evaluate the proposed solution. The written exam evaluates the students’ critical understanding of key theoretical and practical components of the module.