The Free Technology Academy is closed. To know why, and what may come next, please read here. To find and download FTA resources not listed in these pages, instead, please visit the Free Technology Academy File Archive! Thanks!

Software Development


This module is designed for IT specialists and developers that are starting their way in the free software development universe. Free Software is developed with specific collaboration techniques and tools that engage and enable world-wide communities. Professionals need to handle different programming techniques, languages and develop specific workgroup skills.

The programming languages used in this module are C, C++ or Java.

Learning Outcomes


  • Designing and coding applications using free software tools and resources
  • Developing software systems for the UNIX and GNU/Linux platforms
  • Setting up software localisation projects
  • Developing graphical applications in the GNOME environment
  • Using revision control systems
  • Working in groups, including virtual communities
  • Software packaging and documentation


  • Programming languages C, C++ and Java
  • Principles of structured programming and object-oriented design using UML
  • Standards for data exchange using XML
  • Software engineering concepts and methods

ACM Computing Classification System

  • D.1.4 (Sequential Programming)
  • D.1.5 (Object-Oriented Programming)
  • D.2.2 (Design Tools and Techniques)
  • D.2.3 (Coding Tools and Techniques)
  • D.3.3 (Language Constructs and Features)
  • D.4.9 (Systems Programs and Utilities)

Teaching Staff

See the FTA tutors page.

Academic Requirements

The module can be followed with little programming experience in C, C++ or Java. The last two are not even an essential requirement.

It's also possible for learners without programming experience to follow the course, but in such cases the learning process will be slower and more time dedication will be required from the the learner.


If you want to enroll into this course, please follow the instructions in the main Courses page.


Book cover

Book: Introduction to Software Development
This material is part of the module: "Software Development".

  • Authors: J. Pérez López and L. Ribas i Xirgo
  • Coordinators: Jordi Mas Hernández and David Megías Jiménez