Logistics
Suggestion
Bookmark this page for easy access to all the information you need for the course.
Course structure
Each lecture contains material on physics, numerics, and technical concepts, as well as exercises. The lecture content is outlined in its introduction using the following items for each type of content:
- 📚 Physics: equations, discretisation, implementation, solver, visualisation
- 💻 Code: technical, Julia, GitHub
- 🚧 Exercises
The course will be taught in a “flipped classroom” fashion: you will study the lecture materials at home, and in the classroom you will work on hands-on exercises and participate in group discussions.
Lectures
- Tuesdays 12h45-15h30 in HCI E8.
Discussion
We use Element as the main channel for communication between the teachers and the students, and hopefully also between students. We encourage ETH students to ask and answer questions related to the course, exercises and projects there.
Head to the Element chat link on Moodle to get started with Element:
- Select Start Student-Chat
- Log in using your NETHZ credentials to start using the browser-based client
- Join the General and Helpdesk rooms
- Download the desktop or mobile client for more convenient access or in case of encryption-related issues
Homework and submission
Before each class, study the assigned lecture materials and post questions in the Element chat. During class, you will work on exercises and submit them in two steps:
- At the end of class, you will submit your current progress on Moodle. It doesn’t have to be complete, but it should be a reasonable draft of the solution. This submission won’t be graded, but we will check which exercises you worked on during class.
- Before 23:59 on Wednesday following the lecture, you will submit the final version of the code. This submission will be graded, but we will only assign points to exercises showing sufficient state of progress in the end-of-class submission:
- The exercise should be submitted by the end of class
- The submission should conain the skeleton of correct solution (> 50% of tasks completed)
- Missing visualisation and minor code bugs are acceptable in the end-of-class submission
Submit Pluto notebooks on Moodle for weeks 1 and 2. From week 3 onwards, develop your solutions in your private course GitHub repository and submit both the final commit hash (SHA) and the pull request URL on Moodle.
Private GitHub repository setup
Once you have your GitHub account ready (see lecture 2 how-to), create a private repository you will share with the teaching staff only to upload your weekly assignments:
- Within the pdes-on-gpus-julia-course organisation, create a private GitHub repository named
pde-on-gpu-<moodleprofilename>, where<moodleprofilename>has to be replaced by your name as displayed on Moodle, lowercase, diacritics removed, spacing replaced with hyphens (-). For example, if your Moodle profile name is “Joël Désirée van der Linde”, your repository should be namedpde-on-gpu-joel-desiree-van-der-linde. - Select the
MIT Licenseand add aREADME.mdfile. - For each homework submission, you will:
- create a Git branch named
homework-X(X \(\in [2-...]\)) and switch to that branch (git switch -c homework-X); - create a new folder named
homework-Xto put the exercise code into; - (don’t forget to
git addthe code files andgit committhem); - push to GitHub and open a pull request (PR) targeting the
mainbranch on GitHub; - copy the single Git commit hash (SHA) after the final push and the link to the PR and submit both on Moodle as the assignment hand-in (this will allow us to verify that the material was pushed on time);
- (do not merge the PR yet).
- create a Git branch named
Warn
Keep the repository lightweight: include the homework folders, README.md, license, and required configuration files; exclude large outputs.
Note
For homework 3 and later, the respective folders on GitHub should be Julia projects and thus must contain a Project.toml file. The Manifest.toml file should be excluded from version control. To do so, add it as an entry to a .gitignore file in the root of your repo. Mac users may also add .DS_Store to their global .gitignore. Code could be placed in a scripts/ folder. Output material to be displayed in the README.md could be placed in a docs/ folder.
Feedback
After the submission deadline, we will review and grade your assignments. You will get personal feedback directly on the PR as well as on Moodle. Once you have received feedback, please merge the PR. We will try to correct your assignments before the lecture following the homework’s deadline.
Final project
🚧 Under construction.
Evaluation
Enrolled ETHZ students will have to hand in on Moodle and GitHub:
- Nine weekly assignments during the course constitute 35% of the final grade. The lowest grade will be dropped.
- A project developed during the course constitutes 65% of the final grade.
Project submission includes code in a GitHub repository and automatically generated documentation.
The use of large language models (LLMs)
Warning
We will probably adjust these guidelines as the course develops
- LLMs can be very helpful, but using them during class or to write your final project can prevent you from developing the skills the course is designed to teach.
- No “vibe coding”, instead, use LLMs as a tutor.
- We require that you understand all the numerical code that you write and hand in as homework. You are fully responsible for your code and results.
- Your final project repository must include a section in the README stating which AI tools were used, for which tasks, and how they contributed to the project.
Tip
Read these materials if you’re interested in responsible use of LLMs:
