CSCI4140 1 - Intro
CSCI4140 1 - Intro
https://course.cse.cuhk.edu.hk/~csci4140/
Course Aim
• Not to teach you how to open your source
2
What Will You Learn In This Class?
• Becoming a full-stack developer
- No fixed theme
- Up to 2 group members
• Suggestions?
4
What’s Required
• Prerequisites:
- 3-day grace period for an assignment: -25% if < 1 day, -50% if < 2
days, -75% if < 3 days, no credit >= 3 days
- 2-day grace period for project: -15% if < 1 day, -30% if < 2 day,
no credit >= 2 days
• Collaboration (http://course.cse.cuhk.edu.hk/~csci4140/#policies-
collaboration)
• Other policies
- http://course.cse.cuhk.edu.hk/~csci4140/#policies
6
A Software Engineering Course?
Software Engineering Courses This Course
7
Questions?
8
Open-Source Software vs.
Proprietary Software
9
Is A Free Software An OSS?
NOT a “free
software”
“Google Docs, Google Sheets, and Google Slides are a word processor, a spreadsheet
and a presentation program respectively, all part of a free, web-based software office suite
offered by Google within its Google Drive service.”
- https://en.wikipedia.org/wiki/Google_Docs,_Sheets,_and_Slides
10
What Is “Free Software”?
• The Free Software Definition
Richard Stallman
Founded the GNU project in 1983
11
https://www.gnu.org/philosophy/free-sw.en.html
What Is “Free Software”? (Cont.)
• The Four Freedoms
12
https://www.gnu.org/philosophy/free-sw.en.html
What Is Open-Source Software?
• Open-source software (OSS) is computer software with its source code
made available with a license in which the copyright holder provides the
rights to study, change, and distribute the software to anyone and for any
purpose.
Richard Stallman
13 Founded the GNU project in 1983
A little detour: GNU
• GNU is a complete operating system; Linux is a kernel
(check this out: https://www.gnu.org/gnu/linux-and-
gnu.html)
14
Free and Open-Source Software
Licensing
• Why do we need a software license?
15
Copyleft
• A form of licensing that requires the derivative works to be
distributed with the same copyright conditions as in the
original work.
• Other examples:
16
Permissive Software License
• A free software license with minimal requirements
about how the software can be redistributed.
• “Non-copyleft license”
• Examples:
17
Software Licenses
18
σ Freeopen _
soura software
• Benefits • Drawbacks
- Security - Security
右專 解法問題
- Affordability/Availability - User-support
- Quality/Reliability - Compatibility
- Longevity 譸 - Licensing
19
一
人
Software Development Model
• The Cathedral (traditional) Model:
20
OSS Development Model
• Users should be treated as co-developers
• Rapid prototyping
• Early releases
• Frequent integration
https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar#Lessons_for_creating_good_open_source_software
21
OSS Development Team
22
OSS Development Communication
Channels
• Email
- Mailing list
• Instant Messaging
- IRC
• Forums
• Wikis
23
OSS Development Tools
• Version control systems
- Bugzilla
24
History of FOSS
• Launch of the free software movement
• Linux
- Linus Torvalds released the Linux kernel first in 1991, then in 1992 under GPL
• The LAMP systems powered the development of the World Wide Web in the dot-com years (late
1990s)
• Internet-of-things
• Augmented reality
• Virtual reality
• Cross-device applications
26
Focus of This Course
• Technologies around the World Wide Web
27
How To Start An OSS Project?
• Announces the intent to develop a project in public
28
Start Your Project Now!
• Form a group of up to 2 people by 23:59 January 28, 2024