Difference between revisions of "Learning Resources"

From TeachingOpenSource
(Created page with "=== Benefits to Student Involvement in Open Source === Students: * Are motivated to learn! * Gain a professional network * Get experience with a real, complex code base * Und...")
 
Line 28: Line 28:


=== Instructor Success Stories ===
=== Instructor Success Stories ===
=== Models for student learning within H/FOSS ===
There are multiple models for student  learning within Free and Open Source Software (FOSS) and Humanitarian FOSS (HFOSS) communities within an academic environment. These models range from introductory exercises to full courses.
==== Incorporate Activities into Existing Course ====


=== Resources ===
Course length: One semester or term
* Models for student learning within H/FOSS
 
* How to start contributing to or using Open Source Software
Student background: Varies from novice to advanced
 
Instructor background: Varies from novice to advanced
 
Approach: Instructors include one or more learning materials into an existing course. Some example learning activities include:
* Create a blog and reflect on learning as part of a CS0 or CS1 course
* Write a paper on the history of a FOSS person
* Do a User Interface evalatuion of an open source project
* Do a security evaluation of an open source project
 
==== Introductory Course ====
 
Course length: One semester or term
 
Student background: Students are assumed to be freshman or sophomores and may be non-majors. Students are assumed to enter the course with little or no computing background.
 
Instructor background: Instructor may have little or much software engineering experience.
 
Approach: The goal of this approach is two-fold: To familiarize students with the open source software world and to introduce students to basic programming concepts. Topics covered include:
* The Open Source movement
* History and background of OSS
* The humanitarian potential of OSS
* Sequential programming
* Decisions and loops in programming
* Functions and arrays
* Use of source code control systems and databases
 
This course is intended to engage student interest by exposing students to humanitarian OSS. Readings include articles like “The Cathedral and the Bazaar” and “The GNU Manifesto”. Emphasis is on understanding the role of humanitarian OSS while exposing students to introductory computing concepts.
 
Comments: The challenge of this approach is finding the balance between OSS and computing concepts.
 
==== Single Software Engineering Course (Novice) ====
 
Course length: One semester or term.
 
Student background: Students are assumed to be juniors or seniors in a computer science program. Students are assumed to have taken CS1, CS2 and a data structures course.
 
Instructor background: Instructor is a computer science professor who may not be familiar with software engineering.
 
Approach: Employ two iterations of a requirements-design-implement-test cycle within the semester. The first cycle uses a known and well-understood project, not necessarily open source. The second cycle has students make a small modification to a humanitarian FOSS project. . A small set of deliverables (requirements document, design document, implementation, test documentation) are used and no reviews are used. Tools such as source code management, IDEs, and databases are used. Comments: The use of two cycles allows both the instructor and the student to become familiar with a pared-down software lifecycle. The idea is that students will learn the lifecycle and expectations for deliverables during the first cycle, ameliorating the learning curve when they work on the humanitarian FOSS project for the second iteration of the lifecycle.
 
==== Single Software Engineering Course (Experienced) ====
 
Course length: One semester or term.
 
Student background: Students are assumed to be juniors or seniors in a computer science program. Students are assumed to have taken CS1, CS2 and a data structures course.
 
Instructor background: Instructor has software engineering experience and has taught software engineering courses in the past.
 
Approach: Employ one iteration of a launch-requirements-review-design-review-implement-test-document cycle within the semester. Tools such as source code management, IDEs, and databases are used.
 
Comments: As instructors become more experienced, a somewhat more document-heavy process may be employed. This approach uses a more complete set of deliverables than the Novice approach and incorporates reviews as well.
 
==== Capstone Process ====
 
Course length: Two or three semesters or terms.
 
Student background: Students are assumed to be seniors with extensive background in software development.
 
Instructor background: Instructor has software engineering background and has taught software engineering courses in the past.
 
Approach: Employ one or more iterations of a launch-requirements-review-design-review-implement-test-document cycle within or across the terms or semesters. Tools such as source code management, IDEs, and databases are used. Comments: The use of multiple terms or semesters combined with multiple iterations allows students to become very familiar with the project. This approach also has the potential to support enduring relationships between students and humanitarian FOSS organizations.
 
=== How to start contributing to or using Open Source Software ===

Revision as of 20:11, 11 November 2021

Benefits to Student Involvement in Open Source

Students:

  • Are motivated to learn!
  • Gain a professional network
  • Get experience with a real, complex code base
  • Understand how computing works in the real world
  • Learn professional skills such as communication, collaboration and critical thinking
  • Learn about open source software and culture

