Metodologías para la Enseñanza Aprendizaje de la Programación Estructurada y Orientada a Objetos



Documentos relacionados
Metodologías para la Enseñanza Aprendizaje de la Programación Estructurada y Orientada a Objetos

Metodología para el Desarrollo de la Lógica de la Programación Orientada a Objetos

Metodología para la enseñanza aprendizaje de la lógica de la. programación orientada a objetos.

Metodología para la Enseñanza Aprendizaje de la Lógica de la Programación Orientada a Objetos

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

Recursos para el Estudio en Carreras de Ingeniería 2006 UNIDAD TEMÁTICA Nº 4 LA TOMA DE APUNTES

Puedes Desarrollar Tu Inteligencia

Encuentro Internacional sobre

DIAGRAMA DE CLASES EN UML

PROYECTO DE INNOVACIÓN DE LA PRACTICA EDUCATIVA Y DE CAPACITACIÓN DE JÓVENES Y ADULTOS

Biografía lingüística

Java Avanzado Facultad de Ingeniería. Escuela de computación.

PROGRAMACIÓN ORIENTADA A OBJETOS

guía para LOS PADRES APOYANDO A SU HIJO EN TERCER GRADO MATEMÁTICAS

Modulo 1 El lenguaje Java

PARA COMERCIANTES Y AUTÓNOMOS. INFORMACIÓN SOBRE TARJETAS DE CRÉDITO.

Soporte lógico de computadoras

32 - CÓMO PROGRAM A R AC T I V I D A D E S E N

Notación UML para modelado Orientado a Objetos

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

CAPITULO I INTRODUCCION. Leer es el proceso mediante el cual se construyen significados a través

Tipos de ensayos y artículos

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

La ventana de Microsoft Excel

DISENO DE CURSOS AUTOGESTNOS. Mana del Socorro Perez Alcala

Universidad Tec Milenio: Profesional SP04005 Reingeniería de procesos

COMPETENCIA MATEMÁTICA Y RESOLUCIÓN DE PROBLEMAS

Paris, 15 de oct. de 15

VENTAJAS Y DESVENTAJAS DE LAS TECNOLOGIAS

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

Colegio Alexander von Humboldt - Lima. Tema: La enseñanza de la matemática está en un proceso de cambio

Matemáticas para la Computación

Conociendo a Mi Hijo

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Curso de Excel Avanzado

La redacción en el currículo académico universitario. Maty García-Arroyo Facultad de Estudios Humanísticos

Instructivo de Microsoft Excel 2003

Aprender español vía proyectos en niveles avanzados: una experiencia docente

Los estados financieros proporcionan a sus usuarios información útil para la toma de decisiones

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Seminario Profesional MS PROJECT MODULO 2: Introducción y organización de las tareas

CAPÍTULO II INTRODUCCION A LA MATEMÁTICA FINANCIERA EN LA GESTIÓN

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Centro de Capacitación en Informática

Trabajo Semanal Alternativo

Para obtener una cuenta de padre

Aprendamos sobre el VIH/SIDA. Millones de personas alrededor del mundo mueren de SIDA cada año. No importa de dónde venimos o a dónde vayamos,

PREGUNTAS FRECUENTES Nuevo Plan de Jubilación a Partir del 1º de Julio del 2014

Introducción Cómo empezar a monetizar mi blog? Porqué son tan interesantes los ingresos por sistemas de afiliados?...

El rincón de los problemas

RESUMEN. Colegio Antonio Machado Baeza (Jaén)

Música. Tocar y cantar Autor: Carlos Guido

guía para LOS PADRES APOYANDO A SU HIJO EN PRIMER GRADO MATEMÁTICAS

Como registrar tu Equipo en un Evento

A practicar: Interactivos de matemáticas para niños

Vigilar que las credenciales para votar se entreguen oportunamente a los ciudadanos;

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

LAS FRACCIONES DE CARLOS

ESTRATEGIAS PARA EL CÁLCULO MENTAL

Construcción de Escenarios

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

