COMP07187 2019 Object Oriented Programming

General Details

Full Title
Object Oriented Programming
Transcript Title
Object Oriented Programming
Code
COMP07187
Attendance
N/A %
Subject Area
COMP - 0613 Computer Science
Department
COEL - Computing & Electronic Eng
Level
07 - Level 7
Credit
05 - 05 Credits
Duration
Semester
Fee
Start Term
2019 - Full Academic Year 2019-20
End Term
9999 - The End of Time
Author(s)
Ian Craig, Mary Carden
Programme Membership
SG_EELEC_H08 202000 Bachelor of Engineering (Honours) in Electronics and Self Driving Technologies
Description

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;

1.

Demonstrate an understanding of the principles and concepts of Object Oriented Programming

2.

Develop programming skills for an Object Oriented Programming Language

3.

Design and Create objects using an Object Oriented Programming Language

4.

Write programs using Object-Oriented programming language

5.

Debug and test an Object-Oriented program

6.

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 & Continuous Assessment
100 %

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
Total Full Time Average Weekly Learner Contact Time 4.00 Hours

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
Total Online Learning Average Weekly Learner Contact Time 1.00 Hours

Module Resources

Non ISBN Literary 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

 

 

Other Resources

Python Programming Style Guide:

https://www.python.org/dev/peps/pep-0008/