Skip to content

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:

The GitHub notifications button

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

GitHub notifications

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:

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':

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?

Editing a file

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

The file is created

View the file.

How do I do this?

Click on the file:

Click on the file

You will now see the rendered file:

View 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:

Click on 'View raw'

You will now see the raw file:

View 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)

VS Code terminal

Before we continue we need to configure Git

Attention

  • Start VS Code
This should have been done already

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_formalisms
  • cd Programming_formalisms
  • In GitHub, locate the Code button, select SSH and click the copy symbol to the right
  • Back in your terminal type git clone followed by pasting the copied text.
  • The result shall look something like this:
git clone git@github.com:programming-formalisms/programming_formalisms_project_summer_2026.git

What just happened?

  • cd the 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!