TECNICA TOMATIS INTEGRACION DE IDIOMAS. Dra. Mº Lourdes QUEROL BRAVO Médico Psicoterapeuta Audio-Psico-Fonología

El proceso unificado en pocas palabras

UN PROBLEMA CON INTERÉS Y CALCULADORA

Linda Warren: Bienvenidos. Anteriormente aprendimos que hay distintas clases de

RESERVISTA VOLUNTARIO Y A MUCHA HONRA

PROSPECTIVA DEL AVANCE DE LA TECNOLOGÍA DIGITAL Y SU INCIDENCIA EN EL DESARROLLO HUMANO Y LA SOCIEDAD DEL CONOCIMIENTO.

PROBLEMA BÁSICO Según esto se concluye que, en no pocos casos, el estudiante de nuestro medio llega

Manual de Usuario SIGECOF MANUAL DE USUARIO SIGECOF DISTRIBUCIÓN INTERNA DE CUOTA DE COMPROMISO

Por qué y para qué aprenden español?: El caso de los universitarios en Japón

Curso de Internet a distancia para sacerdotes, religiosos y religiosas

Modelos y Bases de Datos

1.- Es un método de análisis que permite organizar con facilidad los pensamientos y utilizar al máximo las capacidades mentales.

Posturas corporales para provocar estiramiento y masajes.

Como lo expresamos cuando describimos el problema objeto de

LA TIR, UNA HERRAMIENTA DE CUIDADO MBA. Fernando Javier Moreno Brieva

Sample file. Copyright 2007 Taina Maria Miller.

Quiero mucho este trabajo, me llena a pesar de sus pros y contras.

ENSEÑANZA-APRENDIZAJE DE CONCEPTOS DE SISTEMAS Y LA ACTIVIDAD PROFESIONAL DEL INGENIERO

Tu Cuaderno Educativo

Liderazgo se genera en el lenguaje

Uso de la Herramienta Taller de Moodle para la Corrección entre alumnos en la asignatura de Informática del Grado de Biología.

ENTREVISTA A OLGA GÓMEZ

TÍTULO: CUÁNDO SE PUEDE APLICAR LA INTEGRAL DEFINIDA PARA RESOLVER UN PROBLEMA? AUTOR: Dr. Reinaldo Hernán de z Camacho.

ENTREVISTA A LIC. EN CIENCIAS SOCIALES, PROFESOR DE CIENCIAS POLÍTICAS

Ejemplo del Formulario de Solicitud de Membresía de IFEX

Tema 4. Números índice

RIESGO Y RENTABILIDAD DE LA EMPRESA (Riesgo y Rendimiento) Qué es lo que determina el rendimiento requerido de una inversión?

Población con discapacidad en Jalisco en 2010


INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

MATERIAL 2 EXCEL 2007

Problemas y ventajas de medir con BIM

Transcripción:

