LAB OF SOFTWARE PROJECT DEVELOPMENT
|Academic year||2020/2021 Syllabus of previous years|
|Official course title||LAB OF SOFTWARE PROJECT DEVELOPMENT|
|Course code||ET7018 (AF:275110 AR:182398)|
|Modality||On campus classes|
|Degree level||Bachelor's Degree Programme|
|Educational sector code||INF/01|
|Moodle||Go to Moodle page|
The only way to achieve this awareness is to actively 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:
- 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;
- Elements of databases;
- Familiarity with software versioning systems: git;
- Familiarity with software hosting/development platforms: github, kanban;
- Create, develop, document and publish a Python project;
- Management of a simple relational database: sql, queries.
1) introduction to software projects:
- Software engineering: project management and development. Waterfall, evolutionary, agile. Open source Vs closed source.
- Tools for software version control and team development: git and github.
2) Python projects
- Project structure
- Project documentation
- Publishing your project
3) Python modules of interest
- argparse, logging, JSON...
4) database and SQL.
- introduction to a relational database
- the SQLite module
5) test driven development:
- What does it mean to test
- Test with Python
- Integration with github
Some of the sources are:
- Pro Git Book: https://git-scm.com/book/en/v2
- Ian Sommerville, Software Engineering.
- Dive Into Python: https://www.diveinto.org/python3/table-of-contents.html
And the documentation of the open source projects we will experiment with.
The written test will be composed of questions with multiple choice and open answers referring to problems and techniques analyzed during the lectures.
Students will be given assignments during the course as part of their software project.
Students will install the software to experiment with the commands and achieve the learning goals.