Disciplina Discipline MAC5856
Desenvolvimento de Software Livre

Free and Open Source Software Development

Área de Concentração: 45134

Concentration area: 45134

Criação: 22/06/2023

Creation: 22/06/2023

Ativação: 22/06/2023

Activation: 22/06/2023

Nr. de Créditos: 8

Credits: 8

Carga Horária:

Workload:

Teórica

(por semana)

Theory

(weekly)

Prática

(por semana)

Practice

(weekly)

Estudos

(por semana)

Study

(weekly)

Duração Duration Total Total
4 2 4 12 semanas 12 weeks 120 horas 120 hours

Docentes Responsáveis:

Professors:

Paulo Roberto Miranda Meirelles

Daniel Macedo Batista

Objetivos:

Familiarizar os alunos com o ecossistema do Software Livre de forma prática e imersiva, incluindo os principais aspectos éticos e técnicos relacionados ao desenvolvimento e compartilhamento de software seguindo o modelo aberto e colaborativo.

Objectives:

Introduce students to the Free Software ecosystem in a practical and immersive way, including the main ethical and technical aspects related to the development and sharing of software following the open and collaborative model.

Justificativa:

O modelo de desenvolvimento colaborativo de software conhecido como Software Livre tem se mostrado capaz de produzir sistemas e aplicações de software de excelente qualidade. As ferramentas e sistemas de software livre passaram a constituir uma plataforma robusta a partir da qual a indústria de TI vem construindo e oferecendo os seus serviços. Este modelo aberto e colaborativo de produção apresenta uma série de vantagens para uma gama de empreendimentos de desenvolvimento de software, tanto acadêmicos quanto comerciais. Esta disciplina irá expor os alunos à comunidade do software livre e suas ferramentas, às vantagens e desvantagens desse modelo bem como aos desafios a serem enfrentados por aqueles que o adotam, além dos seus desdobramentos sociais e culturais. Dessa forma, os alunos estarão melhor preparados para utilizar software livre e participar de projetos de desenvolvimento de software colaborativos e descentralizados: estratégia inaugurada, amplamente usada e disseminada pelas comunidades de software livre.

Rationale:

The collaborative software development model known as Free and Open Source Software (FLOSS) has proven to be capable of producing excellent quality software systems and applications. FLOSS tools and systems have become a robust platform on top of which the IT industry can build and offer its services. This open and collaborative production model has numerous advantages for a wide range of software development ventures, both academic and commercial. This course will expose students to the FLOSS community and its tools, the advantages and disadvantages of this model, the challenges faced by those who adopt it, and its social and cultural consequences. In this way, students will be better prepared to use FLOSS and participate in collaborative and decentralized software development projects: a strategy inaugurated, widely used, and disseminated by the FLOSS communities.

Conteúdo:

História do Software Livre: o movimento pelo Software Livre (Free Software) e o movimento pelo Código Aberto (Open Source), a FSF e a OSI. Aspectos jurídicos de software livre: a legislação brasileira de propriedade intelectual, copyright, licenças, compatibilidades e incompatibilidades; DRM, patentes e interoperabilidade. Comunidades de software livre: formas de organização e participação, gerenciamento de contribuições (incluindo forks) e qualidade de projetos de software livre. Métodos empíricos de desenvolvimento de software: boas práticas (codificação, estilo e padronização de código), testes automatizados, integração e entrega contínua (CI/CD) e a relação entre métodos ágeis e software livre. Ferramentas de gestão e ambiente de desenvolvimento colaborativo de projetos, incluindo o paradigma de colaboração do sistema de controle de versões Git. Desdobramentos sociais e técnicos: Cultura Livre, Ciência Aberta, Creative Commons, Hardware Livre e os impactos sociais e econômicos do Software Livre. Os estudantes terão contato com este material através de aulas teóricas, debates sobre tópicos específicos e seminários. Em grupos de 2 a 4 alunos, será também desenvolvido um projeto de duração de 12 semanas onde espera-se contribuições reais a um projeto existente de software livre. Estas contribuições podem ser na forma de novas funcionalidades ou consertos de erros e melhorias. Em casos excepcionais, contribuições na forma de nova documentação também serão aceitas. Esses casos deverão ser discutidos com o(a) docente ministrante.

Content:

History of Free and Open Source Software (FLOSS): the Free Software and Open Source movements, the FSF and OSI. Legal aspects of FLOSS: Brazilian legislation on intellectual property, copyright, licenses, compatibilities, and incompatibilities; DRM, patents, interoperability FLOSS communities: forms of organization and participation, management of contributions (including forks), and quality of FLOSS projects. Empirical software development methods: good practices (coding, style, and code standardization), automated testing, Continuous Integration and Continuous Delivery (CI/CD), and the relationship between agile methods and FLOSS. Tools for collaborative development and project management, including the collaboration paradigm of the Git version control system. Social and technical outspread: Free-Culture movement, Open Science, Creative Commons, Free/Open Hardware, and the social and economic impacts of FLOSS. Students will have contact with this material through theoretical classes, open discussions on specific topics, and seminars. In groups of 2 to 4 students, a 12-week project will also be developed where real contributions to an existing FLOSS project are expected. These contributions can be new features or bug fixes and improvements. In exceptional cases, contributions to new documentation will also be accepted. These cases should be discussed with the teaching professor.

Forma de Avaliação:

A avaliação será realizada através de seminários, projetos e provas. A nota final será calculada pela média obtida pelo aluno nos instrumentos de avaliação. Nas duas primeiras semanas de aula o docente fixará as datas e o número de provas, projetos e seminários, assim como o critério de atribuição do conceito final.

Type of Assessment:

The evaluation will be carried out through seminars, projects and tests. The final grade will be calculated by mean obtained by the student in the assessment instrument. In the first two weeks of class, the teacher will set the dates and number of tests, projects and seminars, as well as the criteria for attributing the final letter grade.

Bibliografia:

1Bibliografia Básica: 1- Karl Fogel. Producing Open Source Software: How to Run a Successful Free Software Project. 2nd Edition. O’Reilly Media, Jan. 2017. Disponível em https://producingoss.com 2- Fabio Kon, Nelson Lago, Paulo Meirelles e Carlos Santos Jr. Direitos autorais, licenças e patentes. Em: Computação e sociedade: a tecnologia - volume 3. Capítulo 17. Organizadores: Cristiano Maciel, José Viterbo. 1a. edição. Cuiabá-MT: EdUFMT Digital, 2020. Disponível em https://www.edufmt.com.br/product-page/computa%C3%A7%C3%A3o-e-sociedade-a-tecnologia-volume-3 3- Raymond, Eric S. The Cathedral and the Bazaar. 1997-2009. Disponível em http://catb.org/esr/writings/cathedral-bazaar. Bibliografia Complementar: 1- Stallman, Richard M. Free Software Free Society: selected essays of Richard M. Stallman. GNU Press. 2002. Disponível em http://shop.fsf.org/product/free-software-free-society. 2- Laurent, Andrew M. St. Understanding Open Source & Free Software Licensing. Sebastopol: O’Reilly. 2004. Disponível em https://people.debian.org/~dktrkranz/legal/Understanding%20Open%20Source%20and%20Free%20Software%20Licensing.pdf 3- Fabio Kon, Nelson Lago, Paulo Meirelles e Vanessa Sabino. Software Livre e Propriedade Intelectual: Aspectos Jurídicos, Licenças e Modelos de Negócio. Em: Jornada de Atualização em Informática da SBC. 2011. Disponível em http://ccsl.ime.usp.br/pt-br/publicacao/2011/software-livre-e-propriedade-intelectual-aspectos-juridicos-licencas-e-modelos 4- Benkler, Yochai. “Some Basic Economics of Information Production and Innovation”; “Freedom to do more for oneself, by oneself, and with others”; & “Conclusion”. Em: The Wealth of Networks: How Social Production Transforms Markets and Freedom. New Haven: Yale University Press. Capítulos 2, 5 (primeira seção) e 12. 2006. Disponível em http://cyber.law.harvard.edu/wealth_of_networks 5- Wen, Melissa S. R. What happens when the bazaar grows: a comprehensive study on the contemporary Linux kernel development model. 2021. Dissertação (Mestrado em Ciência da Computação) - Instituto de Matemática e Estatística, Universidade de São Paulo, São Paulo.

Bibliography:

Bibliografia Básica: 1- Karl Fogel. Producing Open Source Software: How to Run a Successful Free Software Project. 2nd Edition. O’Reilly Media, Jan. 2017. Disponível em https://producingoss.com 2- Fabio Kon, Nelson Lago, Paulo Meirelles e Carlos Santos Jr. Direitos autorais, licenças e patentes. Em: Computação e sociedade: a tecnologia - volume 3. Capítulo 17. Organizadores: Cristiano Maciel, José Viterbo. 1a. edição. Cuiabá-MT: EdUFMT Digital, 2020. Disponível em https://www.edufmt.com.br/product-page/computa%C3%A7%C3%A3o-e-sociedade-a-tecnologia-volume-3 3- Raymond, Eric S. The Cathedral and the Bazaar. 1997-2009. Disponível em http://catb.org/esr/writings/cathedral-bazaar. Bibliografia Complementar: 1- Stallman, Richard M. Free Software Free Society: selected essays of Richard M. Stallman. GNU Press. 2002. Disponível em http://shop.fsf.org/product/free-software-free-society. 2- Laurent, Andrew M. St. Understanding Open Source & Free Software Licensing. Sebastopol: O’Reilly. 2004. Disponível em https://people.debian.org/~dktrkranz/legal/Understanding%20Open%20Source%20and%20Free%20Software%20Licensing.pdf 3- Fabio Kon, Nelson Lago, Paulo Meirelles e Vanessa Sabino. Software Livre e Propriedade Intelectual: Aspectos Jurídicos, Licenças e Modelos de Negócio. Em: Jornada de Atualização em Informática da SBC. 2011. Disponível em http://ccsl.ime.usp.br/pt-br/publicacao/2011/software-livre-e-propriedade-intelectual-aspectos-juridicos-licencas-e-modelos 4- Benkler, Yochai. “Some Basic Economics of Information Production and Innovation”; “Freedom to do more for oneself, by oneself, and with others”; & “Conclusion”. Em: The Wealth of Networks: How Social Production Transforms Markets and Freedom. New Haven: Yale University Press. Capítulos 2, 5 (primeira seção) e 12. 2006. Disponível em http://cyber.law.harvard.edu/wealth_of_networks 5- Wen, Melissa S. R. What happens when the bazaar grows: a comprehensive study on the contemporary Linux kernel development model. 2021. Dissertação (Mestrado em Ciência da Computação) - Instituto de Matemática e Estatística, Universidade de São Paulo, São Paulo.

Tipo de oferecimento da disciplina:

Presencial

Class type:

Presencial