Metodologías para la Enseñanza Aprendizaje de la Programación Estructurada y Orientada a Objetos Leobardo LÓPEZ ROMÁN Departamento de Ingeniería Industrial y de Sistemas, Universidad de Sonora Hermosillo, Sonora, 83000, México llopez@industrial.uson.mx RESUMEN El proceso enseñanza aprendizaje de la programación de computadoras siempre ha sido difícil. No importa cuál se esté usando como primer lenguaje en la enseñanza, sea FORTRAN, COBOL, BASIC, PASCAL, C, C++, JAVA, C#, o cualquier otro. El problema es que los estudiantes no desarrollan lógica o desarrollan muy poca lógica, escenario que se ha complicado con la permanente evolución de los paradigmas y la aparición de nuevos lenguajes de programación. Con la idea de coadyuvar en el mejoramiento de esta situación, este autor ha desarrollado y publicado como libro seis metodologías. En este artículo se hace una presentación general de la metodología de cada uno de los seis libros, haciendo énfasis en la evolución que han tenido dichas metodologías. Palabras Claves: Metodología, Programación Estructurada, Orientada a Objetos. 1. INTRODUCCIÓN Desde finales de los setentas y hasta la actualidad, he observado empíricamente, que muchos estudiantes de programación de computadoras han estado aprendiendo en forma muy limitada, porque siempre se cae en darle poca importancia al desarrollo de la lógica, y se enfocan más a enseñarles el lenguaje, y aprenden a prueba y error. La idea de este autor es que lo fundamental al aprender a programar, es desarrollar la lógica necesaria para solucionar problemas en forma algorítmica, independientemente de algún lenguaje; esto es, aprender a diseñar algoritmos o programas usando un seudolenguaje, y no hacerlo directamente con un lenguaje. Teniendo en mente el propósito de coadyuvar en el mejoramiento de la enseñanza aprendizaje de la programación, entre los años 1981 y 1994, desarrollé una metodología que conduce la enseñanza aprendizaje de la programación estructurada, mediante el uso de un seudolenguaje de diseño de algoritmos o programas estructurados, enfocado a que los estudiantes desarrollen la lógica independientemente de algún lenguaje de programación. Dicha metodología fue publicada en un libro [1] y ha servido como base para desarrollar otras cinco metodologías, que han sido publicadas en los libros [2], [3], [4], [5], [6]. Todos publicados en español por la editorial Alfaomega y distribuidos en los países de habla hispana. En este artículo se hace una presentación general de la evolución que han tenido dichas metodologías, como consecuencia de la evolución de los paradigmas y la aparición de nuevos lenguajes de programación. 2. EVOLUCIÓN DE LA PROGRAMACIÓN El paradigma de programación ha evolucionado, entre otras, destacan dos: una primera evolución, a la que se le llamó Programación Estructurada, y después, una segunda evolución, a la que se le denomina Programación Orientada a Objetos. 2.1 Programación tradicional En la década de los cincuentas se inventó la programación de computadoras como tal, y aunque no fue denominada así, me voy a referir a ese paradigma como Programación Tradicional, en esos tiempos sólo existían las estructuras lógicas de Secuenciación, If y For, que se conocía como Do en Fortran, y se utilizaban los diagramas de flujo como técnica de diseño de algoritmos o programas. La arquitectura general de un programa consistía de un solo módulo o bloque de instrucciones. 2.2 Programación estructurada A finales de la década de los sesentas, surge un movimiento llamado programación estructurada que vino a añadir nuevas estructuras, técnicas y conceptos a la programación: se añadieron las estructuras lógicas DO- UNTIL, DOWHILE y se formalizaron el IF-THEN, IF- THEN-ELSE y CASE. Se inventó el módulo, la función y el concepto de parámetros. Se desarrollaron nuevas técnicas de diseño de algoritmos o programas:

seudocódigo, diagramas Warnier, diagramas Chapin, Jackson, Diseño estructurado de Yourdon, Top Down Design (Diseño descendente), entre otras; que vinieron a desplazar a la tradicional técnica de diagramas de flujo. Fueron apareciendo nuevos lenguajes: Pascal, C, Cobol estructurado, Basic estructurado. Se estableció que se debe aprender a programar utilizando un seudolenguaje, es decir, no enseñar directamente con un lenguaje. Y se instituyó que se debe usar un estilo de programación que haga más entendible el algoritmo y el programa. La arquitectura general de un programa cambió, y ahora consistía de un conjunto de funciones o módulos jerarquizados, cada uno formado por un conjunto de instrucciones. 2.3 Programación orientada a objetos Aunque la programación orientada a objetos (POO) aparece muchos años antes, es a mediados de los noventas cuando se generaliza su uso. La POO añade a la programación una nueva estructura: el objeto, con sus conceptos; objetos, clases, encapsulación, herencia y polimorfismo. Aparecen nuevas técnicas de diseño: Booch, Rumbaugh, Jacobson, Yourdon, UML (Unified Modeling Language), entre otras. Se desarrollan nuevos lenguajes: C++, Java, C#, etcétera. La arquitectura general de un programa cambió, y ahora consiste de un conjunto de objetos, cada uno formado por datos y un conjunto de métodos, equivalentes a módulos o funciones en la programación estructurada, y a su vez, cada método formado por un conjunto de instrucciones. 3. PROBLEMA, CAUSA Y SOLUCIÓN PROPUESTA 3.1 Problema Desde hace treinta años he investigado empíricamente y he observado que el proceso enseñanza aprendizaje de la programación de computadoras siempre ha sido difícil. No importa cuál se esté usando como primer lenguaje en la enseñanza, sea FORTRAN, COBOL, BASIC, PASCAL, C, C++, JAVA, C# o cualquier otro. El problema es que los estudiantes no desarrollan lógica o desarrollan muy poca lógica, y en consecuencia, no aprenden bien a diseñar programas. 3.2 Causa Aunque se ha escrito mucho, según la experiencia de este autor, la causa es que por un lado se ha escrito mucho sobre metodologías de modelado, análisis y diseño pero van enfocadas en un sentido muy abstracto; y por otro lado, se escriben manuales de lenguajes, pero van enfocados en un sentido muy concreto, hasta cierto punto desvinculados, habiendo un vacío que provoca que los maestros, que enseñan programación, enseñan muy poco o nada de diseño de programas y se enfocan más a la enseñanza del lenguaje sin bases lógicas sólidas. 3.3 Solución propuesta Hay algunos autores que han desarrollado metodologías de la programación que van en el sentido de llenar ese vacío, sin embargo, según mi apreciación, todavía ha quedado algo de vacío, es por ello que he desarrollado seis metodologías de la programación, que conducen el proceso enseñanza aprendizaje enfocado a que el estudiante, primero desarrolle bases lógicas sólidas y después, sobre esas bases, que aprenda el lenguaje de programación. En el siguiente punto de explican. 4. METODOLOGÍAS DESARROLLADAS 4.1 Programación Estructurada un enfoque algorítmico Publicada en el libro [1], donde se presenta una metodología de la programación estructurada, que conduce el proceso enseñanza aprendizaje enfocado, a que el estudiante desarrolle bases lógicas sólidas usando seudocódigo y top down design, independientemente de un lenguaje de programación. La idea de usar una metodología en seudocódigo, es que se use nuestro idioma natural que es el español, conjuntamente con los elementos y estructuras de los lenguajes de programación, y en este caso, respetando las palabras reservadas en inglés, de las estructuras lógicas de control. En esta metodología, los tipos de datos se representan de la siguiente forma: Entero, Real, Alfabético, Carácter, Arreglos, Registros y Archivos. La definición de variables se hace mediante el formato: Definir variables NOMBRE: Alfabético[30] HRSTRAB: Entero CUOTAHR, SUELDO: Real La lectura o entrada de datos se hace con el formato: Solicitar Nombre, Horas trabajadas y Cuota por hora Leer NOMBRE, HRSTRAB, CUOTAHR La escritura o salida de datos se realiza con el formato: Imprimir NOMBRE, SUELDO Las estructuras lógicas de control, se representan. La selección simple (IF-THEN) IF condición THEN ENDIF La selección doble (IF-THEN-ELSE)

