Aims and Fit of Module
This module aims to provide UG students with a comprehensive understanding of the core principles and practices of object-oriented programming (OOP) using Java. This module is designed to equip students with a solid grasp of fundamental OOP concepts such as classes, objects, inheritance, polymorphism, and encapsulation. Students will develop practical skills in designing, implementing, and testing object-oriented programs using Java, a widely-used and industry-relevant programming language. The module also emphasizes the application of design principles and patterns to create robust, maintainable, and scalable software solutions. By fostering critical thinking and problem-solving abilities, students will be able to analyze and evaluate different OOP approaches and their implications on software design. This module is an essential component of the undergraduate curriculum, particularly for students pursuing degrees in Computer Science, Software Engineering, Information Technology, and related technical disciplines. It serves as a bridge between introductory programming courses and more advanced topics, preparing students for complex programming challenges and enabling them to contribute effectively to software development projects in both academic and professional settings.
Learning outcomes
A. Design, write, compile, test, debug, and execute computer programs using Java, demonstrating proficiency in syntax, control structures, and basic I/O operations.
B. Explain and apply the principles of object-oriented programming, such as abstraction, encapsulation, inheritance, and polymorphism, to develop robust, maintainable Java applications.
C. Develop Java programs with attention to software development best practices, including documentation standards.
Method of teaching and learning
Students are expected to attend two hours of lectures and participate in two hours of practical sessions in a computer lab. Lectures will introduce students to the academic content and practical skills that form the core of the module, while the computer practicals will provide hands-on experience to practice these skills. Additionally, students will be expected to allocate time to complete continuous assessment tasks and engage in private study. Private study will allow students to reflect on and deepen their understanding of the lecture material and undertake relevant background reading. Continuous assessment will evaluate the extent to which practical skills have been mastered. Specifically, assessment tasks will be completed individually and will involve solving given problems using sound software engineering techniques, based on provided requirements statements.