Compiled on: 2025-06-30 — printable version
teacher: Giovanni Ciatto, Junior assistant professor (RTD-A)
email: giovanni.ciatto@unibo.it
office hours: dynamic, send an email to the teacher for an appointment
Students must enroll
Tuesdays (14:30-17:30) in lab 4.2
Thursdays (11:00-13:00) in lab 3.1
Virtual room on Teams is just for the chat
I will do my best follow the Italian convention “quarto d’ora accademico”
(i.e., starting 15 minutes after the scheduled time to allow people to accommodate)
(Only insights here, there will be a dedicated lecture on this topic)
Put it simply, software engineering is about producing working software products
In particular, nowadays, software engineering must also deal with:
At the end of the course…
To reach that goal, we shall follow a learn-by-doing approach
The exam consists of: written test and a (optionally) a project work
27/30
6/30
30/30
)30/30
The rationale is as follows:
The written test consists of a closed-book exam with open-ended questions
The project work consists of an individual or group effort where
There will be 6 calls for the written tests along the academic year
The exact dates and locations of the exams will be made available on AlmaEsami, where you will be able to register for exam calls
The written test will be in presence, no exception
The written test should be conducted on the University’s computers, but may fall back on paper in case of technical issues
The written test is closed-book, with open-ended questions
The list of potential questions that the written test may contain is available here
During the exam, you will be subject to the following restrictions:
Results will be available on AlmaEsami within a few days from the exam
Students should inform the teacher of any provable special needs or disabilities that may require special arrangements for the exam
Upon reaching a successful result ($\geq$ 18/30
), it is up the student to:
The project work is optional, but it is strongly recommended
The project work can be done either individually or in groups of up to 3 students
The evaluation of the project work will focus not only on the outcome (the software artifact) but also on the process (the report)
(Starting after passing the written test is recommended by not mandatory)
Proposal: students propose a project theme/topic/concept on the Project work forum
Approval: the teacher may provide feedback, suggest changes/strategies, or set requirements, and eventually approve the proposal
Repositories creation: students create a GitHub organization and grant the teacher access to it
gciatto
)unibo-dtm-se-2425-YOUR_PROJECT_NAME
Development: students develop the software artifact and write the report
Submission: students submit their GitHub organization URL on the Project work forum and ask an appointment for the discussion
Discussion: students present and discuss their project work with the teacher
If you decide to do the project work, you will have to develop a software artifact to prove your capability to carry out a software project
The software to be developed can range from simple to complex, depending on your familiarity with development
Simple or complex, the point of the software artifact is to demonstrate your understanding of the software engineering process
The software artifact can be developed in any programming language of choice
Exploitation of Git, GitHub, and version control is important and will be evaluated
Templates and guidelines for the source code will be provided on the GitHub organization of the course
The report (documenting the process) is as important as the code it describes (the outcome)
The report must be a document describing the design and development processes of the software artifact
The report is the entry point for evaluating the project work
Technically speaking, the report should be written in Markdown and should match this template
The written test is evaluated numerically, after the written test is over:
0
to the maximum27
Project work is evaluated once per group
6
Assessing a software project is not trivial, and subjectivity is unavoidable
The final score is the sum of the normalized scores of the written test and the project work
33/30
, the final mark is capped to 30/30
27/30
6/6
), any written test score $\geq$ 24/30
will result in a final mark of 30/30
30L
(cum laude) is assigned when the final mark (before capping) is above 30/30
A video game, e.g. a remake of classical games such as Pong, Arkanoid, Pacman, Snake, Tetris, etc., as well as board or card games
A web application providing some useful functionality to multiple users
A desktop application providing some useful functionality to a single user
A command-line application providing some useful functionality to developers
A library for doing something useful
Take inspiration from the “Object Oriented Programming” course
Take inspiration from the “Distributed Systems” course
An account on GitHub (create one if missing)
john-doe
instead of johnny-the-king
)A working installation of Python
3.11.x
A working installation of Git
A working installation of Visual Studio Code
[Useful] A working installation of PyCharm
Lectures are recorded by default
During the course, access to recordings is by-request only (send an email to the teacher)
At the end of the course, the recordings will be made available to all students
Recordings are not a substitute for attending the lectures
Recordings will be made following a best-effort approach
Slides and other materials are available on Virtuale and GitHub
The online version of the slides is updated automatically
If you need to print the slides, please use the printable version of the slides, which is commonly available in the first slide of each lecture
If you use Generative AI tool (e.g. ChatGPT, Copilot, etc.) in writing your code or report, this is fine
But you must be transparent about what AI tool you used and why
you must declare that by means of a disclaimer at the beginning of your report, e.g.:
“During the preparation of this work the author(s) used [NAME TOOL / SERVICE] in order to [REASON].
After using this tool/service,
the author(s) reviewed and edited the content as needed
and take(s) full responsibility for the content of the final report/artifact.”
If the disclaimer is not present in your report, this will be interpreted as “no Generative AI was used at all”
If I have the impression that some student has blindly copy-pasted content (from either AI chat, or the slides, or some book) without understanding it, I will set up an oral examination and ask further questions to investigate whether the student has actually understood what they wrote or not
Compiled on: 2025-06-30 — printable version