COMP7047 - 01 - Introduction 2023
COMP7047 - 01 - Introduction 2023
01 - Introduction
Your Lecturer
• Dr. Larkin Cunningham
• [email protected]
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!
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.
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
• 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
• 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
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