Content from Introduction
Last updated on 2025-07-01 | Edit this page
Estimated time: 24 minutes
Overview
Questions
- What is this all about?
Objectives
- Explain main aims of the workshop
- Describe the tools that will be introduced
Introduction
This lesson aims to introduce F-Droid, a repository of open source software available for Android and LambdaNative, a programming framework that uses the Gambit Scheme compiler to create Android applications.
The lesson can be completed using an internet browser that supports javascript.
Challenge 1: Examine the F-Droid website.
What type of software can be included in F-Droid?
F-Droid is a repository of Free and Open Source Software (FOSS). According to the inclusion policy, source code for the software needs to be available and under a recognized free and open source license.
Challenge 2: Examine the Software Packet Data Exchange (SPDX) website
What is the purpose of SPDX? Compare two licenses on the spdx list. How do they differ and why might the differences be important in choosing software you use or build upon?
SPDX is an organization that promotes open standards to enable efficient exchange of information about software, including licensing, security and origin.
There are many possible differences. Possible points of interest are:
- If you use the software in a web application, do you need to make the source of the web application available?
- If you include the software in your application and distribute your application, do you need to make the source code of your application available with your application.
Challenge 3: Examine the LambdaNative website.
What is LambdaNative?
LambdaNative is a framework for making mobile and embedded applications using the scheme programming language. It was originally developed to make health monitoring applications. It is open source and can be used to make applications that run on Android, iOs, Linux, Windows, OSX, NetBSD, FreeBSD, OpenBSD and OpenWRT.
Challenge 4: Examine the Gambit Scheme website.
What is Gambit Scheme?
Gambit scheme is a mature implementation of the Scheme programming language. It is primarily developed as a research project on compiler techniques. It is Free and Open Source Software.
Callout
Gambit Scheme is the scheme implementation used by LambdaNative.
Key Points
- F-Droid is a repository of free and open source Android applications
- Free and open source software has licenses governing its use
- LambdaNative can be used to create Android applications
- To use LambdaNative one needs to learn to program in Scheme
Content from Jargon Busting
Last updated on 2025-07-01 | Edit this page
Estimated time: 21 minutes
Overview
Questions
- What terms, phrases, or ideas around code and mobile applications have you come across and feel you should know better?
Objectives
- Explain terms, phrases, and concepts associated with software development and mobile applications.
- Compare knowledge of these terms, phrases, and concepts.
- Differentiate between these terms, phrases, and concepts.
- Learn to look things up online
This is modified from the library carpentry jargon busting lesson.
Jargon Busting
This exercise is an opportunity to gain a firmer grasp on the concepts around data, code or software development for mobile devices.
- Pair with a neighbor and decide who will take notes (or depending on the amount of time available for the exercise, skip to forming groups of four to six).
- Talk for three minutes (your instructor will be timing you!) on any terms, phrases, or ideas around code or software development for mobile devices that you’ve come across and perhaps feel you should know better.
- Next, get into groups of four to six.
- Make a list of all the problematic terms, phrases, and ideas each pair came up with. Retain duplicates.
- Identify common words as a starting point - spend 10 minutes working together to try to explain what the terms, phrases, or ideas on your list mean. Note: use both each other and the internet as a resource.
- Identify the terms your groups were able to explain as well as those you are still struggling with.
- Each group then reports back on one issue resolved by their group and one issue not resolved by their group.
- The instructor will collate these on a whiteboard and facilitate a discussion about what we will cover today and where you can go for help on those things we won’t cover. Any jargon or terms that will not be covered specifically are good notes.
Busting Tips
Often, workshop attendees ask if there is a handout of common terms and definitions as there is not enough time to explain all the terms in a jargon busting exercise. Many of the terms are covered in our lessons, but with so much variation between our jargon busting sessions, it is difficult to create a common handout.
Keep in mind that our goal is not to explain all the terms we list out in the exercise, but instead to highlight how much jargon we use in our daily work and to come up with a shared understanding for a select number of jargon terms.
Key Points
- It helps to share what you know and don’t know about software development and application jargon.
Content from F-Droid
Last updated on 2025-07-01 | Edit this page
Estimated time: 52 minutes
Overview
Questions
- How can I install an application from F-Droid?
Objectives
- Explore the F-Droid repository
- Learn how to insall an application from F-Droid
Introduction
F-Droid is a repository of free and open source Android applications. We will try out some of these applications.
Install an application from F-Droid
On your Android device, open an internet browser and go to https://f-droid.org/.
There should be a button download F-droid
, press on this
button and wait for F-Droid to be downloaded. Once downloaded, attempt
to install it - you may need to temporarily enable permissoins for
installation of applications from the files folder.
Once F-Droid is installed on your Android device, browse the applications available on F-Droid and install one on your Android device. You may need to give the F-Droid application permissions to install applications.
Challenge 1: Can you do it?
If you have F-Droid installed and have installed an application, try out the application and describe what it does. Write down where you can find the source code for this application.
If you do not have F-Droid installed, browse https://f-droid.org/en/packages/ and describe two applications you find interesting. Write down where you can obtain the source code for these applications.
As an example:
GCompris (https://f-droid.org/en/packages/net.gcompris.full) is a suite of educational games for children between the ages of 2 and 10. It is developed at https://invent.kde.org/education/gcompris.git.
Challenge 2: Can you do it?
Examine https://f-droid.org/en/contribute/.
How can one contribute to F-Droid? Is the source code for running F-Droid available?
There are many ways to contribute to F-Droid, examples include: 1. Translation 2. Testing applications 3. Improving the F-Droid infrastructure 4. Helping others to use F-Droid by answering questions in community communication channels
The source code for running F-Droid is available at https://gitlab.com/fdroid/ and comprises code for the: 1. Android client 2. Server tools 3. App metadata files 4. Website
Key Points
- F-Droid has many free and open source applications
- If you are worried about security of an application, you can examine its source code or ask someone else to do so for you
- It is possible to run your own F-Droid repository to distribute Android applications which you verify are good to distribute
Content from Scheme
Last updated on 2025-07-01 | Edit this page
Estimated time: 40 minutes
Overview
Questions
- How can I write a scheme program
Objectives
- Learn to write a scheme program
Introduction
We will follow the introduction to scheme available at https://try.gambitscheme.org/.
This section will likely be updated. Encourage learners to type along with you, rather than hitting the run button. Do leave some time for discussion of the material.
Types
Challenge 1: Can you do it?
What is the difference between a list and a vector in scheme?
Lists are not indexed, one accesses the first and last items of a list. Vectors are indexed, any item can be accessed, but they are more expensive to process. Scheme is a programming language in the lisp family of programming languages (https://en.wikipedia.org/wiki/Lisp_(programming_language)), which extensively use lists.
Challenge 2: Can you do it?
Define an s-expression that uses the symbol + in a list that adds three numbers
Challenge 3: Can you do it?
check if + is a procedure. Use + to add three numbers in a list.
Key Points
- Scheme is a programming language that uses lists
- Scheme can be used to create very powerful compact programs
- Scheme has specifications which if implemented can be imported to give additional functionality such as formatted output
- Symbols can be used to create s-expressions that allow one to define and evaluate in separate steps
Content from One Up, One Down
Last updated on 2025-07-01 | Edit this page
Estimated time: 15 minutes
Overview
Questions
- What did you like and what needs improvement about the lessons and workshop?
Objectives
- Learners reflect and share what they liked and what can be improved about the lessons and workshops.
- Instructors record the learner feedback and reflect on what can be improved about the lessons and workshops.
This is modified from the library carpentry one up, one down lesson.
One-Up, One-Down
In addition to sticky notes used for feedback during the day, at the end of the day we can use a technique called “one up, one down”. The instructor asks the learners to alternately point to one thing they liked and one thing that can be improved about the day, without repeating anything that has already been said. This requirement allows participants to reflect further on the day and offer unique responses. The instructor writes down the feedback in the workshop collaborative document. The feedback is both helpful to the learners, to hear the perspectives of others in the workshop, and for instructors, to learn how the lessons and teaching approaches used can be improved.
Key Points
- It helps to reflect and share feedback about the lessons and workshop.