Skip to content

Syllabus

Assessment

This course has a gamified assessment system. At any time, you can check your grade by running:

$ ./dev-aberto.py compute-grade your-blackboard-login

Biweekly reports will be sent with a summary of what has been delivered and which criteria have been met, as well as the student's current grade. There is no possibility of losing points. Although the report is for informational purposes only, if the student is not failing due to absences, they should receive the grade indicated in the biweekly reports.

Attention

The complete list of rules is available on the Course Rules page and is the official reference for grade calculation. If there is a discrepancy between the report and the rules page, consider the report to be buggy.

Schedule

  • MON 13:30 - 15:30
  • WED 13:30 - 15:30
  • Office Hours: on demand

Student support hours

  • WED 10:00 - 11:30

Lesson Plan

The following activities are planned. The program is subject to changes and adaptations as the course progresses.

Date Question/Problem/Challenge Content
14/08 Introduction to the course and its challenges Workflow with distributed version control: forks, patches, pull requests, and local repositories. Technical and non-technical aspects surrounding software: infrastructure, support, marketing, funding. Reference: FOGEL Ch. 3; Additional reading: TAPSCOTT & WILLIAMS.
19/08 First code contribution Workflow with distributed version control: ammend, rebase, revert.
21/08 Project documentation and what to do when it doesn't exist Types of documentation (user, developer). Source code documentation systems: doxygen, Javadoc, pydoc, sphinx; Reference: FOGEL Ch. 3 (Wikis, Website)
26/08 Studio class for "Professional Project" activity Studio class for "Professional Project" activity
28/08 Ensuring others can work on the project: API documentation code quality
02/09 Software distribution and versioning Software distribution tools. Types of distribution. Versioning schemes. Reference: FOGEL Ch. 7
04/09 How to make software work in multiple countries? Localization and internationalization. Gettext tool for translations and .po format.
09/09 Software testing Types of software testing: unit, integration, and interface. Testing tools: pytest, selenium.
11/09 Studio class for "Software Testing" activity Studio class for "Software Testing" activity
16/09 Software licenses Copyrights in Brazil, patents, and software licenses; Reference: LAURENT Ch. 1 and 5, STALLMAN Ch. 6
18/09 Introduction to contributions in open projects - Activity "My First Contribution" Studio class for group activity "My First Contribution"
23/09 Studio class for group activity "My First Contribution" Studio class for group activity "My First Contribution"
25/09 Studio class for group activity "My First Contribution" Studio class for group activity "My First Contribution"
30/09 EXAM WEEK EXAM WEEK
02/10 EXAM WEEK EXAM WEEK
07/10 Working in software communities Assessment metrics for the second part of the course; Communication and teamwork. Reference: RAYMOND Ch. 4
09/10 Course project Studio class for project development
14/10 Course project Studio class for project development
16/10 Course project Studio class for project development
21/10 Course project Studio class for project development
23/10 Course project Studio class for project development
28/10 Course project Studio class for project development
30/10 Course project Studio class for project development
04/11 Course project Studio class for project development
06/11 Course project Studio class for project development
11/11 Course project Studio class for project development
13/11 Course project Studio class for project development
18/11 Topics on free culture and software communities Topics on free culture and software communities
20/11 PUBLIC HOLIDAY PUBLIC HOLIDAY
25/11 Topics on free culture and software communities Topics on free culture and software communities
27/11 Topics on free culture and software communities Topics on free culture and software communities
02/12 EXAM WEEK EXAM WEEK
04/12 EXAM WEEK EXAM WEEK