Project introduction¶
Learning outcomes
Learners ...
- understand what the project is about
- understand why the course project is set up as such
- are a collaborator of the course project's GitHub repository
- can modify the content of the course project's GitHub repository from GitHub
For teachers
Prior:
- You work together with someone. How would you set up the project?
- What is GitHub?
- What is a GitHub repository?
- What is a GitHub issue?
- What is a Markdown?
- What is a Markdown file?
- What do we mean when we say 'This shows the rendered file'?
Why we set up the project as such¶
This project
The research project¶
You discovered data from the paper [Bergström and Moberg, 2002],
where the average temperature is measured on a daily basis
since 1772 (yes, year seventeen-hundred-and-twenty-two)
in Uppsala.
You want to use this simple data set for a toy project to practice software development with.
Exercises¶
Exercise 1: become member of the course project¶
Login to GitHub.
I don't have a GitHub account?
It is a course prerequisite to have a GitHub account.
If you forgot, then now is the time to make a (free) GitHub account
Share your GitHub name at this issue
What happens then?
The teachers will make you a member of the learners' project
Exercise 2: take a look at the project data¶
In this exercise, we'll take a look at the project data files
that are the result of research described in [Bergström and Moberg, 2002].
The data files can be found in
the data of the learners project.
Take a look at the file uppsala_tm_1722-2022.dat.
What is the purpose of this file?
Answer
This is a metadata file: it describes the data
Take a look at the file uppsala_tm_1722-2022.txt.
What is the purpose of this file?
Answer
This file contains the actual data.
How would you describe the content of these files together?
Answer
These files describe the average daily temperature in Uppsala.
Exercise 3: share your hypothesis to test¶
Read the research project.
In a file, write down one or more hypotheses one could test with that data.
I cannot come up with a hypothesis
Sure, here are some:
Example hypothesis 1
Does the yearly average temperate increase over time?
Example hypothesis 2
Does the different between yearly minimum and maximum temperature increase over time?
Example hypothesis 3
Can daily temperatures be approximated by a (co)sine function?
Example hypothesis 4
Is the day with the least amount of sun (i.e. winter soltice, December 21st) the coldest day of the year?
Is the day with the most amount of sun (i.e. summer soltice, June 21st) the warmest day of the year?
Example hypothesis 5
Have the dates for the coldest and warmest day of the year moved in time?
Does it matter what kind of file?
No. A Word document is fine, a plain-text file is fine too.
Check your email for a GitHub invitation to the course project, or find this message in the GitHub notifications. Accept the invitation. Welcome to the project!
Where are the GitHub notifications?
These are at the top-right of your GitHub pages:

Click on it and your will see your GitHub notifications, which will look similar to this:

In the course repository website,
navigate into the learners folder.
How do I do this?
To navigate into the learners folder, click on the text learners:

In the course repository website, create a new file.
How do I do this?
At the top-left, click on 'Add file | Create new file':

Huh? I am not allowed to do this...?
You did not yet accept the GitHub invitation to this project. Take a closer look at the previous step. Else, notify a teacher.
In the editor:
- name the file
[your_name].md, e.g.sven.md - copy-paste your hypotheses to this file
When done, click on the 'Commit' button
How does this look like?

Check if your file has been created.
How do I check this?
There are two indications:
- The so-called 'commit message' shows above the files in the folder
- In the folder, you can see the file's name

View the file.
How do I do this?
Click on the file:

You will now see the rendered file:

You now see the rendered file. It may look different than the text you copy-pasted. However, your text is absolutely there as you have copy-pasted it. To view the file in its original form, view the file in its raw form.
How do I do this?
Click on the file:

You will now see the raw file:

(optional) Exercise 4: unwatch the learners project¶
When being added to a GitHub repository, it is assumed you want to be informed on any event, e.g. when the code breaks or when you are mentioned.
You will receive an email for every such event.
To prevent this, follow this course material on changing your 'Watch' settings.
(optional) Exercise 5: explore the learners project¶
Explore the learners' project GitHub repository. Where can you find the things below?
The folder to put documentation
Answer
The docs folder.
This is a standard and standarized name for documentation.
The folder for the learners to put their notes
Answer
The learners folder.
Us teachers picked this name.
The folder to put code.
Answer
The src folder.
This is a standard and standarized name for source code.
The folder to put tests.
Answer
The tests folder.
This is a standard and standarized name for a folder that contains code to assure everything works as it should.
The folder containing the scripts to work on the project.
Answer
The scripts folder.
Us teachers picked this name.
The folder containing the GitHub Actions scripts
Answer
The .github/worksflows folder.
This is the standarized name used by GitHub
The folder containing the GitHub Actions scripts
References¶
[Perez-Riverol et al., 2016]Perez-Riverol, Yasset, et al. "Ten simple rules for taking advantage of Git and GitHub." PLoS computational biology 12.7 (2016): e1004947. Paper homepage
[Bergström and Moberg, 2002]Bergström, Hans, and Anders Moberg. "Daily air temperature and pressure series for Uppsala (1722–1998)." Climatic change 53.1 (2002): 213-252. Paper homepage
Old¶
VS Code terminal¶
- We will work as much as possible (almost) in the VS Code graphical interface for Git
-
However, some things are better (or only) handled from a terminal/command line.
-
You find the Git Bash terminal From the menu (different on mac and windows)

Before we continue we need to configure Git¶
Attention
- Start VS Code
This should have been done already
- We hope also that you have already done these steps at the 'Prerequisites' page of this course
Get a local clone of the project¶
Exercise 2a: clone course project using VS code (4 min)
- Start VS code
-
Start new window
-
In GitHub, locate the Code button, select SSH and click the copy symbol to the right
Where is this?
https://github.com/programming-formalisms/programming_formalisms_project_summer_2026
How will the address to clone look like?
https://github.com/programming-formalisms/programming_formalisms_project_autunr_2025.git
- In VS code: Clone Git repository
- The repo may show up automatically if you are already part of the project. Then click it.
- Otherwise paste the copied URL
- Open folder where you want to have your project
- Create a new one if necessary in the "Open folder File explorer"
- Select as Repository Destination
Exercise 2b: (Alternative with command line) clone course project and create folders (4 min)
- You may want to create a directory on your computer for this course.
- You can do it in the normal way or use your terminal, like this, in a good place (like "Courses" if you have that)
mkdir Programming_formalismscd Programming_formalisms- In GitHub, locate the Code button, select SSH and click the copy symbol to the right
- Back in your terminal type
git clonefollowed by pasting the copied text. - The result shall look something like this:
What just happened?
cdthe new directory that was created- list the files with
ls
Summary
- You should now hopefully be connected to the project and have a local copy of it!