COMP07187 2019 Object Oriented Programming
This module develops the students' programming and problem solving skills. Topics include the principles, practices, and applications of programming in object-oriented environment.
Learning Outcomes
On completion of this module the learner will/should be able to;
Demonstrate an understanding of the principles and concepts of Object Oriented Programming
Develop programming skills for an Object Oriented Programming Language
Design and Create objects using an Object Oriented Programming Language
Write programs using Object-Oriented programming language
Debug and test an Object-Oriented program
Exercise good programming practices and follow an Object Oriented Style Guide
Teaching and Learning Strategies
This module has one lecture followed by three lab hours. The lecture introduces concepts and demonstrates practical implementations of these concepts. The laboratory work follows on from the lecture where students will write programs and work on individual projects/assignments while reinforcing the theoretical aspects of the lecture.
Module Assessment Strategies
Two open book assessments will be undertaken by the student under controlled circumstances totalling 25% of the marks. The students will be given a previously unseen assignment that is based on the programming problems they have been working. They can use their previously written code or textbooks and online resources but they are not permitted to communicate in any way.
The students will be given 25% of the assessment marks for various single attempt quizzes throughout the semester. The questions will be based on questions from formative quizzes that they have previously seen.
Finally, the students will be given a 25% assignment that will be larger and more challenging than what they are assessed on in the open book assessments. This assignment is done at the students own pace in time for a final deadline. It will be based on all the material for the semester.
Repeat Assessments
A repeat assessment open book assessment covering all of the course content can be set. However, it should be at the discretion of the course board as to whether the student may have to re-attend for the module as this is a 100% CA.
Indicative Syllabus
Object Oriented Program Basics
Getting started with an Object Oriented Program
Datatypes, Variables and Scope
Classes, Attributes, Instantiation and Overriding
Object Oriented Concepts such as Inheritance, Encapsulation and Polymorphism
Following the Python Style Guide to ensure coding standards are followed
Coursework & Assessment Breakdown
Coursework Assessment
Title | Type | Form | Percent | Week | Learning Outcomes Assessed | |
---|---|---|---|---|---|---|
1 | Ongoing Quizzes | Formative | Multiple Choice/Short Answer Test | 0 % | OnGoing | 1,2,3,4,5 |
2 | Practical Evaluation | Coursework Assessment | Assignment | 25 % | Week 4 | 1,2 |
3 | Practical Evaluation | Coursework Assessment | Assessment | 25 % | Week 8 | 2,3 |
4 | Practical Quizzes | Coursework Assessment | Open Book Exam | 25 % | OnGoing | 1,2,3,4,5 |
5 | Practical Evaluation | Practical | Practical Evaluation | 25 % | Week 12 | 1,2,3,4,5,6 |
Full Time Mode Workload
Type | Location | Description | Hours | Frequency | Avg Workload |
---|---|---|---|---|---|
Lecture | Computer Laboratory | Theory Lecture | 1.00 | Weekly | 1.00 |
Practical / Laboratory | Computer Laboratory | Laboratory Practical | 3.00 | Weekly | 3.00 |
Independent Learning | Not Specified | Independent Learning | 3.00 | Weekly | 3.00 |
Online Learning Mode Workload
Type | Location | Description | Hours | Frequency | Avg Workload |
---|---|---|---|---|---|
Lecture | Online | Online Lecture | 1 | Weekly | 1.00 |
Independent Learning | Not Specified | Independent Learning | 6 | Weekly | 6.00 |
Module Resources
Recommended Reading
Python 3 Object-oriented Programming: Building robust and maintainable software with object oriented design patterns in Python
ISBN 1789615852 ISBN-13 978-1789615852
Python 3 is more versatile and easier to use than ever. It runs on all major platforms in a huge array of use cases. Coding in Python minimizes development time and increases productivity in comparison to other languages. Clean, maintainable code is easy to both read and write using Python's clear, concise syntax.
Object-oriented programming is a popular design paradigm in which data and behaviors are encapsulated in such a way that they can be manipulated together. Many modern programming languages utilize the powerful concepts behind object-oriented programming and Python is no exception.
Starting with a detailed analysis of object-oriented analysis and design, you will use the Python programming language to clearly grasp key concepts from the object-oriented paradigm. This book fully explains classes, data encapsulation, inheritance, polymorphism, abstraction, and exceptions with an emphasis on when you can use each principle to develop well-designed software.
You'll get an in-depth analysis of many common object-oriented design patterns that are more suitable to Python's unique style. This book will not just teach Python syntax, but will also build your confidence in how to program.
You will also learn how to create maintainable applications by studying higher level design patterns. Following this, you'll learn the complexities of string and file manipulation, and how Python distinguishes between binary and textual data. Not one, but two very powerful automated testing systems will be introduced in the book. After you discover the joy of unit testing and just how easy it can be, you'll study higher level libraries such as database connectors and GUI toolkits and learn how they uniquely apply object-oriented principles. You'll learn how these principles will allow you to make greater use of key members of the Python eco-system such as Django and Kivy
Python Programming Style Guide: