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.
Participants will learn elementary programming language constructs and how to use them to write small computer programs.
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.