5039 - Object Oriented Programming with Java 1
Course information
Title
Object Oriented Programming with Java 1
Course number
5039.24
Academic year
2024-2025
ECTS
7.50
Level
Bachelor
Faculties
Science and Tecnology
Educations
BSc in Software Engineering, Diploma of Higher Education in Software Engineering
Prerequisites
• 5010 Introduction to Computer Science • 5037 Introductory programming with Python
Language of instruction
The course is taught in Danish and English.
Registration
Students on the 2nd semester of B.Sc. in Software Engineering and Diploma of Higher Education in Web Development are automatically enrolled. Applicants for an individual course must apply via the Student Affairs Office.
Beginning date
Monday, March 24, 2025
End date
Friday, May 30, 2025
Academic content
Purpose
Introduction to object-oriented concepts and programming with specification, design, implementation, and use of classes in Java. Focus is on the concept of classes and the use of objects. The students will also learn about the use of dynamic memory, references and recursion, and about typical abstract data types. UML will be introduced as a modelling language.
Learning outcomes
After course completion, the student should be able to: • Describe and use the most common tools in the Java Development Environment (Java Development Kit, JDK) • Explain the differences between the execution of conventional program and Java programs in the special Java environment. • Use basic Java, i.e., use variables, methods, classes, objects, exceptions, and simple list structures. • Describe the connection between the state of an object and its behaviour. • Describe class hierarchies and succession. • Apply polymorphism by class substitution. • Apply object-oriented programming concepts to solve specified problems. • Independently formulate tests for their own classes and associated methods. • Describe basic class design and the importance of maintaining high cohesion with weak dependencies. • Apply error and exception handling. • Describe the meaning of scalability. • Use iterations, recursion, method overloading and exception handling. • Create programs where the solution is divided into simple parts using classes and methods. • Define and implement classes and create corresponding class diagrams in UML. • Specify and implement an ordinary abstract data structure as a class and use it. • Use objects of other types as data members in a class. • Use references in practical programming and in relation to the use of dynamical memory. • Describe, analyse, and utilize differences and similarities between references (by reference) and values (by value). • Describe the difference between deep- and shallow copy and be able to change implementations in this context.
Content
• Object oriented concepts: classes, members, objects, attributes, references, operations, instance, inheritance, encapsulation, polymorphism, relations, etc. • Specification and implementation of classes in Java. • Control structures, streams, and file handling. • Abstraction and common interfaces. • IO-handling and exceptions. • Common iterations and recursive algorithms. • The students’ own implementations of algorithms for sorting and searching. • UML-diagrams for classes. • Testing using JUnit – unit tests and black/white box testing
Learning and teaching approaches
Lectures, assignment-work, as well as project-based self-studies and group work. There are mandatory assignments, which must be passed, to be eligible for the examination.
Assessment
Assessment method
Project with oral defence
Examination (internal/external)
External
Grading scale
7-scale
Exam date/dates
The examination hand-in is on the 30th of May, 2025. The oral examination is set for the 16th and 17th of June, 2025. The reexam is set for week 33-34, 2025.
Deadline for withdrawal from exam
Monday, March 24, 2025
Academic responsibility and teachers
Academic responsibility
Niels-Christian Borbjerg
Teachers
Niels-Christian Borbjerg
Back