
Fonaments d'Enginyeria del Software
Codi: 102708Crèdits: 3
| Titulació | Tipus | Curs |
|---|---|---|
| Enginyeria Electrònica de Telecomunicació | OB | 2 |
| Enginyeria de Sistemes de Telecomunicació | OB | 2 |
Professor/a de contacte
- Nom :
- Marc Esteve García
- Correu electrònic :
- marc.esteve.garcia@uab.cat
Idiomes dels grups
Podeu consultar aquesta informació al final del document.
Prerequisits
No cal saber res sobre programació
Objectius
L’objectiu de l’assignatura és introduir l’alumnat en els fonaments de l’enginyeria del programari, amb especial èmfasi en l’anàlisi i el disseny orientat a objectes, així com en la resolució de problemes mitjançant algoritmes i programació estructurada en Python. L’assignatura pretén desenvolupar la capacitat de modelitzar, implementar i validar solucions informàtiques senzilles, tot fomentant bones pràctiques de programació i autonomia en la resolució de problemes.
Resultats d'aprenentatge
Enginyeria Electrònica de Telecomunicació
- KU098 (Distingir els patrons de programació bàsics.) Distingir els patrons de programació bàsics.
- SU105 (Fer servir els fonaments teòrics de la programació i dels llenguatges de programació per al desenvolupament de sistemes de programari. Entendre l’arquitectura bàsica del computador, les seves unitats funcionals i els fonaments teòrics de programació.) Fer servir els fonaments teòrics de la programació i dels llenguatges de programació per al desenvolupament de sistemes de programari. Entendre l’arquitectura bàsica del computador, les seves unitats funcionals i els fonaments teòrics de programació.
- SU106 (Utilitzar els fonaments de la programació en xarxes, sistemes i serveis de telecomunicació.) Utilitzar els fonaments de la programació en xarxes, sistemes i serveis de telecomunicació.
- SU107 (Dissenyar i implementar bases de dades en el desenvolupament d’aplicacions programari i, en concret, les aplicades a sistemes d’informació.) Dissenyar i implementar bases de dades en el desenvolupament d’aplicacions programari i, en concret, les aplicades a sistemes d’informació.
Enginyeria de Sistemes de Telecomunicació
- KU098 (Distingir els patrons de programació bàsics.) Distingir els patrons de programació bàsics.
- SU105 (Fer servir els fonaments teòrics de la programació i dels llenguatges de programació per al desenvolupament de sistemes de programari. Entendre l’arquitectura bàsica del computador, les seves unitats funcionals i els fonaments teòrics de programació.) Fer servir els fonaments teòrics de la programació i dels llenguatges de programació per al desenvolupament de sistemes de programari. Entendre l’arquitectura bàsica del computador, les seves unitats funcionals i els fonaments teòrics de programació.
- SU106 (Utilitzar els fonaments de la programació en xarxes, sistemes i serveis de telecomunicació.) Utilitzar els fonaments de la programació en xarxes, sistemes i serveis de telecomunicació.
- SU107 (Dissenyar i implementar bases de dades en el desenvolupament d’aplicacions programari i, en concret, les aplicades a sistemes d’informació.) Dissenyar i implementar bases de dades en el desenvolupament d’aplicacions programari i, en concret, les aplicades a sistemes d’informació.
Continguts
- Introducció a la programació i als paradigmes bàsics de desenvolupament de programari.
- Patrons de programació i estructures de control fonamentals.
- Fonaments teòrics de la programació i dels llenguatges de programació.
- Arquitectura bàsica del computador i unitats funcionals.
- Programació aplicada a sistemes, xarxes i serveis de telecomunicació.
- Conceptes bàsics de bases de dades i introducció al disseny i implementació d’aplicacions amb persistència de dades.
- Resolució de problemes mitjançant tècniques de programació estructurada i modular.
- Desenvolupament d’exemples pràctics i casos aplicats a l’àmbit de les telecomunicacions.
Activitats formatives i Metodologia
| Títol | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|
| Classes teòriques, resolució de problemes i pràctiques de laboratori | 30 | 1,2 | KU098, SU105, SU106, SU107 |
| Estudi, resolució d’exercicis i desenvolupament de pràctiques | 23 | 0,92 | KU098, SU105, SU106, SU107 |
| Desenvolupament supervisat d’exercicis i projectes | 22 | 0,88 | KU098, SU105, SU106, SU107 |
- Dirigida: hores presencials de classe i laboratori.
- Supervisada: tutories i seguiment.
- Autònoma: resta d’hores fins al total de l’assignatura.
Avaluació
Activitats d'avaluació continuada
| Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|---|
| Pràctica individual de programació | 15% | 0 | 0 | KU098, SU105, SU106, SU107 |
| Projecte integrador de programació en Python | 35% | 0 | 0 | KU098, SU105, SU106, SU107 |
| Prova individual 1 | 25% | 0 | 0 | KU098, SU105 |
| Prova individual 2 | 25% | 0 | 0 | KU098, SU105, SU106, SU107 |
L’avaluació de l’assignatura es durà a terme de manera continuada a partir de diferents evidències d’aprenentatge, combinant proves individuals, activitats pràctiques i el desenvolupament d’un projecte integrador en Python.
Les activitats d’avaluació són les següents:
- Prova individual 1: prova teoricopràctica sobre els primers continguts de l’assignatura. Representa el 25% de la qualificació final.
- Prova individual 2: prova teoricopràctica de caràcter integrador sobre els continguts treballats durant el curs. Representa el 25% de la qualificació final.
- Pràctica individual de programació: resolució, implementació i validació d’un exercici de programació en Python. Representa el 15% de la qualificació final.
- Projecte integrador de programació en Python: desenvolupament d’una aplicació senzilla que integri els principals continguts de l’assignatura, com ara la programació estructurada i modular, l’orientació a objectes, la persistència de dades, el tractament d’errors, les proves i la documentació del codi. Representa el 35% de la qualificació final.
La qualificació final es calcularà mitjançant l’expressió següent:
Nota final = 0,25 × Prova 1 + 0,25 × Prova 2 + 0,15 × Pràctica individual + 0,35 × Projecte integrador
Per superar l’assignatura caldrà obtenir una qualificació final igual o superior a 5 sobre 10. També serà necessari obtenir una mitjana mínima de 4 sobre 10 en el conjunt de les dues proves individuals. En cas que no es compleixi aquesta condició, la qualificació final màxima de l’assignatura serà de 4,7.
La pràctica individual i el projecte podran incloure diferents fases, lliuraments parcials o activitats de validació. El professorat podrà demanar una explicació, una defensa breu o una modificació del codi per comprovar-ne l’autoria i el grau de comprensió. Les activitats no lliurades dins del termini establert es qualificaran amb un zero, excepte en casos degudament justificats.
Les proves individuals es podran recuperar mitjançant una prova de recuperació. La qualificació obtinguda substituirà la nota de la prova corresponent. La pràctica individual i el projecte integrador no seran recuperables, ja que es desenvolupen i s’avaluen progressivament durant el curs.
El calendari de les activitats, els terminis de lliurament i les dates de les proves es publicaran al Campus Virtual. Per a cada activitat d’avaluació s’indicarà el procediment i el període de revisió de la qualificació.
Qualsevol irregularitat que pugui alterar la qualificació d’una activitat, com ara la còpia, el plagi, la suplantació d’identitat o l’ús no autoritzat d’eines d’intel·ligència artificial, comportarà l’aplicació de les mesures previstes per la normativa acadèmica de la UAB. Quan l’ús d’aquestes eines estigui permès, l’alumnat haurà de declarar-lo i ser capaç de justificar i defensar el treball presentat.
Bibliografia
- Think Python: How to Think Like a Computer Scientist — Allen B. Downey (allendowney.github.io)
- Python Crash Course, 3rd Edition — Eric Matthes (nostarch.com)
- Python for Everybody — Charles R. Severance (py4e.com)
- The Python Tutorial — Python Software Foundation (Python documentation)
- Software Engineering at Google — Titus Winters, Tom Manshreck i Hyrum Wright (abseil.io)
Programari
- Visual Studio Code
- Python
- Jupyter
- Github
- Navegador
Grups i idiomes de l'assignatura
La informació proporcionada és provisional fins al 30 de novembre. A partir d'aquesta data, podreu consultar l'idioma de cada grup a través d'aquest enllaç. Per accedir a la informació, caldrà introduir el CODI de l'assignatura
| Tipus de docència | Grup | Idioma | Semestre | Torn |
|---|---|---|---|---|
| (TE) Teoria | 31 | Català/Castellà | primer quadrimestre | matí-mixt |
| (PAUL) Pràctiques d'aula | 311 | Català/Castellà | primer quadrimestre | matí-mixt |
| (PLAB) Pràctiques de laboratori | 311 | Català/Castellà | primer quadrimestre | matí-mixt |
| (PAUL) Pràctiques d'aula | 312 | Català/Castellà | primer quadrimestre | matí-mixt |
| (PLAB) Pràctiques de laboratori | 312 | Català/Castellà | primer quadrimestre | matí-mixt |