Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix typos and grammar mistakes in teaching.md #6216

Merged
merged 1 commit into from
Mar 30, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions docs/teaching.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# JabRef as Basis for Teaching Material

JabRef can be used as training object for software engineering.
JabRef can be used as a training object for software engineering.

As instructor, please follow this check list:
As an instructor, please follow this checklist:

1. Be aware that JabRef is run by volunteers. This implies that the development team cannot ensure to provide feedback on code within hours.
2. Be aware that from the first pull request to the final acceptance the typical time needed is two weeks.
3. Be aware that JabRef tries to achieve high code quality. This leads to code reviews requiring actions from the contributors. This also applies for code of students. Read on at our [Development Strategy](development-strategy.md) for more details.
4. Choose tasks from one of the folowing boards. Write a comment to each issue so that it can be reserved to your course.
4. Choose tasks from one of the following boards. Write a comment on each issue so that it can be reserved for your course.
- Feature Board: <https://github.com/JabRef/jabref/projects/7>
- Bug Board: <https://github.com/JabRef/jabref/projects/5>
5. Be aware that the difficuly of bugs and feature vary. A task should be chosen with care. The JabRef team can help here: The majority of the team has experiences in teaching
6. Get in touch with the JabRef team to discuss details. We offer email, skype, [gitter.im](https://gitter.im/JabRef/jabref), discort. Get in touch with [@koppor](https://github.com/koppor/) to find the right channel and to start forming the success of your course.
5. Be aware that the difficulty of bugs and feature vary. A task should be chosen with care. The JabRef team can help here: The majority of the team has experiences in teaching
6. Get in touch with the JabRef team to discuss details. We offer email, skype, [gitter.im](https://gitter.im/JabRef/jabref), discord. Get in touch with [@koppor](https://github.com/koppor/) to find the right channel and to start forming the success of your course.

For a near-to-perfect preparation and effect of the course, we ask you to get in touch with us **four weeks** in advance. Then, the JabRef team can a) learn about the starting skill level of the students, b) the aimed skill level at the end of the course, c) the amount of time the students are given to learn about and contribute to JabRef, d) check the [feature board](https://github.com/JabRef/jabref/projects/7) for appropriate tasks (and fill it as needed), e) recommend appropriate features.

It is also possible to just direct students to our [Contribution Guide](https://github.com/JabRef/jabref/blob/master/CONTRIBUTING.md#contributing-guide). The learning effect may be lower as time of the students has to be spend to a) learn about JabRef and b) select an appropriate issue.
It is also possible to just direct students to our [Contribution Guide](https://github.com/JabRef/jabref/blob/master/CONTRIBUTING.md#contributing-guide). The learning effect may be lower as the time of the students has to be spent to a) learn about JabRef and b) select an appropriate issue.

Since a huge fraction of software costs is spend on [software maintenance](https://en.wikipedia.org/wiki/Software_maintenance), adding new features also educates in that aspect: perfective maintenance<sup id="a1">[1](#LientzSwanson)</sup> is trained. When fixing bugs, corrective maintenance<sup>[1](#LientzSwanson)</sup> is trained.

Expand All @@ -29,17 +29,17 @@ The syntax is [BPMN](https://en.wikipedia.org/wiki/Business_Process_Model_and_No
[![process](images/contribution-process-reviews.svg)](images/contribution-process-reviews.svg)

In short, the contribution is **reviewed by two JabRef developers**.
Typically, they have constructive feedback on the contribution.
This means, that the contributors get comments on their contriubiton enabling them to level-up their coding skill.
Incorporating the improvments takes time, too.
The benifit is two fold: a) contributors improve their coding skills and b) JabRef's code quality improves.
All in all, we ask to respect the aims of the JabRef team and to reserve time to incorporate the reviewer's comemnts
Typically, they have constructive feedback on their contribution.
This means, that the contributors get comments on their contribution enabling them to level-up their coding skill.
Incorporating improvements takes time, too.
The benefit is two-fold: a) contributors improve their coding skills and b) JabRef's code quality improves.
All in all, we ask to respect the aims of the JabRef team and to reserve time to incorporate the reviewer's comments

## Process for Java newcomers

Newcomers are invited to follow the process described above.
In case the capacity of the instructing university allows, we propose a three step approach.
First the contributors prepare their contribution as usual.
In case the capacity of the instructing university allows, we propose a three-step approach.
First, the contributors prepare their contribution as usual.
Then, they submit the pull request *to a separate repository*.
There, the instructor reviews the pull request and provides feedback.
This happens in a loop until the instructor shows the green light.
Expand All @@ -58,7 +58,7 @@ This will help to reduce the load on the JabRef team and improve the quality of

Course: Open Source Software Development

- Summary: In this course, students will be introduced to the processes and tools specific to Open Source Software development, and they will analyze existing projects to understand the architecture and processes of these projects. In addition, students will attempt to contribute source code to a large existing Open Source Software project.
- Summary: In this course, students will be introduced to the processes and tools specific to Open Source Software development, and they will analyze existing projects to understand the architecture and processes of these projects. Besides, students will attempt to contribute source code to a large existing Open Source Software project.
- Course offered in 2018 and 2019. Examples of merged pull requests: [4217](https://github.com/JabRef/jabref/pull/4217), [4255](https://github.com/JabRef/jabref/pull/4255), [4227](https://github.com/JabRef/jabref/pull/4227), [4260](https://github.com/JabRef/jabref/pull/4260), [5150](https://github.com/JabRef/jabref/pull/5150)

#### Northern Arizona University (NAU), USA
Expand All @@ -77,9 +77,9 @@ Course [10915-01: Software Engineering](https://dmi.unibas.ch/de/studium/compute
- Lecture Materials: <https://github.com/unibas-marcelluethi/software-engineering>
- Successfully run Q3 2019.
- Excercise touching JabRef:
- General idea: identify a feature missing in JabRef and develop specification, system design, and implementiation of the feature.
- General idea: identify a feature missing in JabRef and develop the specification, system design, and implementation of the feature.
- Introduction to JabRef's code: [Exercise 5](https://github.com/unibas-marcelluethi/software-engineering/blob/master/docs/week5/exercises/practical-exercises.md): Introduction into JabRef code.
- Prominent feature implenented: Parse full text references using Grobid. PR [#5614](https://github.com/JabRef/jabref/pull/5614).
- Prominent feature implemented: Parse full-text references using Grobid. PR [#5614](https://github.com/JabRef/jabref/pull/5614).

#### University of Stuttgart, Germany

Expand All @@ -95,8 +95,8 @@ Course [Studienprojekt](https://www.f05.uni-stuttgart.de/informatik/studierende/

Course "Programming and Software Development" as part of the [BSc Software Engineering](https://www.uni-stuttgart.de/en/study/study-programs/Software-Engineering-B.Sc-00001./)

- Summary: One excersice to contribute a minor fix or feature to JabRef. Goal: learn contribution to an open source project using git and GitHub.
- Successfuly run in 2018
- Summary: One exercise to contribute a minor fix or feature to JabRef. Goal: learn contribution to an open-source project using git and GitHub.
- Successfully run in 2018

### Swedish

Expand All @@ -105,15 +105,15 @@ Course "Programming and Software Development" as part of the [BSc Software Engin
Course [DD2480 Software Engineering Fundamentals](https://www.kth.se/student/kurser/kurs/DD2480?l=en)

- Summary: Groups of students from three to five persons experienced the whole software engineering process within a week: From the requirements specification to the final pull request.
- Successfuly run in 2020
- Successfully run in 2020

### Portuguese

#### Federal University of Technology, Paraná, Brazil

Course [Open Source Software](https://github.com/igorsteinmacher/DSL-UTFPR)

- Summary: Students are requested to contribute to an Open Source project to learn about maintenance and evolution of software projects. This project is the predecessor of NAU's CS499.
- Summary: Students are requested to contribute to an Open Source project to learn about the maintenance and evolution of software projects. This project is the predecessor of NAU's CS499.
- Course offered from 2013 to 2016 with different names

## References
Expand Down