|Material Type||Title||Overview||Courses||FOSS Area||Tags||Source|
|Template for Free and Open-Source Software Course||CS1/CS2/Data Structures, Software Engineering & Process||Coding & Style, Culture/Intellectual Property, Documentation, Philosophy/Politics, Specification & Design, Tools & Communication, Use & Evaluate||course template,|
|CSCI 462 & CITA 495 & DATA 495||Software Engineering & Process||Coding & Style, Culture/Intellectual Property, Documentation, Specification & Design||Capstone,|
Runestone is a project that has four main parts to it:
1. A Textbook hosting service that allows you and your students to access any of the textbooks written using their tools.
|CS0/Non-majors, CS1/CS2/Data Structures, Data Mining/Business Intelligence, Web Systems & Technology||Coding & Style||OER,||Jan Pearce|
|RPI CSCI-4961-01 Intro to Open Source||Software Engineering & Process||Coding & Style, Documentation, Tools & Communication|
|Learning Activity||One Week Crash Course – Mozilla||
Mozilla, creator of the popular Firefox web browser, is one of the largest collaborative open source projects in the world. Working on Mozilla is challenging, fun, and one of the best ways to gain real-world development experience. Getting involved with Mozilla means learning new skills, meeting new people, and having the opportunity to work on global software products with tens of millions of users. However, as exciting as it is, getting started can be intimidating and overwhelming—Mozilla has millions of lines of source code. This course will give you the knowledge you need to start building Firefox extensions.
|Software Engineering & Process||Coding & Style, Tools & Communication||Firefox, Mozilla,||Mozilla|
|Learning Activity||Bash Script Tutorial||
This tutorial is intended to provide a solid foundation in how to write Bash scripts, to get the computer to do complex, repetitive tasks. You won’t be a bash guru at the end but you will be well on your way and armed with the right knowledge and skills to get you there if that’s what you want (which you should).
|CS1/CS2/Data Structures, Operating Systems, System Architecture & Administration||Coding & Style, Tools & Communication||bash,||Ryan's Tutorials|
|Reference||Producing Open Source Software||
Producing Open Source Software is a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software. The book is released under an open copyright. You can buy it in bookstores, order copies from O’Reilly Media, or browse and download it here.
|Project Management, Software Engineering & Process||Coding & Style, Culture/Intellectual Property, Documentation, Philosophy/Politics, Product Packaging & Distribution, Quality & Testing, Specification & Design, Tools & Communication||Karl Fogel|
|ANU FOSS Development||Software Engineering & Process||Coding & Style, Culture/Intellectual Property||Tux Paint,|
|LUC Free/Open Source Computing||Software Engineering & Process||Coding & Style, Culture/Intellectual Property|
|PSX – Open Source Development||Software Engineering & Process||Coding & Style|
|Learning Activity||Code Review and Documentation in a C++ Repository on GitHub||
Students explore an open source project (QGIS, also known as Quantum GIS), hosted on GitHub, and answer a few questions about its meta-data. They are asked to read the implementation of its priority queue class, which has no documentation, and to write contract-style comments for the member functions in the interface file for that class.
|CS1/CS2/Data Structures||Coding & Style, Documentation||C++, code review, GitHub,||Stewart Weiss|
Live Coding – every Wednesday 1pm Eastern.
|CS1/CS2/Data Structures, Software Engineering & Process||Coding & Style||YouTube|
|Learning Activity||Intro to Style Guides (Activity)||
In this activity students will learn about why we need a style guide for team-based projects and compare style guides for a various projects. Based on this experience, students will develop a style guide for their team.
|Software Engineering & Process||Coding & Style||style guide,||foss2serve.org|
|Learning Activity||CS2 Data Structures||
Using the HFOSS OpenMRS project to illustrate the use of data structures in a complex system.
|CS1/CS2/Data Structures||Coding & Style||OpenMRS,||foss2serve.org|
|Learning Activity||Learning About Operator Overloading by Code-Reading in a GitHub Repository||
This is an assignment for a CS2/Data Structures class using C++ that introduces the concept of operator overloading by having students explore the GitHub repository for the Insight ToolKit (ITK),an HFOSS project. The students have to find a file, read code, and analyze and interpret the content in the source code.
|CS1/CS2/Data Structures||Coding & Style, HFOSS||C++, HFOSS, Insight ToolKit,||Stewart Weiss|
|UC Santa Cruz – Open Source Programming (Winter 2017)||CS1/CS2/Data Structures||Coding & Style||Programming,|
|Learning Activity||Comparable Interface – Code Reading||
Students learn about the Comparable interface in Java by looking at the code of OpenMRS and the actual implementation of the compareTo method in the String class of Java API.
|CS1/CS2/Data Structures||Coding & Style||code reading, Java, OpenMRS,||foss2serve.org|
|Learning Activity||Repo exploration for overloading ops in C++ Activity||
Student will search a repo to find a specific class that implements infinite precision arithmetic and answer questions about it
|CS1/CS2/Data Structures||Coding & Style||C++, repo,||foss2serve.org|
|Learning Activity||Software Design Architecture Comparison||
Students will learn how to introduce themselves to new and foreign open source communities by researching existing software design documents and resources in two large and popular open source projects. Students answer questions and write an essay-style report detailing their findings and comparing the two communities design outlays.
|Software Engineering & Process, System Architecture & Administration||Coding & Style, Specification & Design||design, software architecture,||foss2serve.org|
|Learning Activity||Test Driven Development||
Students will follow and implement a beginner level java-based Test Driven Development (TDD) approach with JUnit in the Eclipse IDE. First, they create a test case that fails, then they start creating mock code, and finally a simple piece of code that allows their test to pass.
|CS1/CS2/Data Structures||Coding & Style, Quality & Testing, Specification & Design, Tools & Communication||Eclipse, Java, JUnit,||foss2serve.org|
|Learning Activity||Using Open APIs In Mobile Apps Activity||
In this activity students will learn about Open APIs, how does it relate to open source and how to use in building a mobile application.
|CS1/CS2/Data Structures||Coding & Style||API, mobile,||foss2serve.org|
|Learning Activity||Voting Program Activity||
The student will write a program that will implement 5 different voting strategies in individual methods motivated by exposure to the humanitarian open-source project Ushahidi and general election results. The activity as presented makes use of the version control systems git and GitHub to encourage incremental software development, unit testing and documentation.
|CS1/CS2/Data Structures||Coding & Style||documentation, git, GitHub, unit test, Ushahidi, version control,||foss2serve.org|
|Learning Activity||Backwardly Compatible Code||
The learner will examine the code for the Color class from the Java API and make determinations about its content, its evolution and why its design has changed.
|CS1/CS2/Data Structures, Software Engineering & Process||Coding & Style||API, Java,||foss2serve.org|
|Learning Activity||Review Coding Conventions||
Students review 1 or more samples of code to see how close sample(s) are to the HFOSS project coding conventions.
|CS1/CS2/Data Structures, Software Engineering & Process||Coding & Style||coding conventions, standards,||foss2serve.org|
|Learning Activity||Introduction to Building Open Source Software||
In the modern UNIX/Linux/BSD era, the most common way to build and install open source software is with the use of “configure” and “make” tools. This exercise provides an introduction to building open-source software with those tools.
|CS1/CS2/Data Structures, Software Engineering & Process||Coding & Style, Product Packaging & Distribution||configure, linux, make,||foss2serve.org|
|Learning Activity||Finding the Code Responsible for Behavior||
Java learners often wonder why certain behaviors are exhibited when a method is invoked. They tend to view the entire mechanism as “magic”. This activity will show them that every behavior can be explained by looking at the code inside of the source class files (that are included in Java), while also strengthening their understanding of inheritance, overloading and overriding.
|CS1/CS2/Data Structures, Software Engineering & Process||Coding & Style, Quality & Testing||Java,||foss2serve.org|
|Learning Activity||Document Code with Meaningful Comments||
In this POGIL activity students will define what “meaningful comments” mean and create a rubric for it. Then, they will create meaningful comments for a given source file with undocumented code.
|CS1/CS2/Data Structures||Coding & Style, Documentation||POGIL,||foss2serve.org|
|Learning Activity||Code Base Understanding||
Students will navigate a complex Java code base using a number of different techniques or strategies to understand the design and architecture.
|Software Engineering & Process||Coding & Style||Java,||foss2serve.org|