0% found this document useful (0 votes)
10 views

COMP7047 - 01 - Introduction 2023

This document provides an introduction to the COMP7047 Open Source Projects module. It outlines the lecturer's background and credentials. It introduces Padlet as a collaborative tool for remote learning and provides an icebreaker prompt. The syllabus overview indicates the module will cover open source history, licensing, communities and contributing. Assessments include short answer questions, a project proposal, weekly reflective journals, a final project and presentation. Additional details are given on project expectations, documentation, and contributing to other open source projects. Free software concepts from the Free Software Foundation such as the 4 essential freedoms and differences between free software and open source are briefly discussed.

Uploaded by

sara
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

COMP7047 - 01 - Introduction 2023

This document provides an introduction to the COMP7047 Open Source Projects module. It outlines the lecturer's background and credentials. It introduces Padlet as a collaborative tool for remote learning and provides an icebreaker prompt. The syllabus overview indicates the module will cover open source history, licensing, communities and contributing. Assessments include short answer questions, a project proposal, weekly reflective journals, a final project and presentation. Additional details are given on project expectations, documentation, and contributing to other open source projects. Free software concepts from the Free Software Foundation such as the 4 essential freedoms and differences between free software and open source are briefly discussed.

Uploaded by

sara
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

COMP7047 – Open Source Projects

01 - Introduction
Your Lecturer
• Dr. Larkin Cunningham
[email protected]

• PhD in Digital Humanities (Game Based Learning), UCC


• PgCert in Effective Teaching in Higher Education, CIT/MTU
• MSc in Creative Writing, Edinburgh University
• BSc (hons) Computer Services Management, CIT/MTU

2
Padlet
• Before we discuss the syllabus, assessments, etc., let’s begin with an
icebreaker
• We will use a collaborative tool which is very useful for remote
learning: Padlet
• It shares some similarities to Trello when set up using cards, but can
be set up in other ways too
• Bookmark the following:
• https://padlet.com/larkincunningham/comp7026
• Password is: citisnowmtu

3
Icebreaker
• These have been stressful times for all sorts of reasons
• What did you do during the inter-semester break to unwind / switch
off?
• Add your answer to the COMP7047 Padlet now
• Ideally log in using a single sign on, e.g. Google, Microsoft or Apple, so
that your name is visible and we can get to know each other better

4
Syllabus (1)
• Module is a hybrid of traditional lectures/labs and a research project
module – therefore delivery of module will be a mix of lectures/labs
and supervision
• But... first few weeks will cover:
• History of Open Source
• Free Software vs Open Source
• Licencing
• Structures of Open Source communities
• Corporations and Open Source
• How to contribute to an Open Source project
• And more…

5
Syllabus (2)
• From about week 5:
• Lecture time will allow for discussions and interim project presentations
• Later lab time will be given over to supervision meetings and other project
support

