Sistemes Operatius

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
  • Prerequisit: EC
  • Prerequisit: IC
Departament
AC
La assignatura ofereix una visió del SO des de tres punts de vista: serveis que ofereix el sistema a usuaris/programes i la seva utilització, principals elements de disseny interns de un kernel (estructures de dades i algorismes) , i finalment relaciona aquests dos components per entendre com afecta al rendiment de un sistema la execució dels programes de forma concurrent (o paral•lela segons la arquitectura). La assignatura es bassa en el context del kernel de un SO (dins del node), no entrant en aspectes de xarxa.

Professorat

Responsable

  • Yolanda Becerra Fontal ( )

Altres

  • Adria Armejach Sanosa ( )
  • Amador Millán Vizuete ( )
  • Carlos Garcia Calatrava ( )
  • David Álvarez Robert ( )
  • Enric Morancho Llena ( )
  • Javier Verdu Mula ( )
  • Jordi Fornes de Juan ( )
  • Jordi Guitart Fernandez ( )
  • Jordi Torres Viñals ( )
  • Julita Corbalan Gonzalez ( )
  • Pere Barlet Ros ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0.4
Aprenentatge autònom
5.6

Competències

Competències Tècniques

Competències tècniques comunes

  • CT2 - Utilitzar d'una manera apropiada teories, procediments i eines en el desenvolupament professional de l'enginyeria informàtica en tots els seus àmbits (especificació, disseny, implementació, desplegament -implantació- i avaluació de productes) de manera que es demostri la comprensió dels compromisos adoptats a les decisions de disseny.
    • CT2.3 - Dissenyar, desenvolupar, seleccionar i avaluar aplicacions, sistemes i serveis informàtics i, al mateix temps, assegurar-ne la fiabilitat, la seguretat i la qualitat en funció de principis ètics i de la legislació i la normativa vigents.
  • CT3 - Demostrar coneixement i comprensió del context organitzatiu, econòmic i legal en el qual es desenvolupa la seva feina (coneixement adequat del concepte d'empresa, del marc institucional i jurídic de l'empresa, d'organització i gestió de les empreses).
    • CT3.6 - Demostrar coneixement de la dimensió ètica a l'empresa: la responsabilitat social i corporativa en general i, en particular, les responsabilitats civils i professionals de l'enginyer en informàtica.
  • CT6 - Demostrar coneixement i comprensió del funcionament intern d'un computador i del funcionament de les comunicacions entre ordinadors.
    • CT6.1 - Demostrar coneixement i tenir capacitat per a administrar i mantenir sistemes, serveis i aplicacions informàtiques.
    • CT6.2 - Demostrar coneixement, comprensió i capacitat d'avaluar l'estructura i l'arquitectura dels computadors, i els components bàsics que els componen.
    • CT6.3 - Demostrar coneixement de les característiques, funcionalitats i estructura dels Sistemes Operatius que en permeti un ús adequat, administració i disseny, així com la implementació d'aplicacions basades en els seus serveis.
  • CT7 - Avaluar i seleccionar plataformes de producció hardware i software per a l'execució d'aplicacions i de serveis informàtics.
    • CT7.1 - Demostrar coneixement de les mètriques de qualitat i saber-les utilitzar.
    • CT7.2 - Avaluar sistemes hardware/software en funció d'un criteri de qualitat determinat.
    • CT7.3 - Determinar els factors que incideixen negativament en la seguretat i la fiabilitat d'un sistema hardware/software, i minimitzar-ne els efectes.
  • CT8 - Planificar, concebre, desplegar i dirigir projectes, serveis i sistemes informàtics en tots els àmbits, liderar-ne la posada en marxa, la millora contínua i valorar-ne l'impacte econòmic i social.
    • CT8.4 - Elaborar el plec de condicions tècniques d'una instal·lació informàtica que compleixi els estàndards i la normativa vigent.

Competències Transversals

Actitud adequada davant el treball

  • G8 [Avaluable] - Tenir motivació per a la realització professional i per a afrontar nous reptes, tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Sentir-se motivat per la qualitat i la millora contínua, i actuar amb rigor en el desenvolupament professional. Capacitat d'adaptació als canvis organitzatius o tecnològics. Capacitat de treballar en situacions de carència d'informació i/o amb restriccions temporals i/o de recursos.
    • G8.1 - Tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Tenir una actitud positiva i receptiva respecte de la qualitat en el desenvolupament de la professió.

Objectius

  1. Conèixer les principals funcions d'un S.O. i el perqué de la seva necessitat (abstracció/cirtualització del hardware, seguretat, eficiència)
    Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  2. Entendre com ofereix i gestiona el S.O. els seus serveis i funcionalitats internament mitjançant dades de representació i gestió dels recursos, algorismes i suport hardware
    Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  3. Tenir una visió general dels sistemes informàtics: conèixer les diferents interfícies i components que interactuen amb el S.O. (hardware, llibreries de sistema, llibreries de llenguatge+programes d'usuari)
    Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  4. Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): conèixer com influeixen aspectes bàsics de les diferents arquitectures i entorns que poden suportar els sistemes operatius
    Competències relacionades: CT7.3, CT8.4,
  5. Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): Entendre l'element hardware que pretenem virtualitzar
    Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT7.3, CT6.2, CT8.4, CT3.6, CT2.3,
  6. Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): conèixer i ser capaç d'usar la funcionalitat bàsica que ofereix el sistema a l'usuari.
    Competències relacionades: CT6.1, CT7.3, CT2.3,
  7. Per cada funcionalitat bàsica del sistema (gestió de procesos, memòria i e/s): conèixer el elements bàsics de disseny (tipus de dades, estructures de gestió de dades i algorismes de gestió) per oferir aquesta funcionalitat.
    Competències relacionades: CT6.3, CT7.3, CT2.3,
  8. Per cada funcionalitat bàsica del sistema (gestió de processos, memòria i e/s): conèixer la rel.lació bàsica amb l'arquitectura dels elements de disseny bàsics en S.O.
    Competències relacionades: CT6.3, CT7.3, CT2.3,
  9. Per cada recurs bàsic que gestiona el S.O. (procesos, memòria virtual i e/s) conèixer les métriques bàsiques per avaluar un servei de sistema i ser capaç d'aplicar-les a nivell teòric.
    Competències relacionades: CT7.1, CT7.2,
  10. Per cada recurs bàsic que gestiona el sistema (processos, memòria i e/s), conèixer i ser capaç d'utilitzar les eines bàsiques del sistema per analitzar una aplicació així com per monitoritzar l'estat del sistema per detectar possibles problemes.
    Competències relacionades: CT6.1, CT6.3, CT7.3, CT2.3,
  11. Entendre les implicacions, desde el punt de vista de sistema i de usuari,de un sistema multi-usuari i paral.lel.
    Competències relacionades: CT7.1, CT7.3, CT6.2, CT8.4,
  12. Ser capaç de participar amb actitud proactiva en el desenvolupament profesional, demostrant assistència, puntualitat i respecte
    Competències relacionades: G8.1,
  13. Ser capaç de mostrar motivació per la qualitat i la millora continua
    Competències relacionades: G8.1,

