Advanced Object Oriented Programming, 7.5 credits
Avancerad objektorienterad programmering, 7,5 hp
Course code: DT4014
School of Information Technology
Level: First cycle
Select course syllabus
Finalized by: Forsknings- och utbildningsnämnden, 2024-09-18 and is valid for students admitted for spring semester 2025.
Main field of study with advanced study
Computer Science and Engineering, First cycle, has less than 60 credits in first-cycle course/s as entry requirements. (G1F)Entry requirements
Programming 7.5 credits and Algorithms and Data Structures 7.5 credits. English 6.
Placement in the Academic System
The course is included in the Computer Science and Engineering Programme 300 credits and in the Computer Engineer Programme 180 credits. The course is given also as a single subject course.
Objectives
Design of software components that are easy to modify and easy to re-use requires deep knowledge about programming language constructs and advanced programming techniques.
The aim of the course is for students to acquire extended knowledge about object oriented programming techniques as well as the skills and abilities needed to understand and exploit modern object oriented libraries. Another purpose is that the students, through teamwork during project work and an agile development process, should apply advanced object-oriented programming techniques to develop Java applications.
Following successful completion of the course the student should be able to:
Knowledge and understanding
- explain and apply inheritance, polymorphism and unit testing
- explain the concept of model-based application design and development with the help of a suitable modelling language or formalism
Skills and ability
- given a problem specification, design and implement a Java application with re-usable abstract types and data structures
- use a distributed version control system
- identify and apply design patterns discussed in the course to specific problems
- use reflection and Java annotations to make programs and libraries "self-aware"
- present the results of her work both in writing and orally
Judgement and approach
- assess and participate in the development of re-usable program libraries
- evaluate the results of her work and propose improvements
Content
Design patterns including case studies, polymorphism and inheritance, method overloading, abstract types and data structures, code re-use in frameworks, programming relative to abstract interfaces, Unified Modelling Language (UML) diagrams, Java reflection, Java annotations, and unit testing. Distributed version control. Use of professional tools for software development in Java.
The course design provides practical experience in managing a small-scale project, thus offering an introduction to agile software development methodologies for larger projects and organizations.
Language of Instruction
Teaching Formats
A series of lectures introduces concepts and techniques. The lectures are followed by supervised exercises where the student is given the opportunity to put these into practice. The course includes mandatory project work, where the student can practice independently within a team to solve a larger programming problem using introduced methods and techniques.
Supervision and consultation is provided for project work.
Grading scale
Examination formats
The examination consists of laboratory work in groups, written and oral presentation of project work in groups and individual written examination.
The course grade is given by the integer part of the average of the grades on the project and the written examination.
2501: Labs, 1.5 credits
Two-grade scale (UG): Fail (U), Pass (G)
2502: Project, 3 credits
Four-grade scale, digits (TH): Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
2503: Written Examination, 3 credits
Four-grade scale, digits (TH): Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Exceptions from the specified examination format
If there are special reasons, the examiner may make exceptions from the specified examination format and allow a student to be examined in another way. Special reasons can e.g. be study support for students with disabilities.
Course evaluation
Course evaluation is part of the course. This evaluation offers guidance in the future development and planning of the course. Course evaluations is documented and made available to the students.
Course literature and other materials
Literature list 2025-01-20 – Until further notice
*Horstmann, Cay. Object Oriented Design & Patterns. 3d edition. Wiley
Lecture material is available at the course web page.
* Electronic version available from the course teacher.