Full Title:Object-Oriented Programming
Language of Instruction:English
Module Code:COMP C8Z03
 
Credits: 10
Valid From:Semester 1 - 2016/17 ( September 2016 )
Module Delivered in 3 programme(s)
Module Description:Students completing this module will have a good understanding of Object-Oriented Design techniques; understand the uses and benefits of common data storage structures; apply Test Driven Development techniques to their code; design and implement solutions to common networking and multi-threaded software problems.
Learning Outcomes:
On successful completion of this module the learner should be able to
  1. Apply object-oriented design techniques to non-trivial problems.
  2. Apply test driven development techniques to the development of object-oriented software.
  3. Use multi-threading and network programming techniques to solve simple problems.
  4. Design and implement solutions to non-trivial problems using data structures.
 

Module Content & Assessment

Indicative Content
Development Tools & Standards
Development tools; Coding standards and documentation; Source control and versioning
Library Classes
String, Scanner, Math, and Calendar classes
String Processing
String processing; Introduction to Regular Expressions
Object-Oriented Concepts
OO Principles; Benefits; Anatomy of a class; Encapsulation; Objects from classes; Overloading; Object interaction; Abstract classes; Aggregation and composition; Object references; Runtime identification; Comparing objects; Copying objects
Inheritance and Interfaces
Single-level inheritance; Overriding; Multi-level inheritance; Polymorphism; Interface types
Collections
Lists; Queues; Stacks; Sets; Maps; Efficiency of collection types
Tree Structures
Binary trees; Binary search trees; Red-black trees; Heaps; Heapsort algorithm
Exception Handling
Definition; Class hierarchy; Handled and unhandled exceptions; Try/catch mechanism; Throwing exceptions; Finally clause; User-defined exceptions; Asynchronous exceptions; Usage guidelines
Threads
Processes and threads; Thread lifecycle; Creating threads; Stopping threads; Race conditions; Synchronisation
Serialization
I/O class hierarchy; Binary streams; Character streams; Random access; Object streams; Parsing, Creating and validating XML documents
Network Programming
Sockets; TCP and UDP; Implementing TCP and UDP sockets; Message protocol; Single-threaded client-server; Multi-threaded client-server; Broadcast messages
Test Driven Development
Test Cases; Unit testing; Writing Testable Code; Refactoring; Testing multithreaded and networked software; Testing persistance
Assessment Breakdown%
Course Work100.00%

Full Time

Course Work
Assessment Type Assessment Description Outcome addressed % of total Marks Out Of Pass Marks Assessment Date Duration
Project Each student will undertake a project designed to assess their understanding of object-oriented design techniques and data structures. Each student will be required to apply best practice techniques to document and test the software developed for the project. An oral examination will accompany submission of the project. 1 25.00 0 0 n/a 0
Class Test Two class based examinations will examine the content covered in the module. A class examination will take place in each semester of the delivery period for the module. The examinations will typically be in open and/or closed book format. 1,3 50.00 0 0 n/a 0
Group Project Each student group will undertake a project designed to assess their understanding of object-oriented design techniques, serialization, network programming, and multi-threaded programming. Each group will consist of no more than two students. An oral examination will accompany submission of the project. 1,4 25.00 0 0 n/a 0
No Project
No Practical
No End of Module Formal Examination

Part Time

Course Work
Assessment Type Assessment Description Outcome addressed % of total Marks Out Of Pass Marks Assessment Date Duration
Project Each student will undertake a project designed to assess their understanding of object-oriented design techniques and data structures. Each student will be required to apply best practice techniques to document and test the software developed for the project. An oral examination will accompany submission of the project. 1 25.00 0 0 n/a 0
Class Test Two class based examinations will examine the content covered in the module. A class examination will take place in each semester of the delivery period for the module. The examinations will typically be in open and/or closed book format. 1,3 50.00 0 0 n/a 0
Group Project Each student group will undertake a project designed to assess their understanding of object-oriented design techniques, serialization, network programming, and multi-threaded programming. Each group will consist of no more than two students. An oral examination will accompany submission of the project. 1,4 25.00 0 0 n/a 0
No Project
No Practical
No End of Module Formal Examination

DKIT reserves the right to alter the nature and timings of assessment

 

Module Workload & Resources

Workload: Full Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecturer-Supervised Learning (Contact) There will be four hours of lab-based classes per week (two 2-hour sessions). In these theory / practical sessions, the delivery of theory will be integrated with the practical implementation of that theory. Classes will normally be broken down into 40% theory delivery and 60% practical implementation. 4.00 Every Week 4.00
Tutorial There will be a 1-hour lab-based tutorial each week. Students will undertake practical exercises based on the material covered in the corresponding lab-based classes. 1.00 Every Week 1.00
Directed Reading Reading of lecturer-recommended information sources. 1.00 Every Week 1.00
Independent Study Independent practical work. 2.00 Every Week 2.00
Total Weekly Learner Workload 8.00
Total Weekly Contact Hours 5.00
Workload: Part Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecturer Supervised Learning There will be four hours of lab-based classes per week (two 2-hour sessions). In these theory / practical sessions, the delivery of theory will be integrated with the practical implementation of that theory. Classes will normally be broken down into 40% theory delivery and 60% practical implementation. 2.00 Every Week 2.00
Tutorial There will be a 1-hour lab-based tutorial each week. Students will undertake practical exercises based on the material covered in the corresponding lab-based classes. 1.00 Every Week 1.00
Directed Reading Reading of lecturer-recommended information sources. 1.00 Every Week 1.00
Independent Study Independent practical work. 4.00 Every Week 4.00
Total Weekly Learner Workload 8.00
Total Weekly Contact Hours 3.00
Resources
Recommended Book Resources
  • Allan Vermeulen et al 2000, The Elements of Java Style, Cambridge University Press [ISBN: 0521777682]
  • Cay S. Horstmann 2012, Big Java: Late Objects, 1st Ed. Ed., Wiley [ISBN: 1118087887]
  • Lasse Koskela 2013, Effective Unit Testing, 1st Ed. Ed., Manning Publications [ISBN: 1935182579]
Supplementary Book Resources
  • Jeffrey E. F. Friedl 2012, Introducing Regular Expressions, 3rd Ed. Ed., O'Reilly [ISBN: 0596528124]
  • Joshua Bloch 2008, Effective Java, 2nd Ed. Ed., Sun Microsystems [ISBN: 0321356683]
This module does not have any article/paper resources
This module does not have any other resources

Module Delivered in

Programme Code Programme Semester Delivery
DK_KCOMP_8 Bachelor of Science (Honours) in Computing 3 Mandatory
DK_KGMDV_8 Bachelor of Science (Honours) in Computing in Games Development 3 Mandatory
DK_KCEOO_8 Certificate in Object-Oriented(OO) Programming 1 Elective