Difference between revisions of "Learning Resources"

From TeachingOpenSource
Line 25: Line 25:




=== Benefits to Student Involvement in Open Source (moving to Exploring 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 -- Move from Learning Resources===
The TeachingOpenSource community is here to help you get started supporting student participation in open source.
#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.
## To join, change your subscription options, or unsubscribe: [[tos@teachingopensource.org mailing list information page|http://lists.teachingopensource.org/mailman/listinfo/tos]].
## To see previous postings to the list: [[tos@teachingopensource.org archives|http://lists.teachingopensource.org/pipermail/tos/]]
# 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.
# Explore existing Learning Materials <link to this>
# Participate in events <link to events>


=== Instructor Success Stories ===
=== Instructor Success Stories ===

Revision as of 17:56, 21 October 2022


Looking for learning materials you can use in your course?

Picture of leaf avatar

Learning Activities

Find activities that can be used in courses. [Learn more....]

Picture of leaf avatar

Learning Modules

Explore how a subset of learning activities can be combined into a module. [Learn more....]

Picture of leaf avatar

HFOSS Courses

Explore complete courses. [Learn more....]


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