Unverified Commit 6376af95 authored by Alexander Zgabur's avatar Alexander Zgabur 🎶
Browse files

chore(course) Update readme to be a stub for Spring 2026

parent 4df95d75
Loading
Loading
Loading
Loading
+11 −194
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ experience in our jobs every day.
## Lectors
* 2022-2023: Irina Gulina (Principal Software Quality Engineer)
* 2022-2025: [Tomáš Tomeček](https://github.com/TomasTomecek) (Senior Principal Software Engineer)
* 2024-2025: Michal Hečko (Software Engineer)
* 2024-2026: Michal Hečko (Software Engineer)

You can learn more about this course in an interview with the lectors: [Red Hat
Research: Mastering Git with university
@@ -34,19 +34,19 @@ students](https://research.redhat.com/blog/2023/02/28/mastering-git-with-univers
And another interview with students:
[Intern Spotlight: Red Hat course helps students unleash the power of Git](https://research.redhat.com/blog/2023/09/11/intern-spotlight-red-hat-course-helps-students-unleash-the-power-of-git/)

## Spring 2025 edition
We are teaching this course in the Spring of 2025 at FI MUNI Brno as part of PV177
Laboratory of Advanced Network Technologies.

# Spring 2026 edition
We are teaching this course in the Spring of 2026 at FI MUNI Brno as part of PB173 Domain Specific Development.

The course is open to all students: Bc, Mgr and PhD.

We have one seminar group open.

**IS course info**: https://is.muni.cz/predmet/fi/jaro2025/PV177  
**Lecture time**: Tuesday 14:00-16:00  
**Lecture room**: FI MU S505 Red Hat lab at Faculty of Informatics, Masaryk University (S505, note that the room is only available during lecture time)  
**Grading**: successfully complete 5 mandatory homeworks, or 4/5 homeworks plus a bonus task  
**ECTS Credits**: 2  
* **IS course info**: https://is.muni.cz/predmet/fi/jaro2026/PV173
* **Lecture time**: TBA 
* **Lecture room**: FI MU S505 Red Hat lab at Faculty of Informatics, Masaryk University (S505, note that the room is only available during lecture time)  
* **Grading**: TBA 
* **ECTS Credits**: 3

## Prerequisites
* Be comfortable in a command-line environment.
@@ -56,198 +56,15 @@ We have one seminar group open.

## Homeworks

Homeworks are outdated and will be improved in the coming weeks.
TBA

### Requirements after first class

* Fork this repository
* Upload SSH keys to your account


### Class 2 homework

**Deadline**: 11. March 2025, 23:59

* Create a new file in `class2_homework/` subdirectory of this repository with
  a name `<UCO>.txt`. Write in this file what you'd like to see covered in the
  course or a suggest a topic for the last class.
* Commit the change.
* Push the change to your fork, **not** to the main branch (Hint: imagine a
  merge request would be a next step).
* After you've done all of the above, save your command history, especially all
  `git` binary invocations. Put the history in a new file `<UCO>_commands.txt`
  and place it in the same directory and the same branch, commit it and push
  it. We want to see how you use git so we're sure we're teaching effectively.
  This is how the directory should look after you're done:
```bash
$ tree class2_homework/
 class2_homework
 ├── 255490_commands.txt
 └── 255490.txt

 1 directory, 2 files

$ cat class2_homework/255490_commands.txt
git foo
git bar
baz
```


### Class 3 homework

**Deadline**: 18. March 2025, 23:59

The outcome of class 3 homework will be a merge request in this repository.
It's similar as class 2 homework, except we want a merge request this time and
it needs to be merged.

- Create a new file in `class3_homework/` subdirectory of this repository with
  a name `<UCO>.txt`. Tell us what you've learnt so far that was previously
  unclear to you.
- Make sure the merge request *complies with all the best practices* from the
  class.
- You have to create the merge request in this upstream repository.
  **Merge requests in forks (origin remote) will be ignored.**
- Michal and Tomas will review all upstream merge requests: you may be asked to
  correct something.
- Your merge request needs to be merged to pass this homework.
- After you've done all of the above, save your command history, especially all
  `git` binary invocations. Put the history in a new file `<UCO>_commands.txt`
  and place it in the same directory and the same branch, commit it and push
  it. We want to see how you use git so we're sure we're teaching well.
- If you are asked to change something, you don't need to update the commands
  file.


### Class 4 homework

**Deadline**: 25. March 2025, 23:59

Resolving merge conflicts is fun, right? Let's do some of that.

We have an old outdated branch in this upstream repository that someone worked
on long time ago. There are some valuable changes in there, while some content
is likely outdated.

**Task**: rebase `upstream/class4-hw-problem` against `upstream/main-mar-3`.
Create a merge request against `upstream/main-mar-3` from your fork from branch
`class4-hw-problem` with your proposal. You'll pass this HW once your MR is
approved.

- There will be merge conflicts in README.md and it's up to you to resolve
  them. Use your best judgement to pick changes you like and discard those that
  are outdated. There is no best solution here, we will review all MRs individually.
- Make sure there are **NO** merge conflict artifacts in your MR (such as `+<<<<<<< HEAD`).
- You have to create the merge request in this upstream repository. Merge
  requests in forks (origin remote) will be ignored.
- Make sure the merge request complies with all the best practices from the class.
- Don't worry about who is the author of the commit.
- After you're done with the rebase process, save your command history,
  especially all `git` binary invocations. Put the history in a new file
  `<UCO>_commands.txt` inside `class4_homework/` directory.  Commit and push
  the file into the MR. If you are asked to change something, no need to
  account for these commands in the history file.
- Tomas and Michal will review all upstream merge requests: you may be asked to
  correct something.

### Class 5 homework

**Deadline**: 1. April 2025, 23:59

- Pair with any student from your class.
- There are 2 tasks for this homework, one of you will do the one on branch `hw05-task1`, the other `hw05-task2`.

#### Scenario
We have a fancy recipe we want to cook but the text is not finished. Two cooks
tried to complete it in their own git branches, but left a mess in their git
history. Please help them out.
1. Use `git rebase -i` to tidy the history and improve commit messages
2. Make sure rebases and merge conflicts are solved properly.
3. The commit history follows best practices from the class.
4. The content of the commits follows best practices from the class.

Your task is to pick either `hw05-task1` branch or `hw05-task2`, fix it, open a
merge request against branch `hw05-base` and let your partner review it. You
can create those merge requests on this upstream repo. If you choose your
forks, please email us links to those merge requests.

Successful solution of this homework requires approval from your partner and
from a teacher. Your partner can ask you to do changes in the MR!


### Class 6 homework

**Deadline**: 8. April 2025, 23:59

We'll have a small quiz. Use this upstream repository for all the answers.

1. How many commits were merged into the main branch between March 1st and March 25th 2025?
2. Who authored commit “add bonus task info in README.md”?
3. Find one commit that you think should have a better title or body and tell us how and why?
4. Using the `^`, `~` syntax, your task is to navigate from commit 069847a71c85fa041e129241dc2a0da135848ebd to ae995559587c337cc9068b7fb41a9038ce131f3a.
5. How many unique contributors the repository has at March 23rd?
6. Which command can produce this output?
  ```
   M README.md
   M class2_homework/255490.txt
   D labs/lab1.md
   D labs/lab1.solution.md
   D labs/lab2.md
   D labs/lab2.solution.md
   D labs/lab3.md
   D labs/lab3.solution.md
   D labs/lab4.md
  ```
7. Which commit added this line?
  `**Grading**: successfully complete 5 mandatory homeworks, or 4/5 homeworks plus a bonus task`

#### How to submit this homework?
- Name your branch `class6-homework`.
- Push a single commit with answers in your fork of mastering-git in a text file `<UCO>.txt` in `class6_homework/` directory.
- Do NOT create an MR (not a mistake though).
- For every question, send us all commands you ran to find out the answer.
The `<UCO>.txt` file syntax:
```
# Question 1
command 1
command 2
Answer/Text comment
---
# Question 2
command 2
Answer
---
Question 3
...
```

Example:
```
$ cat class6_homework/123456.txt
# Question 1
git foo
git --bar
42
---
Question 2
...
```


### Bonus Task

Make a contribution to an Open Source project of your choice which doesn't have any relation to MUNI and not started/owned by you. Another requirement - it should be meaningful, introduce a positive change. Contributions like "This project is to practice your git skills. Add your name to this file and we will merge it." won't be counted. To find projects to contribute for example please look at: 

* [First Timers Only](https://www.firsttimersonly.com/)
* [10 C++ open source projects welcoming contributions](https://blog.codacy.com/10-cpp-open-source-projects/)
* [Contributions-welcome topics on GitHub](https://github.com/topics/contributions-welcome)
* [Hacktoberfest - 10th anniversary](https://hacktoberfest.com/). Check on [participation info](https://hacktoberfest.com/participation/)

It's ok if a PR/MR is open, but not merged yet by the deadline time. Add a `<UCO>.txt` file into `bonus_task` directory which contains a link to you contribution and maybe some words about it - anything you want to share about it. 

## Sylabus
(This will be polished during summer 2023 and will include materials)
**To be updated / confirmed**

* Introduction of this course, organization, motivation, intro to VCS and git
  * How did developers manage code before version control and why was it bad?