LAB OF SOFTWARE PROJECT DEVELOPMENT

Academic year
2023/2024 Syllabus of previous years
Official course title
LAB OF SOFTWARE PROJECT DEVELOPMENT
Course code
ET7018 (AF:358389 AR:191382)
Modality
On campus classes
ECTS credits
6
Degree level
Bachelor's Degree Programme
Educational sector code
ING-INF/05
Period
2nd Term
Course year
3
Where
RONCADE
Moodle
Go to Moodle page
Any modern business depends on the development of some specific software that can be produced in-house or outsourced. The digital manager needs to be aware of the foundations of the techniques and tools needed to develop a software project.
The only way to achieve this awareness is to participate to a software development project in which the student practices both the organizational tools and the development process.

The goal of this course is to provide to the students the background on the most common software development tools and platform and to create and manage their own software project.
During the course, the student will achieve the following knowledge and skills.

Knowledge:
- The most common methodologies for software development: waterfall, agile, open or closed source;
- The basics of the creation of a Python software: structure, documentation, publication;
- Test-driven-development;
- Concepts and models of web programming in Python.

Skills:
- Familiarity with software versioning systems: git;
- Familiarity with software hosting/development platforms: github, kanban;
- Create, develop, document and publish a Python project;
- A primer on DevOps: docker;
- Creating web applications with Python: FastAPI, Flask
Familiarity with Python programming language, achieved with the "Introduction to coding" course.
The course is structured in 5 weeks, each week addresses one topic and provides hands-on experience with the relevant related software tools. The program is not intended to be immutable, it can change based on the students' interest and reactions.

Week 1:
- Management and development of a Project: waterfall, agile, open source Vs closed source.
- Tools for Software Versioning: git e github.

Week 2:
- Software Versioning

Week 3:
- Advanced.Python
- Introduction to Software Engineering
- Open Source and Free Software

Week 4
- Work with CSV and Pandas in Python
- Docker

Week 5:
- Test Driven Development
The course is based on various sources, most of which are available on-line and will be provided with the course material (slides). The sources plus the lesson slides should be enough for students that follow the lecture classes. Some of the sources will be:
- Pro Git Book: https://git-scm.com/book/en/v2
- Dive Into Python: https://www.diveinto.org/python3/table-of-contents.html

And the documentation of the open source projects we will experiment with.
Evaluation will consist of an in writing exam, along with a group project work to be briefly presented to the teacher.
In writing test will consist of multiple choices and open questions, which will anyway be relevant to what has been discussed in the classes.
Lessons will be alternating theoretical (1/3) and practical ones (2/3). During the practical lessons the main tools to be used in the project work will be explained.
Students will use some available tools and they are expected to practice with them, as well, in order to build, plan and manage their project work.
English
written and oral
Definitive programme.
Last update of the programme: 12/01/2024