IF condición THEN ELSE ENDIF La selección múltiple (CASE) CASE (1,2,3,4) SELECTOR 1: 2: 3: 4: ELSE ENDCASE La repetición REPEAT (DO). REPEAT UNTIL Condición La repetición FOR FOR CONTADOR=VALORINICIAL,VALORFINAL,INC ENDFOR La repetición DOWHILE DOWHILE Condición ENDDO Ejemplo de aplicación: Algoritmo FACTORIALES 1. Definir variables N,IJFACTOR,NUM: Entero 2. Solicitar Cantidad de números 3. Leer N 4. FOR J = 1, N a. Solicitar Número b. Leer NUM c. IF NUM = 0 THEN 1. FACTOR = 1 d. ELSE 1. FACTOR = 1 2. FOR I = NUM, 1, -1 a. FACTOR = FACTOR * I 3. ENDFOR e. ENDIF f. Imprimir FACTOR 5. ENDFOR 6. Fin Luego se integra el uso de top down design para descomponer el problema en una estructura de módulos, y después, cada módulo se diseña en seudocódigo. Cabe aclarar que esta metodología se desarrolló en los ochentas y principios de los noventas, tiempos en que se usaba el lenguaje Pascal como prototipo para la enseñanza de la programación estructurada, por lo que, la metodología quedó un poco influenciada con el estilo que se usaba con dicho lenguaje. 4.2 Programación Estructurada en TURBO PASCAL 7 Publicada en el libro [2], donde se presenta el lenguaje TURBO PASCAL 7, explicado tomando como base la metodología del libro anterior. Es un libro que va más allá de ser un manual del lenguaje, en este libro se enseña a programar usando la metodología del libro anterior integrada con el lenguaje TURBO PASCAL 7. Este libro tiene la misma estructura que el libro anterior, solo que aquí se toma como base cada algoritmo desarrollado en dicho libro, y se va explicando cómo usar el lenguaje TURBO PASCAL 7, para codificar el programa correspondiente. Por limitaciones de espacio en este artículo no se incluye más detalle. 4.3 Programación Estructurada un enfoque algorítmico Segunda Edición Publicada en el libro [3], donde se presenta la metodología de la programación estructurada, ahora corregida, aumentada y actualizada para los tiempos en los que se enseñaba C como primer lenguaje. A continuación se presenta un ejemplo de cómo se usa la metodología: primero se diseña el diagrama general de la solución usando Top down design, en la que se definen los módulos que se requerirán para solucionar el problema: Sumar Restar Enseguida se diseña el algoritmo en seudocódigo, es decir, se diseña la lógica de cada uno de los módulos usando seudocódigo: Algoritmo AYUDA Declaraciones globales Variables Algoritmo AYUDA Multiplicar Dividir

N1, N2, ResuNi, ResuMaq: Entero Desea: Carácter Opcion: Entero 1. Principal 1. Imprimir el menú de opciones TE PUEDO AYUDAR A: 1. SUMAR 2. RESTAR 3. MULTIPLICAR 4. DIVIDIR 5. FIN OPCION: 2. Leer Opcion 3. CASE Opcion 1: Llamar Sumar 2: Llamar Restar 3: Llamar Multiplicar 4: Llamar Dividir 4. ENDCASE b. UNTIL Opcion = 5 c. Fin Principal 2. Sumar 3. Calcular ResuMaq = N1 + N2 a. Imprimir La suma está correcta a. Imprimir La suma está incorrecta 7. Solicitar Desea sumar de nuevo (S/N)? c. Fin Sumar 3. Restar 3. Calcular ResuMaq = N1 - N2 a. Imprimir La resta está correcta a. Imprimir La resta está incorrecta 7. Preguntar Desea restar de nuevo (S/N)? c. Fin Restar 4. Multiplicar 3. Calcular ResuMaq = N1 * N2 a. Imprimir La multiplicación está correcta a. Imprimir La multiplicación está incorrecta 7. Solicitar Desea multiplicar de nuevo (S/N)? c. Fin Multiplicar 5. Dividir 3. Calcular ResuMaq = N1 / N2 a. Imprimir La división está correcta a. Imprimir La división está incorrecta 7. Solicitar Desea dividir de nuevo (S/N)? c. Fin Dividir 4.4 Programación Estructurada en Lenguaje C Publicada en el libro [4], donde se presenta el lenguaje C, explicado tomando como base la metodología del libro anterior. Es un libro que va más allá de ser un manual del lenguaje, en este libro se enseña a programar usando la metodología del libro anterior integrada con el lenguaje C. Este libro tiene la misma estructura que el libro anterior, solo que aquí se toma como base cada algoritmo desarrollado en dicho libro, y se va explicando cómo usar el lenguaje C, para codificar el programa correspondiente. Por limitaciones de espacio en este artículo no se incluye más detalle. 4.5 Metodología de la Programación Orientada a Objetos Publicada en el libro [5], donde se presenta una metodología de la programación orientada a objetos, que conduce el proceso enseñanza aprendizaje, enfocado a que el estudiante desarrolle bases lógicas sólidas usando seudocódigo, el diagrama de clases, los conceptos de objetos, clases, herencia, polimorfismo y la arquitectura modelo vista controlador independientemente de un lenguaje de programación.