6
Assessment (1)
• Note from module descriptor
(https://courses.cit.ie/index.cfm/page/module/moduleId/13171):
Short Answer The students would be assessed on the theoretical
Questions elements presented in the module.
1,2 20% Week 3!

• Assessing these learning outcomes:


LO1 Discuss the underlying principles and the benefits of contributing to open source projects.
Understand the typical structure of an open source project by identifying: the community owner,
LO2
maintainers, contributors and members; the documentation; and licencing.

7
Assessment (2)
In this report the students would be expected to evaluate
various open source projects and will select an open
source project to contribute to, bearing in mind their own
Project 3,4 20% Week 5
technical skill set and interests. In addition, they will have
identified how to connect and communicate with their
selected open source project.

• Assessing:
LO3 Evaluate various open source projects and select an open source project to contribute to.
Identify how to contribute and connect to the open source project and workflow procedures to
LO4
enable contribution.

8
Assessment (3)
The student will reflect on their experience of
Every
Reflective Journal learning about open source communities and 1,2,3,4,5,6,7 20%
Week
their journey as novice contributor.

• Each week, starting with week 2, write a reflective journal entry of 200 words
approx.
• A rubric and some guides will be posted to Canvas offering guidance on how
to write good reflective journal entries

9
Assessment (4)
The student will employ tools, identify the contribution
workflow and using this workflow will contribute to an
Project 1,2,3,4,5,6,7 20% Sem End
open source community by fixing bugs, development of
source or document or scripts etc.

The students will demo their project and will present


Presentation 1,2,3,4,5,6,7 20% Sem End
their contribution to the peers and lecturer.

10
Main Project
• Work in groups of 3 or 4
• Choose a product / tool / library to develop
• Choose the platform, frameworks, etc.
• E.g. Java + Spring using Eclipse
• Python, PyCharm, Microservices, Docker
• Or whatever
• Set up your development environment, e.g.
• GitHub
• Continuous Integration
• Trello

11
Main Project
• Create the necessary documentation and infrastructure to make the
project open source
• Contribution guidelines
• Coding style guide
• A website with an overview, download links (ideally including snapshots), etc.
• Add issues to GitHub asking for fixes to bugs you know about and
features you want others to develop – please include ones tagged as
being for first-timers

12
Additional Contributions
• You must try to contribute to other projects and write about these
efforts in your reflective journal entries
• Contributions to established open source projects
• And/or contributions to other OSP student projects (which will be
presented and discussed in class)

13
Free Software
Foundation

• 1985 – Free Software Foundation (FSF)


established by Richard Stallman
“The Free Software Foundation (FSF) is a
nonprofit with a worldwide mission to promote
computer user freedom. We defend the rights of
all software users.” (https://www.fsf.org/)

• Required viewing -
https://www.youtube.com/watch?v=gfwKns
Hd9WM
(Richard Stallman Interview on the History
and Ethics of Free Software)
• After viewing, ask yourself: Is he a
fundamentalist?
14
Free Software Foundation
• Also see https://www.fsf.org/blogs/rms/20140407-geneva-tedx-talk-
free-software-free-society and the embedded TED talk video
• Note the following text on the page:
• “We've embedded this talk using the HTML5 video element, but if you watch
any TEDx talks on YouTube, please remember to use a free program like ytdl
instead of your browser, because watching YouTube in your browser requires
proprietary JavaScript.”
• An example of fundamentalism?
• Now we will watch and discuss the video in class…

15
Free Software Definition
• “Free software” means software that respects users' freedom and
community. Roughly, it means that the users have the freedom to
run, copy, distribute, study, change and improve the software. Thus,
“free software” is a matter of liberty, not price. To understand the
concept, you should think of “free” as in “free speech,” not as in “free
beer”. We sometimes call it “libre software,” borrowing the French or
Spanish word for “free” as in freedom, to show we do not mean the
software is gratis.
https://www.gnu.org/philosophy/free-sw.html

16
The 4 Essential Freedoms
• The freedom to run the program as you wish, for any purpose
(freedom 0).
• The freedom to study how the program works, and change it so it
does your computing as you wish (freedom 1). Access to the source
code is a precondition for this.
• The freedom to redistribute copies so you can help others (freedom
2).
• The freedom to distribute copies of your modified versions to others
(freedom 3). By doing this you can give the whole community a
chance to benefit from your changes. Access to the source code is a
precondition for this.
https://www.gnu.org/philosophy/free-sw.html
17
Free Software is the same as Open Source,
Right?
• ““Open source” is something different: it has a very different philosophy based on
different values. Its practical definition is different too, but nearly all open source
programs are in fact free. We explain the difference in Why “Open Source” misses the
point of Free Software.” (https://www.gnu.org/philosophy/free-sw.html)
• Stallman: “When open source proponents talk about anything deeper than that, it is
usually the idea of making a “gift” of source code to humanity. Presenting this as a
special good deed, beyond what is morally required, presumes that distributing
proprietary software without source code is morally legitimate.”
:
““Free software” and “open source” are different ideas but, in most people's way of
looking at software, they compete for the same conceptual slot.”
(https://www.gnu.org/philosophy/open-source-misses-the-point.html)
• FOSS – Free and Open Source Software
• FLOSS – Free/Libre and Open Source Software
• What UNESCO has to say about FOSS: https://en.unesco.org/foss

18
Examples of FOSS

• Describes itself as “free and open source”, developed by users who


“believe in the principles of Free Software”
(https://www.libreoffice.org/about-us/who-are-we/)

• See
https://en.wikipedia.org/wiki/List_of_Apache_Software_Foundation_proje
cts for a list of projects of the Apache Software Foundation (most famously,
the Apache httpd web server, released in 1995/96)

19
A Case Study of Open Source Software
Development: The Apache Server (2000)
• Mockus, A., Fielding, R.T., Herbsleb, J., 2000. A case study of open
source software development: the Apache server, in: Proceedings of
the 22nd International Conference on Software Engineering - ICSE
’00. Presented at the the 22nd international conference, ACM Press,
Limerick, Ireland, pp. 263–272.
https://doi.org/10.1145/337180.337209

20
A Case Study of Open Source Software
Development: The Apache Server (2000)
ABSTRACT
According to its proponents, open source style software development has
the capacity to compete successfully, and perhaps in many cases displace,
traditional commercial development methods. In order to begin investigating
such claims, we examine the development process of a major open source
application, the Apache web server. By using email archives of source code
change history and problem reports we quantify aspects of developer
participation, core team size, code ownership, productivity, defect density,
and problem resolution interval for this OSS project. This analysis reveals a
unique process, which performs well on important measures. We conclude
that hybrid forms of development that borrow the most effective techniques
from both the OSS and commercial worlds may lead to high performance
software processes.
21
Example of a Small Open Source Project
• Let’s go back to the open source project (ytdl) referred to on the previous slide:
• https://github.com/fent/node-ytdl#readme
• Clicking on LICENSE reveals the following:

• See text of the licence on the next page… (note how short it is compared to other
licence agreements you may have agreed to in the past)
22
MIT Licence
We will examine the common licences
MIT License used by Open Source Projects later
Copyright (C) 2012 by fent

Permission is hereby granted, free of charge, to any person obtaining a copy


of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

23
Exercise
• What more can we tell about the project from GitHub?
• Go to https://github.com/fent/node-ytdl#readme
• Look at all the various links… what do they tell us about the project?
(Let’s do this informally for now in any way you want you – we will get
more formal over the next few weeks)
• Spend 15 minutes in breakout groups (automatically assigned with about 4
per group) examining the repository and taking notes
• One member of the breakout group will post observations about the project
to Padlet – please include your breakout group number in the response(s)
• Note: if you don’t have a GitHub account, create one and log in
24
GNU
• GNU (Gnu’s Not Unix)
• A Unix-like operating system that is free/libre (see
https://www.gnu.org/#More-GNU).
• 1984 – Development of GNU starts
• 1989 – FSF publishes Version 1 of GNU General Public License (GPL)
• 1991 – GPL Version 2 (we’ll return to these licences later)
• 1991 – Linus Torvalds launches development of the Linux kernel under the GPL v.2
licence
• GNU + Linux Kernel = GNU/Linux
• Worth reading this article about Thorvalds and further clicking into the Linux Code of
Conduct
(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a10
4f8b5867c682d994ffa7a74093c54469c11f) – you can also see the source code of the
Linux kernel at that site

25

You might also like