Continguts

  1. Introducció als Sistemes Operatius
    En aquest capítol es donarà una visió del que és un S.O. els recursos hardware que gestiona, quins son el serveis
    que ofereix, funcionalitats etc. També s'introduiran els diferents tipus d'usuaris i aplicacions que interactuen amb el S.O. així com les diferents formes d'accedir.
  2. Gestió de processos
    En aquest capítol es tractaran els següents punts: Concepte de procés. Contexte d'un procés. La vida d'un procés. Concepte de planificació de processos.. Mecanisme de canvi de context. Gestió d'events (signals). Concepte de flux. Concepte de concurrència. Problemes associats a la concurrència. Comunicació entre processos: memòria compartida i pas de missatges (només a nivell de concepte).. Serveis bàsics oferts pel sistema associats a processos i fluxes: crides a sistema i gestió de la eficiencia, seguretat entre usuaris, fiabilitat, etc. Idea/contexto: registros, pila, memoria (espacio de direcciones)/estados/eventos (signals) /usuario/variables de entorno .Representació interna de procesosen s en linux així com l'algorisme round robin de planificació a mode il.lustratiu.
  3. Gestió de memòria
    En aquest capítol es tractaran els següents punts: Requeriments en quant a memòria d'un sistema multiprogramat de propósit general (espai d'adreces d'un procés i necessitat de la memoria virtual). Serveis bàsics de gestió de memòria oferts pel sistema: suport a la traducció d'adreces, protecció de processos, càrrega de processos, memòria dinàmica, gestió de la memòria virtual, etc. Estructuras y algoritmos para la gestión de la memoria virtual.
  4. Gestió de l'entrada/sortida
    En aquest tema es tractaran els següents punts: Característiques i tipus de disposituis. Concepte d'Independencia de dispositivos.
    Relació entre la gestió de entrada/sortida i la gestió de processos: operacions bloquejants. Tipus de dispositius lógics: pipes, consola, sockets i fitxers. Serveis bàsics i estructures de dades necessaries. Gestió de l'espai de noms. Representació interna i algorismes: Suport a la gestió eficient dels dispositius (buffering, spooling,caching, bloqueig).
    Concepte de Sistema de Fitxers (SF) i per qué serveix. Arquitectura en capes d'un SF. Introducció al VFS. Diferents tipus de fitxers i serveis bàsics associats a fitxers. Organització interna a Linux : directoris, i-nodes. Organització de l'espai al disc: fragmentació, ,particions, serveis associats a SF's, gestió de l'espai lliure/ocupat.

