Module 0: Overview of the Course and Assessment#
Here is an overview of what you will learn during this course, how the course is organised, which tools we will use, and how you will be assessed. You can also find instructions on how to use DTU Autolab for the weekly assessments.
Objectives of the Course#
You will learn fundamental concepts and techniques of programming, and you will be able to design and implement programs of moderate size and complexity.
There are many programming techniques and program design approaches, and new ones are developed over time. In this course, we will focus on imperative and object-oriented programming, using a programming language with wide industrial adoption: Java. You will encounter many other programming approaches and languages during your career as a student and in industry — and you will need to adapt what you learn in this course to new scenarios.
Course Organisation and Learning Materials#
Lectures and Labs#
Most sessions of the course will consist of a lecture followed by a lab. The lecture will present new topics and contents. During the lab, you can work on the weekly assessments or on other exercises.
Important
You will need to bring your laptop to the lectures and labs.
The lectures and labs will take place in the DTU campus in Lyngby, and they will be also recorded. For details on the classrooms and how to access the recordings, please see the course home page on DTU Learn: https://learn.inside.dtu.dk/d2l/home/215298
During the course there will be various lab days: in those days no new content will be introduced — instead, you will be given programming exercises to strengthen your programming skills and your understanding of the course topics.
Lecture Notes#
These lecture notes reflect and expand upon the topics presented during the Lectures and Labs: their main focus is the hands-on, problem-driven learning of key programming concepts. The suggestion is, for each module of the course:
if you can, read the lecture notes of a module before the module’s lecture and lab, and prepare questions on any unclear aspect;
then, attend the lecture, ask questions, and study in more depth the corresponding lecture notes and solve the corresponding assignments;
then, continue with the module’s References and Further Readings: they list the relevant and recommended sections of the Reference Book (or other resources) where you can find more details, examples, in-depth discussion, and exercises.
Reference Book#
These lecture notes will often refer to the following book:
John Lewis and William Loftus. Java Software Solutions (9th edition). Pearson Education, Jan 2018. ISBN: 9781292221724
The source code of all programs mentioned in the book is available here:
Lewis and Loftus Java Software Solutions - source code.zip
Note
You can use this link to buy the book with a 10% discount.
Help During the Labs and on DTU Learn#
During the labs and lab days, the teacher and TAs will be available for questions and help.
Outside the labs, you can ask questions on the discussion forum available on the course home page on DTU Learn.
Important
There is a course team on MS Teams that you can use to contact other students and create channels for discussion and collaboration.
If you ask questions on MS Teams, you may get an answer from the teacher or TAs — but do not expect them to be always available! To get help outside lectures and labs, you should use the discussion forum on DTU Learn (see above).
Besides, you are welcome (and encouraged!) to use MS Teams and/or the discussion forum on DTU Learn to interact with your fellow students and answer their questions!
Software Used During the Course#
During the course we will use the Java Development Kit (JDK) version 21 and we will often work on a terminal. It is also recommended to install Visual Studio Code (a.k.a. “VS Code”). Please follow the instructions below to install the required software, depending on your operating system.
Important
The recommended version of the JDK is 21. If you have a more recent version already installed on your computer, it should work — but in case of problems, you may want to try version 21.
After the installation of VS Code, you may be asked to install some extensions for Java. However, the recommendation is: please do not install any Java extension for VS Code until the teacher asks you to do so. We will address those extensions later in the course.
After you install the required software on your computer, you can check whether everything works by trying a demo assessment.
To install the JDK version 21, please follow these instructions.
To install VS Code, please follow these instructions.
Please also install Git for Windows, which includes a terminal program that we will use during the course (Git Bash).
Note
When installing Git for Windows, the installer will show a long series of dialogs allowing you to customise various options (as shown in this installation guide). You can just accept the default configuration by clicking “Next” until the installation ends.
To install the JDK version 21 (or later), please follow these instructions. Alternatively, you may install a package manager like Homebrew and then use it to install OpenJDK 21 (or later).
To install VS Code, please follow these instructions.
To install the JDK version 21, open a terminal (by pressing Ctrl
+Alt
+T
)
and execute:
sudo apt install openjdk-21-jdk
To install VS Code, please download the .deb
package from
https://code.visualstudio.com/ and then
install it.
Assessment#
The course assessment has two components.
Weekly assessments. They are not strictly mandatory but highly recommended for training your programming skills, and preparing towards the final written exam (see below). If you solve the weekly assessments and submit them by their due date on DTU Autolab, you will get a bonus score on your final grade.
Final written exam (4 hours). This is the main assessment of the course. During the written exam you will need to solve a series of programming tasks on your computer; the programming tasks will be similar to the weekly assessments.
The final grade of the course is based on the result of the final written exam. In addition, the bonus score given by the weekly assessments can boost the final grade by up to 20%.
Warning
The final written exam will be with all aids allowed, so you can bring, e.g., a copy of these lecture notes, or your own notes, or solutions to past exercises… However, the exam will be without internet access and the use of AI tools (such as ChatGPT) will be forbidden. To prepare for the written exam, you should aim at solving the weekly assignments by yourself, without the help of ChatGPT or similar tools.
In principle, you can pass the course (and even aim at the highest grade) even if you do not solve and submit the weekly assessments. Although possible, taking this path is risky and not recommended! The recommendation is to solve the weekly assessments, and ask for help if you encounter difficulties or something is unclear.
Using DTU Autolab for the Weekly Assessments#
During the course, the weekly assessments will be available on DTU Autolab. This section explains how to use Autolab with a demo assessment and how to monitor your scores on the Gradebook.
Demo Assessment#
To see how Autolab works and how it is used in this course, please follow the instructions below.
Important
If you have not logged on DTU Autolab before, you must first set up your password for accessing DTU Autolab. Please go to https://autolab.compute.dtu.dk/auth/users/password/new, write your DTU student email address (
sXXXXXX@student.dtu.dk
), and click on “Send me reset password instructions.”If you have trouble resetting your password, make sure you are using your email address
sXXXXXX@student.dtu.dk
— and notsXXXXXX@dtu.dk
!
Log on https://autolab.compute.dtu.dk/ using your DTU student email address (
sXXXXXX@student.dtu.dk
).If you have trouble logging in, make sure you are using your email address
sXXXXXX@student.dtu.dk
— and notsXXXXXX@dtu.dk
!
Go to the Autolab page for this course: https://autolab.compute.dtu.dk/courses/02312-E24. (If you cannot access the course page, please contact the teacher)
You will see a series of “Assessments”: look under “Module 00”, and click on “00 - Using Autolab”.
You will now see the webpage for downloading the handout of the assessment called “00 - Using Autolab” and for submitting your solution. On the left of the webpage there are some “Options”: click on “Download handout”. This will let you download a zip file containing a demo assessment. You will need to unzip the file (i.e. extract its contents) by following the instructions below (depending on your operating system).
Please follow these instructions.
Please follow these instructions.
Please follow these instructions.
After the extraction of the zip file, you will see a new folder called
m00a00autolab
that contains the materials for the demo assessment “00 - Using Autolab”. This is just a demo, so you have nothing to solve — but you can use this demo assessment to check whether your computer is correctly configured and ready to use for this course.Important
The following instructions will only work if you have already installed the software required for the course. If you have not done it yet, you can jump to point 6 below.
Open a terminal inside the folder
m00a00autolab
by following the instructions below (depending on your operating system).Please follow these instructions (look for the section “Open Git Bash directly in the folder”).
Please follow these instructions.
Please follow these instructions.
When the terminal starts, write:
./grade
and press
⏎
(return key): this will start the execution of various checks. When the checks are completed, the summary should report 0 failed checks and 100% correctness.
The folder
m00a00autolab
(obtained by extracting the zip file at point 4 above) contains a file calledAutolabTest.java
: it is the solution of this demo assessment. Submit that file by following these steps:drag the file
AutolabTest.java
on the webpage for the assessment “00 - Using Autolab” (that we reached at point 3 above), and drop it in the area that says “Drag a file here to hand in”;tick the checkbox “I affirm that I have complied with this course’s academic integrity policy…”;
click “Submit”.
You will now see a webpage that confirms your submission. Autolab will evaluate your submission and report the result with a “Correctness” score. If the result is not immediately available, you can click on “View autograding progress.” After the Correctness score of the submission is computed, you can click on it to see more details.
Note
The Correctness score reported by Autolab for this assessment should be the same reported on your computer at point 5 above, after running the
./grade
command on the terminal.
You can repeat the procedure above and submit AutolabTest.java
as many times
as you wish, until the assessment due date has passed.
Tip
If you have installed the
software required for the course you can can try
modifying the file AutolabTest.java
. You can open the file in VS Code by
running on the terminal:
code AutolabTest.java
Note
If VS Code suggests you to install some “Java extensions,” please ignore it.
You can then edit the file and observe the effect of your changes by saving the
file (by pressing Ctrl
+S
or ⌘
+S
) and re-running ./grade
: some checks
may fail and, as a result, the Correctness score may decrease.
Monitoring Your Scores on the Gradebook#
You can see a summary of the weekly assessments and their Correctness scores on the Autolab Gradebook: you can find a link on top of every Autolab webpage.
Important
The score of an assessment will appear on the Gradebook only after the assessment due date has passed.
Meanwhile, if you click on the name of an assessment on the Gradebook, you will find the assessment’s “Submission Summary” with the Correctness score of each submission. The score of the latest submission will appear on the Gradebook after the assessment due date has passed.