Enrere
Fonaments de Programació. Llenguatge C/C++---
  Guia    
 
Presentació

Aquest és un curs eminentment pràctic en el qual s'introduirà simultàniament tècniques de programació elemental i la sintaxi del llenguatge C/C++ en l'entorn del programari lliure. 

El curs se centra en la programació estructurada i modular i no entrarà pas en la programació orientada a objectes ni en la programació en l'entorn gràfic. 

S'ha tingut un interès especial de no fer un simple manual de C/C++, dels quals hi ha molts i més complets que aquest. Aquest curs se centra en la realització de pràctiques on es va introduint conceptes  generals de programació i específic de C/C++.

Gairebé tots els programes proposats, tant els de les pràctiques com els dels exercicis, tenen una característica comú: són molt curts. Pensem que aquesta característica és bona qualitat per a un curs d'aprenentatge. Encara que els codis de la majoria de les aplicacions que es poden fer estan formats per moltes (centenars o milers) línies, la majoria d'aquestes fan referència a aspectes de presentació, comprovació de dades i d'errors i documentació, molt necessàries per a una aplicació final, però que fan més difícil la comprensió de la part fonamental del programa: l'algorisme. Una vegada que l'alumne aprengui aquesta part fonamental, és necessari que complementi els seus programes amb els elements necessaris per donar-li el nivell d'acabament adequat. 

En el curs només treballarem amb les eines que hi teniu dins la distribució Linkat que el Departament d’Educació a fet arribar a tots els centres. Utilitzarem l’entorn Anjuta per escriure, compilar i executar les diferents pràctiques dels 8 mòduls.

En el resum teòric del primer mòdul es fa una breu descripció dels conceptes elementals dels llenguatges C i C++ així com de l’entorn de programació a emprar en aquest curs. Fen una descripció dels Entorns Integrats de Desenvolupament ( EID ) tant per les plataformes Linux com per a Microsoft Windows però  sempre dins l'entorn del programari lliure. En la primera pràctica  del primer mòdul expliquem l’ús del compilador GCC.

Totes les captures de pantalla que acompanyen aquest curs contenen un enllaç a l’arxiu .gif corresponen, per visualitzar-les amb més claredat.

Estructura del curs

El curs s'estructura en 8 mòduls. Cada mòdul està pensat per dedicar-hi dues setmanes. Consta d'un resum teòric, un conjunt de 6 a 9 pràctiques i uns exercicis. A més, la majoria de mòduls contenen també alguna pràctica addicional d'ampliació i exercicis relacionats també d'ampliació que no són de lliurament obligatori.

Resum teòric

En cada mòdul es troba una pàgina amb un resum de tots els elements que es tractaran en el mòdul. Està redactat com un manual amb exemples molt curts i està pensat sobretot per consultar elements concrets del llenguatge C/C++.

Pràctiques

En tots els mòduls es poden trobar de 6 a 9 pràctiques, més algunes d'ampliació. A cadascuna d'aquestes pràctiques hi podem trobar un o dos programes comentats en els quals es fa servir un nombre reduït d'elements del llenguatge treballats en el mòdul. 

Podem dir que hi ha dos tipus de pràctiques repartides en tots els mòduls: 

  • Pràctiques d'exemples directes d'ús d'algun element del llenguatge, per entendre bé el seu funcionament.
  • Pràctiques d'aplicacions a altres camps: geometria, probabilitat, estadística,  física, economia, informàtica, teoria de jocs, criptografia, mètodes numèrics, etc.
En molts mòduls hi ha alguna pràctica d'ampliació que, o bé utilitza aspectes avançats del llenguatge, o bé s'utilitzen elements coneguts en situacions no immediates. En qualsevol cas, aquestes pràctiques d'ampliació es poden ometre sense perdre el fil del curs.
Tots els codis de les pràctiques es poden trobar com a material del curs i, per tant, no és necessari tornar a escriure'ls. Sí que es demana a l'alumne que faci la compilació i la construcció del fitxer executable, i que provi de fer l'execució del programa en diverses situacions, així com fer lleugeres modificacions al codi font i tornar a construir l'executable per veure les conseqüències d'aquestes modificacions.
Exercicis

En tots els mòduls hi ha una proposta d'entre quatre i sis exercicis. Aquests exercicis són els elements que permeten al tutor del curs fer un seguiment avaluatiu de l'alumnat. Normalment consisteixen en aplicacions que suposen lleugeres modificacions de les pràctiques del mòdul o noves aplicacions basades en aquestes. 

També, en alguns mòduls es pot trobar algun exercici d'ampliació. Aquests exercicis no són obligatoris però el tutor els guiarà i corregirà també en el cas que l'alumnat els lliuri.

La resolució dels exercicis, perquè tingui el seu efecte avaluatiu, es recomana que sigui personal, és a dir, que cada alumne resolgui de manera individual l'exercici, proposant la solució més adient. En cas de trobar qualsevol problema l'ha de comunicar al seu tutor, que el guiarà adequadament.

Excepte en el primer mòdul, que per comprovar que s'ha fet la construcció de l'executable correctament, es demana tant el codi font com l'arxiu executable de cada exercici, a la resta de mòduls només s'ha de lliurar els arxius font (amb extensió .c .cc). El nom de cada arxiu està perfectament indicat en cada exercici. 

Un cop corregits els exercicis, el tutor o la tutora es dirigirà a l'interessat fent-li les observacions, rectificacions i anotacions que siguin d'interès. Els aspectes d'interès general que es puguin extreure de les diferents solucions presentades es comentaran en un missatge genèric a tot l'alumnat. 
 

Tutoria
 