Activitats

Activitat Acte avaluatiu


Desenvolupament del tema de Introducció als S.O

Durant aquesta activitat es donarà a l'alumne una visió general del que és un S.O., quines son les seves funcionalitats i serveis i quins son els principals components dels sistema que anirem desenvolupant durant el curs.
Objectius: 1 2 3
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Familiarització amb l'entorn de treball

Durant aquesta activitat s'utilitzaran comandes bàsiques per treballar amb un entorn de treball Linux, especialment per treballar des de la línea de comandes però també entendre la relació amb un entorn gràfic. Es practicaran comandes per navegar pel sistema de fitxers, per manipular fitxers, etc.
Objectius: 1 2 3 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Programació en C i desenvolupament de projectes

Durant aquesta activitat es treballarà la programació en C i es donaran algunes guies bàsiques per desenvolupar els petits projectes que faran els alumnes a les sessions de laboratori de forma que tinguin una estructura similar en quant a eines, organització de fitxers etc.
Objectius: 1 2 3 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Desenvolupament dels conceptes de Teoria associats a Processos

Durant aquestes hores es practicaran els conceptes i serveis bàsics relacionats amb processos i fluxes. S'explicaran els conceptes relacionats amb la organització i gestió internes que fa el S.O. per oferir aquests serveis i funcionalitats. També es tractaran aspectes relacionats amb la eficiència dels sistemes, fiabilitat, protecció, etc.
Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
8h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Serveis bàsics relacionats amb processos

Durant aquesta activitat es practicaran les crides a sistema bàsiques que podem trobar a un sistema Linux per crear un procés, canviar el seu executable, esperar el procés y finalitzar el procés. També practicarem comandes des d'un punt de vista d'administrador relacionades amb la monitorització de processos.
Objectius: 6 7 10 11 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Utilització de fluxes i serveis avançats de processos

Durant aquesta activitat practicarem amb fluxes (POSIX). També introduirem la gestió d'events entre processos (signals) tant com a mecanisme de comunicació com a servei de gestió de processos avançat. Es treballaran aspectes relacionats amb la concurrència dels processos.
Objectius: 4 5 6 7 10 11 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Gestión de procesos: sessió de problemes

Durant aquest sessió es resoldran exercicis rel.lacionats amb la gestió de problemes
Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Desenvolupament dels conceptes associats a gestió de memòria

Durant aquestes hores es practicaran els conceptes bàsics relacionats amb la gestió de la memòria, es descriuran els serveis i funcionalitats que ofereix el sistema als usuaris (incloent-hi les optimitzacions que es fan típicament a nivell de llibreria) i es descriuran els mecanismes i algorismes de gestió interns del kernel per gestionar la memòria virtual.
Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
4h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Serveis bàsics per gestionar memòria

Durant aquesta sesió de laboratori es practicarà amb serveis bàsics per gestionar la memòria dels processos i algunes comandes per monitoritzar l'estat dels procesos
Objectius: 5 6 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Mesures de rendiment i planificació de processos. Impacte de l'entorn multiproceso.