A continuación se presenta un ejemplo de cómo se aplica: primero, se diseña el diagrama de clases, que contiene la estructura general del programa (algoritmo): Diagrama de clases EmpPorHoras horastrab cuotahora sueldoqnahoras establecerhorastrab() establecercuotahora() calcularsueldoqnahoras() obtenersueldoqnahoras() Empleado # nombreemp # deptoemp # puestoemp establecernombreemp() establecerdeptoemp() establecerpuestoemp() obtenernombreemp() obtenerdeptoemp() obtenerpuestoemp() EmpAsalariado sueldomensual sueldoqnaasal establecersueldomensual() calcularsueldoqnaasal() obtenersueldoqnaasal() EjecutaEmpleado Enseguida se diseña el algoritmo que contiene la lógica que soluciona el problema usando seudocódigo. Algoritmo CALCULA SUELDOS DE EMPLEADOS Clase Empleado 1. Declaraciones Datos # nombreemp: Cadena # deptoemp: Cadena # puestoemp: Cadena 2. Método establecernombreemp(nom: Cadena) a. nombreemp = nom b. Fin Método establecernombreemp 3. Método establecerdeptoemp(dep: Cadena) a. deptoemp = dep b. Fin Método establecerdeptoemp 4. Método establecerpuestoemp(pue: Cadena) a. puestoemp = pue b. Fin Método establecerpuestoemp 5. Método obtenernombreemp(): Cadena a. return nombreemp b. Fin Método obtenernombreemp 6. Método obtenerdeptoemp(): Cadena a. return deptoemp b. Fin Método obtenerdeptoemp 7. Método obtenerpuestoemp(): Cadena a. return puestoemp b. Fin Método obtenerpuestoemp Fin Clase Empleado Clase EmpPorHoras hereda de Empleado 1. Declaraciones Datos horastrab: Entero cuotahora: Real sueldoqnahoras: Real 2. Método establecerhorastrab(horastr: Entero) a. horastrab = horastr b. Fin Método establecerhorastrab 3. Método establecercuotahora(cuotahr: Real) a. cuotahora = cuotahr b. Fin Método establecercuotahora 4. Método calcularsueldoqnahoras() a. sueldoqnahoras = horastrab * cuotahora b. Fin Método calcularsueldoqnahoras 5. Método obtenersueldoqnahoras(): Real a. return sueldoqnahoras b. Fin Método obtenersueldoqnahoras Fin Clase EmpPorHoras Clase EmpAsalariado hereda de Empleado 1. Declaraciones Datos sueldomensual: Real sueldoqnaasal: Real 2. Método establecersueldomensual(sdo: Real) a. sueldomensual = sdo b. Fin Método establecersueldomensual 3. Método calcularsueldoqnaasal() a. sueldoqnaasal = sueldomensual / 2 b. Fin Método calcularsueldoqnaasal 4. Método obtenersueldoqnaasal(): Real a. return sueldoqnaasal b. Fin Método obtenersueldoqnaasal Fin Clase EmpAsalariado Clase EjecutaEmpleado 1. Método principal a. Declaraciones Variables nomemp, depto, puesto: Cadena hrstra, tipoemp: Entero cuohr, sdomen: Real desea: Carácter b. DO 1. Imprimir Menu y solicitar tipo de empleado Tipos de empleado 1. Empleado por horas 2. Empleado asalariado Teclee tipo: 2. Leer tipoemp 3. Solicitar Nombre, departamento y puesto 4. Leer nomemp, depto, puesto 5. IF tipoemp = 1 THEN a. Declarar, crear e iniciar objeto EmpPorHoras objemp = new EmpPorHoras() b. Solicitar número de horas trabajadas y

