Official course description:

Full info last published 4/07-19
Course info
ECTS points:
Course code:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
MSc. Master
MSc in Software Design
Course manager
Associate Professor
Part-time Lecturer
Course semester
Efterår 2019
26 August 2019
31 January 2020
Exam type
ekstern censur
Grade Scale
Exam Language

This course teaches the basics of Java programming, enabling you to work practically in a modern high-level language


Computers operate under the hood by following programs: sequences of instructions of what to do, along the lines of “add 7 to this variable”, “write on the screen”, “proceed this way if x is 7, this other way otherwise”. Programs exist at all levels of abstractions, from the very low-level and verbose assembly language understood by hardware, over the concise and powerful high-level languages used by modern programmers, to domain-specific languages used in special-purpose situations.

This course teaches the basics of Java programming, enabling you to work practically in a modern high-level language.

Object Oriented analysis, design, and implementation Programming in Java:
classes, objects, methods, fields, variables, simple types, expressions, statements, declarations, conditionals, lazy evaluation, repetition, recursion, class libraries, regular expressions collections, arrays, simple graphical user interface, static vs dynamic typing, virtual dispatching, generic types, class design, abstract classes, interfaces, encapsulation, test and documentation, file input/output, exceptions.

Formal prerequisites
You should be able to use your computer to send e-mails, browse the web, install new software. You don't need any programming experience to take this course. The course is only open to ITU MSc Software Development - Software Design students.
Intended learning outcomes

After the course, the student should be able to:

  • Apply basic programming constructs in Java.
  • Explain basic programming constructs in Java.
  • Analyze a problem description, with the intent of implementing a solution.
  • Design a system based on an analysis.
  • Implement a system based on a design.
  • Test a system and evaluate to what degree the tests cover the system.
Learning activities

The first two thirds of the semester will mainly consist of lectures and exercises. In the final third of the semester, all students must do a programming project. Therefore, teaching will gradually gain more character from project work and guidance. In the first part of the semester, live coding exercises are also included, which are sessions where practical coding is illustrated based on student needs and what the teachers consider necessary.

Mandatory activities
7 out of 10 weekly assignments must be approved, as well as 2 out of 2 on-line programming assignments (on-site, closed book) must be approved to be eligible for the exam. 

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

David J. Barnes & Michael Kölling
Objects First with Java - A Practical Introduction using BlueJ
Sixth Edition, Pearson, 2016
ISBN (Global Edition): 978-1-292-15904-1

Ordinary exam
Exam type:
D: Submission of written work with following oral, external (7-trinsskala)
Exam variation:
D2G: Submission of written work for groups with following oral exam supplemented by the work submitted. The group has a shared responsibility for the content of the report.
Exam description:

Mixed 1

Duration 30: minutes per student

Group size: 3-4 students

Hand-in: Programming project consisting of code and report. Detailed information will be available in learnIT.

Exam type:
Z. To be decided, - (-)

Time and date