S'avaluaran diferents programes amb diferents configuracions en quant a processos i càrrega del sistema per veure analíticament com influeix en les aplicacions la seva pròpia estructura i l'estat del sistema.
Objectius: 4 5 6 7 8 9 11 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Primer control avaluació continuada

Aquest control inclourà els temes d'Introducció, Processos i memòria. Aquest exàmen pot incloure tant preguntes teòriques com problemes.
Objectius: 1 2 3 4 5 6 7 8 9
Setmana: 8 (Fora d'horari lectiu)
Tipus: examen de teoria
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
6h

Desenvolupament dels conceptes associats a la entrada /sortida de dades

Durant aquestes hores es s'explicaran els conceptes relacionats amb la gestió de la entrada/sortida de dades: tipus de dispositius, serveis i funcionalitats relacionats amb la entrada/sortida i gestió del sistema de la independència de dispositius.
Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
10h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

Serveis bàsics de gestió entrada / sortida

En aquesta sesió es practicarán serveis bàsics per gestionar la entrada/sortida de processos. Es faran exercicis per consolidar els conceptes relacionats amb la independència de dispositius.
Objectius: 5 6 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Serveis avançats per gestionar la entrada/sortida

Durant aquesta sessió s'aprofundiran en serveis i comandes més complexes per gestionar la entrada/sortida de processos així com la relació amb altres serveis del sistema com per exemple la gestió d'events (signals)
Objectius: 6 7 11 12 13 4 5
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Gestió de l'entrada/sortida amb dispositius bloquejants: sockets

Durant aquesta sessió es possaran en comú la gestió de la entrada/sortida vista fins al moment considerant les particularitats d'alguns dispositius concrets, com per exemple un dispositiu de xarxa (sockets)
Objectius: 6 10 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Sistemes de fitxers i Fitxers de dades

Durant aquesta sessió es practicaran diferent comandes relacionades amb la gestió del SF i s'utilitzaran crides a sistema específiques de fitxers de dades
Objectius: 5 6 7 8 9 12 13
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Gestió d'Entrada/Sortida i comunicació de procesos: sessió de problemes

Durant aquesta sessió es fan exercicis rel.lacionats amb la gestió de la entrada/sortida de dades i la comunicació entre procesos
Objectius: 4 5 6 7 8 9 10 11
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Sistemes de Fitxers: problemas


Objectius: 1 2 4 5 6
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Exercici de validació de gestió de processos, gestió de memoria, entrada/sortida de processos i sistemes de fitxers

Quan s'acabin totes les sessions de laboratori es farà un exercici puntuable per la nota de laboratori (avaluació continuada)
Objectius: 6 8 10 11
Setmana: 14 (Fora d'horari lectiu)
Tipus: examen de laboratori
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
2h

Segon control avaluació continuada

Aquest segon control pot incloure preguntes de la matèria vista durant tot el curs però es farà émfasis en els darrers temes no avaluats en el primer parcial. Aquest examen pot incloure tant preguntes teòriques com problemes.
Objectius: 1 2 3 4 5 6 7 8 9 10 11
Setmana: 14 (Fora d'horari lectiu)
Tipus: examen de teoria
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
6h

Examen final laboratori

Examen final de laboratori que inclourà qualsevol crida a sistema, eina, concepte, etc practicat al laboratori.
Objectius: 6 10 11
Setmana: 14
Tipus: examen de laboratori
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Examen final teoria

Examen escrit que inclourà tot el temari del curs. Aquest examen pot incloure tant preguntes teòriques com problemes.
Objectius: 1 2 3 4 5 6 7 8 9 10 11
Setmana: 15 (Fora d'horari lectiu)
Tipus: examen final
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
3h

Comunicació entre processos



Teoria
0h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Metodologia docent

L'assignatura tindrà principalment dos tipus de classe: teoria i laboratoris. Les classes de teoria seran per explicar conceptes principalment genérics o aplicats al cas particular de Linux. Aquestes classes es faran amb el suport de transparencies. Les classes de laboratori seran setmanals i inclouran un treball previ a realitzar per l'alumne, uns exercicis per fer a classe de forma individual i unes preguntes que s'hauran d'entregar a final de classe. L'assistència com a mínim al 80% de les sessions de laboratori és condició necessària per a poder aprovar l'avaluació continuada de la assignatura. Encara que totes les sessions inclouran aquestes preguntes per entregar, no totes supossaran un acte avaluatiu, nomes aquelles que estiguin marcades com a tal. La resta serviran per fer el seguiment de l'alumne i per controlar la realitzacio del treball previ i l'actitud de l'alumne a classe. Especialment a les classes de laboratori es valoraran aspectes com la puntualitat de l'alumne i l'actitut positiva davant l'assignatura.

Mètode d'avaluació

Avaluació de les Competències Tècniques
La nota de la competència tècnica es basa en dos components: nota avaluació continuada (EC) i nota avaluació no continuada (EF). La component EC només es tindrà en compte per als estudiants que acreditin un seguiment de l'assignatura: han assistit com a mínim al 80% de les sessions de laboratori i han fet el treball de les sessions. Entregar una feina no original (no feta per l'estudiant) es considera frau i implica una nota de 0 de la component EC.

Nota= max(EF, 0,6*EF+0,4*EC).

EC: 50% teoria + 35% laboratori + 15% seguiment laboratori
- teoria: tesultant de 1 parcial al final del tema de processos
- laboratori: resultant de 1 exercici puntuable després de fer la sessió 4 de laboratori. Aquest exàmen es fa fora d'hores de classe
- seguiment laboratori: avaluarà la feina feta en algunes sessions de laboratori.

EF: 50% Teoria+ 50% laboratori
- Prova puntuable que consta de dos parts: teoria i laboratori. Es fa a final de curso i avalúa tot el contingut del curs


Avaluació de la Competència Genèrica
Es valoraran els següents punts:
1) Actitud proactiva (rigor) en el desenvolupament professional.
* Assistència. Els estudiants hauran d'assistir a un 80% de les sessions de laboratori.
*Puntualitat. Els estudiants hauran d'arribar puntuals a classe, amb un marge de 10 minuts. Es penalitzarà als estudiants que reiteradament arribin tard.
*Respecte. Els estudiants hauran d'actuar amb respecte vers els companys i els professors.
- El professor serà l'encarregat de detectar i anotar els casos de manca de respecte, ja sigui vers ell mateix o vers els companys de l'estudiant. Si durant l'evolució de l'assignatura aquest casos no milloren s'obtindrà una avaluació negativa de la competència.
2) Actitud proactiva (motivació) per la qualitat i la millora contínua.

* Qualitat. Es valorarà la qualitat del codi lliurat tenint en compte, principalment: l'acompliment dels requeriments dels enunciats, la claredat del codi i l'organització del document.
* Motivació i Responsabilitat. A les sessions de laboratori es demanarà als estudiants un treball previ que hauran de realitzar necessàriament.
- El treball previ tindrà preguntes associades que ajudaran a identificar i penalitzar als estudiants que no realitzin correctament aquests treballs. Tanmateix es podrà avaluar molt positivament aquells estudiants que realitzin uns treballs excel.lents.
NOTA de la Competència:
La nota de la competència s'obtindrà a partir dels valors de les informacions obtingudes per: Assistència, Puntualitat, Respecte, Motivació, Qualitat i Responsabilitat.

Excepcions:
- La no assistència al 80% de les sessions de laboratori implica automàticament tenir una D a la nota de la competència
- Si un estudiant copia en les entregues de laboratori té automàticament una D a la nota de la competència
- Aquells alumnes que mostrin una clara falta de respecte i motivació com per exemple apuntar-se fora de plaç als exàmens tindran una D a la competència.

Bibliografia

Bàsica:

Complementaria:

Web links

Capacitats prèvies

L'estudiant ha de tenir les capacitats técniques que li otorguen les assignatures cursades previament a més de un nivell d'anglés técnic mínim com per llegir una documentació. En quant a capacitats técniques podriem resumir en:
-En quant a estructura de computadores: Coneixement dels elements principals d'un ordenador, relacio d'aquests elements entre si, representació interna de dades i coneixements bàsics de llenguatge màquina.
-En quant a programació: Capacitat de fer programes desde cero que incloguin definició de tipus de dades, disseny d'un programa, més o menys complex, en diferents funcions ( que puguin estar en mes d'un fitxer) i fases de creació d'un executable.