Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Course Description

The course description (da: kursusbeskrivelsen) is available in the course catalog.

Course Content

Participants will learn elementary programming language constructs and how to use them to write small computer programs.

Foundational: Understanding what a Java program is, how to compile it, and how to execute it. Reasoning about whether a program is well-formed and about its behavior.

Imperative Concepts: Writing simple methods using local variables, if-then-else, and for- and while loops. Writing simple data structures using plain objects and arrays.

Object-Oriented Concepts: Writing simple classes with encapsulated state, getters and setters, and using interfaces and inheritance.

Programming Techniques: Programming with common data structures, such as lists, sets, and maps. Applying basic debugging and testing techniques to understand how a program behaves. Manipulating the file system, including the creation, reading, and writing of files.

Learning Objectives

After the course, students will be able to:

  • Explain how to write a Java computer program, compile it, and execute it.
  • Use elementary imperative programming language constructs, including: primitive data types, local variables, assignment, arrays, if-then-else, and for- and while loops.
  • Use elementary object-oriented programming language constructs, including: classes, interfaces, objects, and methods.
  • Use common data structures such as lists, sets, and maps.
  • Identify, explain, and overcome compiler errors (e.g. syntax, semantic, or type errors).
  • Apply programming techniques to write small programs in imperative or object-oriented style.
  • Apply basic debugging and testing techniques to understand and correct program behavior.
  • Apply advanced programming features such as inheritance and generics.

Mandatory Hand-ins

Students must submit a total of 10 weekly assignments which must be approved.

The weekly assignments are individual, but students may work together in small groups.

Exam

The exam consists of two parts:

Part A: A take-home assignment: An individual take-home programming project. The exam is open-book, i.e. students may use all materials available except Generative AI. Students may discuss the project with each other, but may not share any source code.

Part B: A written exam: An individual written exam. The exam is closed-book, i.e. students may not use any materials. The scope of the written exam is the entire course syllabus plus the take-home programming project.

Assessment: One overall grade, weighted approximately equally between the take-home Assignment and the written Exam.

Re-exam

The re-exam consists of a 15-minute oral exam without preparation based on the course curriculum including the individual take-home programming project.

Generative AI

Students are not permitted to use Generative AI.