---
title: "00 - Conceptes bàsics I"
author: "Marc Sastre Rienitz"
date: 2021-10-27T21:56:35+02:00
type: post
---

# Què és un programa?
Un programa (un algoritme) és una llista d'instruccions que cal executar una darrera de l'altra.
Les instruccions es poden expresar en diversos nivells d'abstracció. Per exemple, per fer una truita de patates podries dir:

 - Alt nivell d'abstacció:
   1. Fes una truita de patates.
   
 - Nivell d'abstracció mitjà:
   1. Sofregeix ceba.
   2. Afegeix-hi patata.
   3. Bat uns ous i afegeix-los.
   4. Deixa que es faci per les dues bandes.
   
 - Baix nivell d'abstracció:
   1. Agafa una ceba i pela-la, talla-la a trossets.
   2. Posa una paella al foc mitjà amb oli i afegeix-hi la ceba.
   3. Pela patates i talla-les a rodanxes-
   4. Afegeix les patates a la paella i deixa-les que es facin.
   5. Trenca dos ous i posa'ls a un plat a batre.
   6. [...]
   
 - Molt baix nivell d'abstracció_
   1. Agafa un ganivet i talla la ceba per un paral·lel a la vora de la punta.
   2. Fes el mateix per l'altra banda
   3. Talla-la per la meitat
   4. Treu la pell marró de fora
   5. Fes talls paral·lels de mida petita.
   6. Agafa una paella i posa-hi oli
   7. Obre el fogó i encén el foc
   8. Posa la paella sobre el fogó
   9. [...]

Fixem-nos que en les descripcions de més alt nivell es descriuen accions més genèriques però s'entra menys en el detall.
Quan diem de sofregir una ceba no entrem en el detall concret de com hem pelat la ceba o com la tallem.
Per altra banda, nivells més baixos d'abstracció ens obliguen a especificar els detalls.
Quan els detalls siguin més importants, ens convidrà entendre què passa a nivells més baixos d'abstracció, mentre que quan aquests són més irrellevants, generalment ens interessarà expressar-nos en nivells més alts d'abstracció (bàsicament perquè expressem més amb menys passos i al final suposa una càrrega cognitiva menor).

# Què és programar?
Programar és dissenyar seqüències d'instruccions de manera que realitzin la tasca que desitjem.
Si volem fer una truita de patates, escriure'n una recepta seria programar. Depenent de per a qui adrecem aquesta recepta (algú amb més o menys experiència cuinant) o quin interès tinguem en els detalls, farem servir un nivell d'abstracció més alt o més baix.
La manera d'expressar instruccions que poden dur a terme ordinadors són els llenguatges de programació. Depenent del llenguatge de programació que fem servir, podrem expressar instruccions més genèriques o més específiques per a certes tasques. De la mateixa manera, certs llenguatges de programació serviran per expressar operacions de més alt o més baix nivell d'abstracció. Per exemple