A cada participant se li assigna un tutor o tutora que l'assessorarà i l'orientarà en l'estudi dels diferents mòduls i a qui podrà formular, per via missatgeria, les consultes, les preguntes que calgui i pugui demanar orientacions en el desenvolupament del projecte de final de curs. El tutor farà una assistència personalitzada a cada participant.

Per a consultes i comentaris sobre aspectes de qualsevol mòdul que faci necessari aclarir conceptes o dubtes generalitzats, arrodonir exemples, fer puntualitzacions o qualsevol particularitat que demani una intervenció per part del tutor a tots els alumnes, es farà mitjançant missatges genèrics a tot el grup d'alumnes assignats al mateix tutor. 

Forma recomanada de treball

És convenient començar el mòdul amb una lectura (no fa falta que sigui en profunditat) del resum teòric. A continuació, i de forma ordenada, s'hauran de treballar les pràctiques. Treballar les pràctiques consisteix en:
 

  • Llegir atentament el text de la pràctica on s'explica el funcionament del programa, l'explicació del codi i algunes indicacions teòriques.
  • Compilar i executar el programa. En alguns programes s'hauria d'executar el programa amb diferents dades per tal de veure el comportament en diverses situacions.
  • Fer lleugeres modificacions al codi, tornar a compilar-lo i observar les conseqüències d'aquests canvis.
  •  

  • Quan hi hagi algun dubte del funcionament d'alguna funció o sentència es pot tornar a consultar el resum teòric del mòdul actual, de mòduls anteriors o altres pràctiques.
Una vegada treballades totes les pràctiques es pot afrontar la resolució dels exercicis.
 

Lliurament dels exercicis

Excepte en el primer mòdul, només s'ha d'enviar un arxiu per exercici. Una vegada acabats tots els exercicis obligatoris del mòdul (i si es vol, els d'ampliació) s'han d'enviar tots junts en un únic arxiu comprimit em format .zip o .tar. El nom d'aquest arxiu comprimit estarà format per l'identificatiu (username) de l'alumne seguit d'un nombre de l'1 al 8 corresponent al mòdul que es lliura. Per exemple, si l'identificatiu de l'alumne és jpere10, els exercicis del mòdul 3 es lliuraran en un arxiu amb el nom jpere10.zip o jpere10.tar.

És clar, que en molts casos s'hauran de enviar exercicis solts, quan el tutor sol·liciti alguna modifiació d'un exercici en particular. En aquest cas, el tutor i l'alumne es posaran d'acord en la forma de fer aquests lliuraments.
 

Projecte fi de curs

Una vegada acabat l'estudi dels diferents mòduls, el participant que vulgui tenir dret al certificat del curs haurà de finalitzar-lo en el mateix curs acadèmic que ha realitzat els exercicis, desenvolupant un projecte que globalitzi la utilització dels diferents recursos apresos i que sigui una aplicació didàctica de les proposades a l'apartat projecte. De manera excepcional i tenint en compte l'especialitat del participant en el curs, es podria considerar alguna aplicació diferent, sempre amb l'aprovació del seu tutor o tutora.

Fases del projecte

El projecte es realitzarà seguint les següents fases:

  • Tria d’un projecte. En el cas que l’alumna o alumne tingui un especial interès en un tema que no estigui relacionat en la llista de possibles projectes que forma part del curs, haurà de presentar la seva proposta al tutor completament detallada. Aquest,  juntament amb l’equip formador del curs, podrà aprovar, modificar o refusar aquest projecte. 
  • Presentació de l’estructura del projecte. Una vegada triat el projecte a realitzar, l’alumne haurà de presentar per escrit una estructura d’aquest format per tots els programes (en el cas que hi hagi més d’un), totes les funcions, el format dels arxius de disc, el menú d’inici etc. Abans de passar a la següent fase, el tutor haurà de donar el vist-i-plau a aquesta estructura.
  • Presentació del projecte provisional. Quan el projecte estigui acabat, depurat i provat. Haurà de lliurar al tutor el codi font del projecte juntament amb un document en format Word, html o en forma de comentaris C/C++ amb l'explicació detallada del funcionament del o dels programes i explicació del funcionament de cada funció per separat. En el cas que el tutor ho consideri, aquesta serà considerada com la fase final del projecte, en cas contrari, el tutor comunicarà a l’alumne sobre les modificacions que haurà de fer en el seu projecte per tal de considerar-lo com el projecte definitiu.
  • Presentació del projecte definitiu. En cas que el tutor assignat hagi indicat la necessitat de fer alguna modificació al projecte provisional, l’alumne l’haurà de fer, i haurà de tornar a lliurar el projecte al tutor. 


Vegeu calendari de l'activitat.

 
  Bibliografia

1. H.M.Deitel, P.J.Deitel. C++ Cómo programar. Prentice-Hall. 1999

2. Neil Matthew, Richar Stones.Beginning Linux Programing .Wiley Publishing, Inc. 2004

3. B. Kernighan, Bob Pike. The Unix Programming Environment. Prentice-Hall. 1984

4. L. Joyanes, L. Rodriguez, M. Fernandez. Fundamentos de programación - Libro de problemas. McGraw-Hill 2000

5. Donald .E. Knuth. Algoritmos fundamentales. Editorial Reverté. 1980

6. B. Kernighan y D. Ritchie .El lenguaje de programación C (2ª ed.). Prentice-Hall. 1991

7. Stroustrup, Bjarne .El lenguaje de programación C++ 3ª ed.Addison-Wesley Turpial.1997

8. Liberty/Horvath .Aprendiendo C++ para Linux en 21 dias,. Pearson Educación.2001

Adreces electròniques de referència:

http://gcc.gnu.org

http://www.gnu.org/home.ca.html

http://www.uib.es/c-calculo/cursc.htm

http://www.elrincondelc.com/      (es pot trobar codi font de molts exemples)