Open source projects:

  • Gain new contributors
  • Gain relationships with academia
  • Expand the use of open source

Getting Started

The TeachingOpenSource community is here to help you get started supporting student participation in open source.

  1. Join the mailing list - The TeachingOpenSource mailing list is the center of our community’s collaboration, and it’s where most of our discussion about Open Source educational models, support and funding schemes, community relationships, and other issues takes place.
    1. To join, change your subscription options, or unsubscribe: http://lists.teachingopensource.org/mailman/listinfo/tos.
    2. To see previous postings to the list: http://lists.teachingopensource.org/pipermail/tos/
  2. Introduce yourself - Once you’ve joined the mailing list, please send an email introducing yourself, what you do, what you are interested in, how you can help TeachingOpenSource, and how we can help you.
  3. Explore existing Learning Materials <link to this>
  4. Participate in events <link to events>

Learning Materials

This is a collection of learning materials and full courses <Link to learning materials.>

Instructor Success Stories

Models for student learning within H/FOSS

There are multiple models for student learning within Free and Open Source Software (FOSS) and Humanitarian FOSS (HFOSS) communities within an academic environment. These models range from introductory exercises to full courses.

Incorporate Activities into Existing Course

Course length: One semester or term

Student background: Varies from novice to advanced

Instructor background: Varies from novice to advanced

Approach: Instructors include one or more learning materials into an existing course. Some example learning activities include:

  • Create a blog and reflect on learning as part of a CS0 or CS1 course
  • Write a paper on the history of a FOSS person
  • Do a User Interface evalatuion of an open source project
  • Do a security evaluation of an open source project

Introductory Course

Course length: One semester or term

Student background: Students are assumed to be freshman or sophomores and may be non-majors. Students are assumed to enter the course with little or no computing background.

Instructor background: Instructor may have little or much software engineering experience.

Approach: The goal of this approach is two-fold: To familiarize students with the open source software world and to introduce students to basic programming concepts. Topics covered include:

  • The Open Source movement
  • History and background of OSS
  • The humanitarian potential of OSS
  • Sequential programming
  • Decisions and loops in programming
  • Functions and arrays
  • Use of source code control systems and databases

This course is intended to engage student interest by exposing students to humanitarian OSS. Readings include articles like “The Cathedral and the Bazaar” and “The GNU Manifesto”. Emphasis is on understanding the role of humanitarian OSS while exposing students to introductory computing concepts.

Comments: The challenge of this approach is finding the balance between OSS and computing concepts.

Single Software Engineering Course (Novice)

Course length: One semester or term.

Student background: Students are assumed to be juniors or seniors in a computer science program. Students are assumed to have taken CS1, CS2 and a data structures course.

Instructor background: Instructor is a computer science professor who may not be familiar with software engineering.

Approach: Employ two iterations of a requirements-design-implement-test cycle within the semester. The first cycle uses a known and well-understood project, not necessarily open source. The second cycle has students make a small modification to a humanitarian FOSS project. . A small set of deliverables (requirements document, design document, implementation, test documentation) are used and no reviews are used. Tools such as source code management, IDEs, and databases are used. Comments: The use of two cycles allows both the instructor and the student to become familiar with a pared-down software lifecycle. The idea is that students will learn the lifecycle and expectations for deliverables during the first cycle, ameliorating the learning curve when they work on the humanitarian FOSS project for the second iteration of the lifecycle.

Single Software Engineering Course (Experienced)

Course length: One semester or term.

Student background: Students are assumed to be juniors or seniors in a computer science program. Students are assumed to have taken CS1, CS2 and a data structures course.

Instructor background: Instructor has software engineering experience and has taught software engineering courses in the past.

Approach: Employ one iteration of a launch-requirements-review-design-review-implement-test-document cycle within the semester. Tools such as source code management, IDEs, and databases are used.

Comments: As instructors become more experienced, a somewhat more document-heavy process may be employed. This approach uses a more complete set of deliverables than the Novice approach and incorporates reviews as well.

Capstone Process

Course length: Two or three semesters or terms.

Student background: Students are assumed to be seniors with extensive background in software development.

Instructor background: Instructor has software engineering background and has taught software engineering courses in the past.

Approach: Employ one or more iterations of a launch-requirements-review-design-review-implement-test-document cycle within or across the terms or semesters. Tools such as source code management, IDEs, and databases are used. Comments: The use of multiple terms or semesters combined with multiple iterations allows students to become very familiar with the project. This approach also has the potential to support enduring relationships between students and humanitarian FOSS organizations.

How to start contributing to or using Open Source Software