5039.21 - Object Oriented Programming with Java 1


Course number
5039.21
Title
Object Oriented Programming with Java 1
ECTS
7.5
Prerequisites
Passed: - 5010.16 Introduction to Computer Science - 5037.20 Introductory programming with Python. Recommended passed: - 5016.20 Computer Networks and Data Communication
Purpose
Introduction to object oriented concepts and programming with specification, design, implementation and use of classes in C++. 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 modeling language.
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, Exceptions and Serialization. • Common iterations and recursive algorithms. • The students’ own implementations of algorithms for sorting and searching • UML-diagrams for classes, objects, activities and sequences. JVM – Java Virtual Machine & JIT Compiler– Just-In-Time Compiler
Learning and teaching approaches
Lectures, assignment-work, as well as project-based self studies and group work. A project report is mandatory and must be approved to be eligible for the oral examination in this course. Also, there are mandatory assignments, which must be passed, to be eligible for the examination. Attendance may be mandatory.
Learning outcomes
After course completion, the student should be able to: • Describe and use the 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 class hierarchies and succession. • Apply polymorphism by class substitution. • Apply object-oriented programming concepts to solve specified problems. • 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 classes and design the corresponding class diagram 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, analyze 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.
Assessment method
Written report with oral defense.
Examination
External
Marking scale
7-
Bibliography
Deitel & Deitel Java How to Program, Early Objects, Global Edition, Eleventh Edition, ISBN-10: 9781292223858; ISBN-13: 978-1292223858 And possibly online supplimental material.
Contact
Jari í Hjøllum