09.05.2013 Views

Haga un click aquí

Haga un click aquí

Haga un click aquí

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(www.alfaomega.com.mx). 2011. México. Y es<br />

distribuido en los países de habla hispana.<br />

2. ESTADO DEL ARTE<br />

La actividad de programar computadoras ha tenido varias<br />

crisis, provocadas por el permanente aumento en la<br />

complejidad de las aplicaciones que deben enfrentarse, lo<br />

que provoca que las técnicas y estructuras que resultan<br />

adecuadas en <strong>un</strong> momento, con el paso del tiempo se<br />

vuelvan inadecuadas. Esta problemática ha dado origen a<br />

dos revoluciones: la primera, a la que se le llamó<br />

Programación Estructurada, permitió evolucionar desde<br />

programar de <strong>un</strong>a forma “tradicional”, casi artesanal, a<br />

programar de <strong>un</strong>a mejor forma, que aportó las bases para<br />

sustentar la seg<strong>un</strong>da revolución en la evolución de los<br />

paradigmas de programación, a lo que hoy se conoce<br />

como programación orientada a objetos.<br />

2.1 Programación tradicional<br />

En la década de los cincuentas y principios de los<br />

sesentas se programaba en forma “tradicional”, en esos<br />

tiempos sólo existían las estructuras lógicas:<br />

Secuenciación, If y For (que se conocía como Do en<br />

Fortran), y se utilizaban los diagramas de flujo como<br />

técnica de diseño de algoritmos o programas. Al<br />

aumentar la complejidad de las aplicaciones que se<br />

enfrentaban, esa forma de programar tuvo <strong>un</strong>a severa<br />

crisis. La arquitectura general de <strong>un</strong> programa consistía<br />

de <strong>un</strong> solo módulo o bloque de instrucciones.<br />

2.2 Programación estructurada<br />

A finales de la década de los sesentas, surge <strong>un</strong><br />

movimiento llamado programación estructurada que vino<br />

a añadir nuevas estructuras, técnicas y conceptos a la<br />

programación: se añadieron las estructuras lógicas DO-<br />

UNTIL, DOWHILE y se formalizaron el IF-THEN, IF-<br />

THEN-ELSE y CASE. Se inventó el módulo, la f<strong>un</strong>ción<br />

y el concepto de parámetros. Se desarrollaron nuevas<br />

técnicas de diseño de algoritmos o programas:<br />

seudocódigo, diagramas Warnier, diagramas Chapin,<br />

Jackson, Diseño estructurado de Yourdon, Top Down<br />

Design (Diseño descendente), entre otras; que vinieron a<br />

desplazar a la tradicional técnica de diagramas de flujo.<br />

Fueron apareciendo nuevos lenguajes: Pascal, C, Cobol<br />

estructurado, Basic estructurado. Se estableció que se<br />

debe aprender a programar utilizando <strong>un</strong> seudolenguaje,<br />

es decir, no enseñar directamente con <strong>un</strong> lenguaje. Y se<br />

estableció que se debe usar <strong>un</strong> estilo de programación que<br />

haga más entendible el algoritmo y el programa.<br />

Nuevamente al aumentar la complejidad de las<br />

aplicaciones que se enfrentaban, esa forma de programar<br />

tuvo <strong>un</strong>a severa crisis. Esto llevó a que siguiera<br />

evolucionando y se generaron los conceptos de<br />

programación modular, y luego el concepto de<br />

abstracción de datos, para dar paso al desarrollo de la<br />

programación orientada a objetos. La arquitectura general<br />

de <strong>un</strong> programa cambió, y ahora consistía de <strong>un</strong> conj<strong>un</strong>to<br />

de f<strong>un</strong>ciones o módulos jerarquizados, cada <strong>un</strong>o formado<br />

por <strong>un</strong> conj<strong>un</strong>to de instrucciones.<br />

2.3 Programación orientada a objetos<br />

A<strong>un</strong>que la programación orientada a objetos (POO)<br />

aparece muchos años antes, es a mediados de los<br />

noventas cuando se generaliza su uso. La POO añade a la<br />

programación <strong>un</strong>a nueva estructura: el objeto, con sus<br />

conceptos; objetos, clases, encapsulación, herencia y<br />

polimorfismo. Aparecen nuevas técnicas de diseño:<br />

Booch, Rumbaugh, Jacobson, Yourdon, UML (Unified<br />

Modeling Language), entre otras. Se desarrollan nuevos<br />

lenguajes: C++, Java, C#, etcétera. La arquitectura<br />

general de <strong>un</strong> programa cambió, y ahora consiste de <strong>un</strong><br />

conj<strong>un</strong>to de objetos, cada <strong>un</strong>o formado por datos y <strong>un</strong><br />

conj<strong>un</strong>to de métodos, equivalentes a módulos o f<strong>un</strong>ciones<br />

en la programación estructurada, y a su vez, cada método<br />

formado por <strong>un</strong> conj<strong>un</strong>to de instrucciones.<br />

3. PROBLEMÁTICA DE LA ENSEÑANZA<br />

APRENDIZAJE DE LA PROGRAMACIÓN<br />

En este p<strong>un</strong>to se describe la problemática de la enseñanza<br />

aprendizaje de la programación estructurada y orientada a<br />

objetos, de acuerdo con la experiencia, el enfoque y p<strong>un</strong>to<br />

de vista de este autor, observada en el contexto donde me<br />

desenvuelvo en México y en alg<strong>un</strong>os otros países de<br />

habla hispana.<br />

3. 1 Problemática de la enseñanza aprendizaje de la<br />

programación estructurada<br />

En muchas instituciones de educación incurren en alg<strong>un</strong>o<br />

de éstos errores:<br />

1. Enseñan a programar directamente con <strong>un</strong> lenguaje<br />

como C o C++. No es bueno enseñar directamente<br />

con <strong>un</strong> lenguaje, porque realmente se enseña a operar<br />

el lenguaje, y no se desarrolla la lógica necesaria<br />

para programar computadoras.<br />

2. Enseñan la lógica con diagramas de flujo. Los cuales<br />

resultan obsoletos porque no soportan todas las<br />

estructuras lógicas de control de la programación en<br />

forma natural.<br />

3. Enseñan la lógica en seudocódigos que utilizan las<br />

estructuras lógicas de control en forma<br />

castellanizada. En lugar de IF-THEN-ELSE utilizan<br />

SI-ENTONCES-SINO, en lugar de FOR utilizan<br />

PARA, en lugar de DOWHILE utilizan MIENTRAS;<br />

he usado éstos conceptos y he comprobado que no es<br />

buena idea. Las estructuras lógicas de la<br />

programación tienen sus palabras reservadas<br />

originales y no deben ser cambiadas, porque causan<br />

mucha confusión al estudiar los lenguajes de<br />

programación. Además, el tratamiento que se le da,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!