![]() |
![]() |
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:
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
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:
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:
|
||
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://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)
|
||
![]() |
![]() |