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.