Learning Materials:

Material Type Title Overview Courses FOSS Area Tags Source
LUC Free/Open Source Computing ,
PSX – Open Source Development
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.

, C++, code review, GitHub, This is an exercise I developed myself. (Stewart Weiss)
Live Coding

Live Coding – every Wednesday 1pm Eastern.
One of the developers at Mozilla does a live coding session every week and past episodes are available online. The link for the “episode guide” is: https://www.reddit.com/r/WatchPeopleCode/comments/6bpb36/live_weekly_1pm_et_on_wednesdays_watch_a_mozilla/

, YouTube
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.

style guide, foss2serve
CS2 Data Structures

Using the HFOSS OpenMRS project to illustrate the use of data structures in a complex system.

OpenMRS, foss2serve.org
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.

, C++, HFOSS, Insight ToolKit, This is an exercise I developed myself.
Open Source Programming (Winter 2017) Programming,
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.

code reading, cs2, Java, Open MRS, OpenMRS, foss2serve.org
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

C++, repo, foss2serve.org
Review Coding Conventions

Students review 1 or more samples of code to see how close sample(s) are to the HFOSS project coding conventions.

coding convention, HFOSS, foss2serve.org
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.

, , design, software architecture, foss2serve.org
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.

, , , Eclipse, Java, JUnit, foss2serve.org
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.

API, mobile, foss2serve.org
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.

documentation, git, GitHub, unit test, Ushahidi, version control, foss2serve.org
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.

, API, Java, foss2serve.org
Review Coding Conventions

Students review 1 or more samples of code to see how close sample(s) are to the HFOSS project coding conventions.

, coding conventions, standards, foss2serve.org
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.

, , configure, linux, make, foss2serve.org
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.

, , Java, foss2serve.org
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.

Java, foss2serve.org
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.

, POGIL, foss2serve.org
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.

Java, foss2serve.org
Return to Teaching Materials