cuota por hora c. Leer hrstra, cuohr d. Establecer objemp.establecernombreemp(nomemp) objemp.establecerdeptoemp(depto) objemp.establecerpuestoemp(puesto) objemp.establecerhorastrab(hrstra) objemp.establecercuotahora(cuohr) e. Calcular objemp.calcularsueldoqnahoras() f. Imprimir objemp.obtenernombreemp() objemp.obtenerdeptoemp() objemp.obtenerpuestoemp() objemp.obtenersueldoqnahoras() 6. ELSE a. Declarar, crear e iniciar objeto EmpAsalariado objemp = new EmpAsalariado() b. Solicitar sueldo mensual c. Leer sdomen d. Establecer objemp.establecernombreemp(nomemp) objemp.establecerdeptoemp(depto) objemp.establecerpuestoemp(puesto) objemp.establecersueldomensual(sdomen) e. Calcular objemp.calcularsueldoqnaasal() f. Imprimir objemp.obtenernombreemp() objemp.obtenerdeptoemp() objemp.obtenerpuestoemp() objemp.obtenersueldoqnaasal() 7. ENDIF 8. Preguntar Desea procesar otro empleado(s/n)? 9. Leer desea c. WHILE desea = S d. Fin Método principal Fin Clase EjecutaEmpleado Fin 4.6 Programación Estructurada y Orientada a Objetos un enfoque algorítmico Tercera Edición Publicada en el libro [6], donde se presenta la tercera edición de la metodología de la programación estructurada, adecuándola a los tiempos actuales, en que el lenguaje C se ha convertido en la base de los lenguajes modernos, y luego tomándola como base, se presenta una evolución hacia la orientada a objetos. La idea es que al estudiante se le pueda enseñar en un mismo curso la programación estructurada con un enfoque algorítmico, y luego tomando como base lo anterior, que se le enseñen los conceptos básicos que aporta la programación orientada a objetos y que sea capaz de diseñar algoritmos tanto estructurados como orientados a objetos. De esta forma se le preparará para que aprenda cualquier lenguaje estructurado u orientado a objetos. Por limitaciones de espacio en este artículo no se incluye más detalle. 5. CONCLUSIONES En la enseñanza de la programación siempre ha existido la tentación de enseñar el lenguaje lo antes posible, sacrificando el desarrollo de la lógica, y se cae en enseñar a operar lenguajes y no a programar; porque programar implica primero diseñar lógicamente la solución y después, codificar usando un lenguaje. En consecuencia, se están formando muchos programadores buenos para codificar usando lenguajes, pero sin bases lógicas sólidas. El estudiante primero debe desarrollar las habilidades mentales lógicas necesarias, aprendiendo una metodología de la programación apropiada, porque la programación es lógica y debe ser independiente de algún lenguaje de programación, y después, sobre esas bases aprender el lenguaje. Desde 1994 puse a disposición de la comunidad académica una metodología de la programación, que ha venido evolucionando, por la aparición de nuevos lenguajes de programación y nuevos paradigmas; primero se presentaron cuatro versiones de programación estructurada, luego una versión orientada a objetos, y una última versión, donde se presentan conjuntamente la estructurada y la orientada a objetos. Todas las metodologías enfocadas a que los estudiantes, primero desarrollen bases lógicas sólidas, y después, sobre esas bases, podrán aprender el lenguaje de programación. 6. REFERENCIAS [1] L. López, Programación Estructurada un enfoque algorítmico, Computec-Alfaomega, México, 1994. ISBN 970-15-0099-7. [2] L. López, Programación Estructurada en TURBO PASCAL 7, Alfaomega, México, 1998. ISBN 970-15-0075-X. [3] L. López, Programación Estructurada un enfoque algorítmico Segunda Edición, Alfaomega, México, 2003. ISBN 970-15-0856-4. [4] L. López, Programación Estructurada en Lenguaje C, Alfaomega, México, 2005. ISBN 970-15-1062-3. [5] L. López, Metodología de la Programación Orientada a Objetos, Alfaomega, México, 2006. ISBN 970-15-1173-5. [6] L. López, Programación Estructurada y Orientada a Objetos Tercera Edición, Alfaomega, México, 2011. ISBN 978-607-707-211-9.