domingo, 17 de junio de 2012

LA MOTIVACIÓN DE LA DIDÁCTICA APLICADA A LA INFORMÁTICA




La motivación abarca muchos aspectos, por eso la infinidad de significados; pero en el ámbito de la enseñanza-aprendizaje hace referencia, fundamentalmente, a aquellas fuerzas, determinantes o factores que incitan al alumnado a escuchar las explicaciones del/la profesor/a, tener interés en preguntar y aclarar las dudas que se le presenten en el proceso escolar, participar de forma activa en la dinámica de la clase, realizar las actividades propuestas, estudiar con las técnicas adecuadas, investigar, experimentar, y
aprender por descubrimiento, así como de manera constructiva y significativa.

En definitiva, presentar una conducta motivada para aprender, acorde con sus capacidades, inquietudes, limitaciones y posibilidades, pues cada alumno y alumna tiene unas características individuales.

2. 1 Cada alumno se motiva por razones diferentes


La motivación como proceso auto energético de la persona, limita la función del profesor a ser un agente exterior que trata de desencadenar las fuerzas interiores del alumno. Esto nos lleva a una consecuencia: los incentivos tienen un valor motivacional limitado. La misma actividad incentivadora produce distintas respuestas en distintos individuos, o incluso en el mismo alumno en diversos momentos.

En la práctica se traduce en una limitada eficacia de las motivaciones colectivas, si no van acompañadas de una individualización y adecuación a las peculiaridades del alumno, en las que influyen tanto los rasgos de personalidad como su misma historia.

2.2 Es más importante crear el interés por la actividad que por el mensaje.


 



Para ello hay que apoyarse en los intereses de los alumnos y conectarlos con los objetivos del aprendizaje o con la misma actividad. Hay muchos profesores que tienden a buscar técnicas interesantes para ellos pero que no provocan ninguna motivación en los alumnos. Los alumnos no se motivan por igual, por lo que es importante buscar y realizar actividades motivadoras que impliquen mayor participación del alumno.

Es el proceso de interacción comunicativa entre sujetos y actores educativos implicados en el que hacer pedagógico, que posibilita a través de la investigación, el desarrollo de acciones transformadoras para la construcción de un saber pedagógico como aporte al conocimiento.

El arte de saber explicar y enseñar con un mayor número de recursos para que el alumno entienda y aprenda. Se explica para que el alumno entienda (primer contacto con el conocimiento), se ensaña para que el alumno aprenda (Que asimile, que lo haga suyo). Es una disciplina de la enseñanza del conocimiento cuyo objetivo es el entendimiento, mediante unos principios pedagógicos encaminada a una mejor comprensión de las ciencias. (Jaime Eugenio Toro Gaviria. Es parte de la pedagogía que describe, explica y fundamenta los métodos más adecuados y eficaces para conducir al educando a la progresiva adquisición de hábitos, técnicas e integral formación. 

La didáctica es la acción que el docente ejerce sobre la dirección del educando, para que éste llegue a alcanzar los objetivos de la educación. Este proceso implica la utilización de
una serie de recursos técnicos para dirigir y facilitar el aprendizaje. (Cecilia A. Morgado Pérez.) Es una ciencia y un arte que contribuye en el proceso enseñanza aprendizaje aportando estrategias educativas que permiten facilitar el aprendizaje. Son las diversas técnicas y formas de enseñar, las cuales se adaptan según las necesidades de los alumnos o las circunstancias. es el arte de enseñar.

2.3 La motivación hacia el estudio.

La motivación constituye una condición necesaria de la existencia propia del hombre y a su vez deviene en uno de los factores más importantes de su desarrollo, se puede considerar, el motor impulsor de toda su actividad.

El problema de la motivación ocupa un lugar central en el estudio de la personalidad. 
Algunos autores afirman que ambas cosas son idénticas.

Nosotros aunque no creemos necesario aceptar esta extrema actitud, reconocemos que toda teoría de la Personalidad se centra en el análisis de la naturaleza de la motivación" (Allport, 1971).

La esencia de la motivación hacia el estudio, según estos autores, es crear las condiciones para que ellos comprendan el sentido de su estudio, en la agudización de las contradicciones entre las nuevas tareas y el nivel de conocimientos, habilidades y hábitos que ya posee el alumno, entre el nuevo conocimiento y las nociones y conceptos que ya dominan, en virtud de lo cual se origina la aspiración de conocer lo nuevo, de adquirir los hábitos que le faltan, de aprender a aplicar los conocimientos en la solución de tareas
teóricas y prácticas.

La estructuración metodológica del motivar o creación de una motivación comprende dos fases: en la primera se motiva la ocupación con el problema,es decir, aquel concepto, procedimiento, problema, que será estudiado en clase y en la segunda se motiva la vía de solución del problema. La segunda fase es la que está más estrechamente relacionada con la orientación hacia los objetivos.

La Informática en el nivel secundario responde a garantizar la materialización de un ciclo de cuatro etapas: búsqueda – selección – procesamiento y síntesis de información, que auspicie finalmente el desarrollo de un algoritmo de autoaprendizaje de nuevos contenidos así como el desarrollo del vocabulario y la expresión oral.

En la motivación hacia el estudio participan necesidades sociales (el sentido de la responsabilidad, el deber de estudiar y prepararse para la vida social futura, el amor e identificación con la Patria.

En el proceso de enseñanza de la Informática debe tenerse en cuenta la enseñanza problemática como una de las vías para estimular la actividad cognoscitiva de los estudiantes, pues a través de ella es posible lograr la apropiación de los conocimientos con un adecuado nivel científico, así como garantizar el interés y motivación por el estudio; de esta manera se produce un mayor desarrollo de hábitos y habilidades, y una mayor independencia en la actividad cognoscitiva; de igual manera las capacidades creadoras alcanzan un mayor nivel de desarrollo.

2.4 Las Tareas Docentes Desarrolladoras en la motivación por la Informática.

 
La remodelación del proceso de Enseñanza y Aprendizaje que se acomete en la Educación Cubana, precisa que el alumno participe en la búsqueda y utilización del conocimiento, como parte de su actividad, lo que le permite transitar por niveles diferentes de exigencias, además de requerir de un cambio esencial en la concepción y formulación de la tarea, porque es en ésta donde se concretan las acciones y operaciones a realizar por el alumno.

La estructuración de la enseñanza de la Informática es un método eficaz para la estimulación de la actividad cognoscitiva de los estudiantes.

El problema, (León V. E., 2008)…. se convierte en un recurso cognitivo – afectivo que revela la importancia de la asimilación de las contradicciones necesarias a resolver por los gestores del proceso para alcanzar el estado deseado, es generador de motivos para la actividad cognoscitiva… El problema propicia en el alumno la generación de motivos, necesidades e intereses cognitivos pertinentes, haciendo que se dispongan conscientemente a realizar esfuerzos intelectuales, psicomotores y actitudinales para resolver el problema planteado.

En el proceso de enseñanza de la Informática debe tenerse en cuenta la enseñanza problemática como una de las vías para estimular la actividad cognoscitiva de los estudiantes, pues a través de ella es posible lograr la apropiación de los conocimientos con un adecuado nivel científico, así como garantizar el interés y motivación por el estudio; de esta manera se produce un mayor desarrollo de hábitos y habilidades, y una mayor independencia en la actividad cognoscitiva; de igual manera las capacidades creadoras alcanzan un mayor nivel de desarrollo.

2.5 Los requisitos didácticos a tener en cuenta al plantear una situación problemática son los siguientes:

1 Nivel de preparación y posibilidades de los estudiantes.
2 No puede ser tan fácil que no provoque dificultad ni tan difícil que quede fuera del alcance cognoscitivo de los estudiantes.
3 Debe proyectarse con carácter perspectivo para dirigir la actividad cognoscitiva a la búsqueda investigativa.
4 Debe ser dinámica y reflejar relaciones causales entre los procesos estudiados.
5 Se puede introducir artificialmente con alguna tarea externa que los haga adentrarse en la solución del problema.

Los medios didácticos y los recursos educativos.

En esta entrada trato de diferencias los conceptos entre medio didáctico y recurso educativo pues en ellos existen ciertas similitudes. En cuanto a los medios y recursos se toma en cuenta que cualquier material puede utilizarse, en determinadas circunstancias, como recurso para facilitar procesos de enseñanza y aprendizaje, pero considerando que no todos los materiales que se utilizan en educación han sido creados con una intencionalidad didáctica, se logran distinguir los conceptos de medio didáctico y recurso educativo.

Medio didáctico es cualquier material elaborado con la intención de facilitar los procesos de enseñanza y aprendizaje. Por ejemplo un libro de texto o un programa multimedia o software educativo.


Recurso educativo es cualquier material que, en un contexto educativo determinado, sea utilizado con una finalidad didáctica o para facilitar el desarrollo de las actividades formativas. Los recursos educativos que se pueden utilizar en una situación de enseñanza y aprendizaje pueden ser o no medios didácticos. Un vídeo para aprender ciertos temas será un material didáctico (pretende enseñar), en cambio un vídeo con un reportaje sobre dicho tema a pesar de que pueda utilizarse como recurso educativo, no es en sí mismo un material didáctico (sólo pretende informar).


Se requiere realizar una enseñanza que trascienda los límites del aula en la Universidad, en tanto se aprovechen las posibilidades que ofrecen las nuevas Tecnologías de la información y las comunicaciones de interactividad, no solo Entre el profesor y el estudiante, sino entre los mismos estudiantes y entre estos y Los especialistas con que contamos, así como entre los mismos profesores y Tutores, independientemente del lugar en que estos se encuentren, lo que a su vez impone nuevos retos y perspectivas a la integración de los Institutos.
 
2.6 Técnicas dinámicas en grupos



Todas las técnicas de dinámica de grupos pueden ser aplicadas en educación en nformática. Hay que salvar no obstante las características de los alumnos en cada caso y nivel, el grado de adiestramiento en la técnica que posean los alumnos y sobre todo para qué van a utilizarse, ya que hay técnicas muy útiles para conseguir información, otras para favorecer la creatividad, otras para lograr objetivos de tipo cognitivo, etc.

Las técnicas que se consideran más importantes para adquirir comportamientos de cara al mismo proceso de actividad en el aula, teniendo en cuenta que faltan muchas, y que la propia experiencia y creatividad del profesor puede, a partir de las ideas aportadas, generar otras técnicas que le convengan a su momento y nivel.

Por otra parte hay que decir que estas técnicas casi nunca se utilizan solas, sino que se mezclan y se alternan unas con otras, logrando así integrar varias técnicas en una sola con vistas al trabajo de aprendizaje o de investigación.

De todas las técnicas, pueden además desprenderse juegos, ejercicios,presentaciones y recursos que permiten dar vitalidad, animación y creatividad a una clase de computación.

ACTIVIDAD PRÁCTICA PARA DETERMINAR LAS NECESIDADES EDUCATIVAS QUE CONVENGA UTILIZAR CON APOYOS INFORMATICOS.


http://www.slideboom.com/presentations/567360/Necesidades-Educativas-con-apoyo-informatico

  1. Especifique el alcance del análisis que va a hacer (toda la Institución, todo el Departamento, tales áreas de contenido, tales niveles de enseñanza) y para cada una de las asignaturas de interés tenga a mano las metas que desea alcanzar, los planes de estudio y recursos que guían su logro.
  2. Establezca un marco teórico para el análisis de necesidades educativas considerando las teorías de aprendizaje aplicables a la población, tipo de objetivos y naturaleza del contenido a estudiar, así como los resultados de investigaciones sobre ambientes de enseñanza-aprendizaje y didácticas referentes al caso.
  3. Para las asignaturas "nuevas", haga una previsión de los posibles problemas y apoyo informático aplicable, tomando como base el marco teórico.
  4. Para las asignaturas que ya se han ofrecido según lo requiere el plan de estudios:

  • Analice los problemas existentes a partir de la consulta a las diversas fuentes y produzca una lista priorizada de asignaturas y temas( u Objetivos) problemáticos de aprender, anotando las fuentes consultadas y la importancia del problema.
  • Determine las posibles causas de los problemas detectados, considerando tanto lo que resulta de aplicar el marco teórico al análisis de los ambientes y actividades de aprendizaje utilizadas, como lo que opinan profesores y alumnos participantes.
Establezca soluciones alternativas de tipo administrativo y académico. Si se sugiere uso de computador, deben quedar documentadas las razones que fundamentan esto, mostrando la insuficiencia de soluciones de otra índole.

Establezca el papel de la solución computarizada y, en consecuencia, determine si conviene usar una herramienta de productividad o más bien un MEC y de qué tipo de combinación de éstos.

5.- Indague qué soluciones informáticas educativas existen para atender los problemas cuya solución conviene que sea apoyada con computador y, si existen, haga una valoración comprensiva y una evaluación por expertos de las mismas.

Dependiendo de los resultados, recomiende las acciones a seguir, y

6.- Si no hay soluciones informáticas educativas que satisfagan la problemática detectada, haga un plan de trabajo para hacer desarrollo(s) que lleven a satisfacer las necesidades. Este debe considerar los recursos humanos, físicos y temporales disponibles.

APLICAR LA METODOLOGÍA DE ANÁLISIS PARA DETERMINAR NECESIDADES EDUCATIVAS QUE REQUIEREN APOYO INFORMÁTICO





1. SOLUCIONES CON APOYO INFORMATICO





Cuando se ha determinado la conveniencia de contar con un apoyo informático para resolver un problema o un conjunto de ellos, dependiendo de las necesidades que fundamentan esta decisión, cabe optar por un tipo de apoyo informático u otro.

Habrá necesidades que se pueden resolver usando herramientas informáticas de productividad. Por ejemplo, si interesa que los alumnos desarrollen sus habilidades de expresión verbal, o de expresión gráfica y que se concentren en lo que generan antes que en la forma como lo generan, siendo editable lo que hagan, el uso del procesador de texto, o de un procesador gráfico, pueden ser la solución más inmediata y adecuada.

Si de lo que se trata es de facilitar el procesamiento de datos numéricos para que de este modo pueden concentrase en el análisis de los resultados procesados, una hoja de cálculo electrónico será un magnifico apoyo. Si interesa que los alumnos puedan alimentar, consultar, cruzar y analizar datos que cumplen ciertos criterios, en un sistema manejador de bases de datos se tendrá un magnifico aliado.

Pero si las posibilidades que brindan las herramientas de propósito general no son adecuadas o suficientes, habrá que pensar en qué otro tipo de ambiente educativo informático es conveniente.

Tratándose de necesidades educativas relacionadas con el aprendizaje, según la naturaleza de éstas se podrá establecer qué tipo de MEC conviene usar.

1.1. Un sistema tutorial se amerita cuando, siendo conveniente brindar el conocimiento al alumno, también interesa que lo incorpore y lo afiance, todo esto dentro de un mundo amigable y ojalá entretenido.

1.2. Pero si sólo se trata de afianzar los conocimientos que adquirió el aprendiz por otros medios, puede pensarse en un sistema de ejercitación y práctica que conlleve un sistema de motivación apropiado a la audiencia, o en el uso de un simulador para practicar allí las destrezas y obtener información de retorno según las decisiones que tome el aprendiz.

1.3. Un simulador podrá usarse también para que el aprendiz llegue al conocimiento mediante trabajo exploratorio, conjetural y mediante aprendizaje por descubrimiento, dentro de un micro mundo que se acerca, en su comportamiento, razonablemente a la realidad o aquello que intenta modelar.

1.4. Un juego educativo será conveniente cuando, ligado al componente lúdico, interesa desarrollar algunas destrezas, habilidades o conceptos que van integrados al juego mismo.


1.5. Los sistemas expertos se ameritarán cuando el conocimiento que se desea aprender es el de un experto en la materia, que no siempre está bien definido o es incompleto, y combina reglas de trabajo con reglas de raciocinio. Por consiguiente, no se puede encapsular rígidamente, ni se puede transmitir en forma directa; se requiere interactuar con ambientes vivenciales que permitan desarrollar el criterio del aprendiz para la solución de situaciones en la forma como lo haría el experto.



1.6. Un sistema tutorial inteligente se ameritará cuando, además de desear alcanzar un nivel de experto en un área de contenido, interesa que el MEC asuma, adaptativamente, las funciones de orientación y apoyo al aprendiz, en forma semejante a como lo haría un experto en la enseñanza del tema.

1.7. Sistema Multimedia: es un programa de computador que utiliza diferentes medios como videos, gráficos, texto, etc. Puede ser interactivo o simplemente presentar información.


miércoles, 13 de junio de 2012

DETERMINAR FUENTES DE INFORMACIÓN Y SOLUCIONES DE LAS NECESIDADES EDUCATIVAS




1. ANÁLISIS DE ALTERNATIVAS DE SOLUCIÓN






Por el hecho de saber que hay problemas y a qué se deben, no se deduce necesariamente que la solución será un apoyo computarizado. Esto se recomendará cuando no haya ningún medio alterno capaz de subsanar la deficiencia.









1.2. SOLUCIONES ADMINISTRATIVAS

Algunos problemas o necesidades se pueden resolver tomando decisiones administrativas tales como conseguir o capacitar profesores, dedicar más tiempo al estudio de algo -y menos a otra cosa-, conseguir los medios y materiales que hagan posible disponer de los ambientes de aprendizaje apropiados, así como capacitar a los profesores en el uso de estos nuevos medios.

Igualmente si los estudiantes no traen los conocimientos de base, pueden tomarse medidas administrativas como impedir que avancen en el currículo hasta tanto no se nivelen, u ofrecerles oportunidades para instrucción remedial. La administrativa es una primera alternativa a considerar.


1.2.1 SOLUCIONES ACADÉMICAS.




Algunas soluciones se podrán llevar a la práctica a partir del profesor y de su interacción con los alumnos, como cuando se trata de promover mayor trabajo individual de los estudiantes sobre los materiales para aprendizaje, cuando se trata de preparar nuevas ayudas educativas o de mejorar la calidad de las pruebas académicas.




Otras requerirán mejoras a los medios y materiales de enseñanza convencionales, como son los materiales impresos, guías de estudio, así como los materiales y las guías de trabajo o de laboratorio. Habrá otros medios no tan convencionales que sería conveniente usar, como son los que van ligados a las prácticas.

Es importante considerar la viabilidad del medio, toda vez que algunos que son ideales, pero que en la realidad no se puede disponer de ellos por efectos de costos o de riesgo, o por efectos de practicidad.

Dentro de las causas que exigen decisiones académicas habrá algunas imposibles de atender con medios no informáticos, quedando la perspectiva de utilizar este apoyo.

Problemas de motivación pueden atacarse creando micromundos que sean excitantes y significantes para los aprendices, cuya exploración conlleve adentrarse en el contenido de aquello que interesa aprender, o en los que se puede practicar una destreza hasta lograr un amplio nivel de dominio.

Pero también se pueden simular eventos o actividades que normalmente no están a disposición del aprendiz, en los que se pueden tomar decisiones y ver el efecto de ellas, sin que esto conlleve peligros, exija estarse toda una vida esperando resultados o demande costos excesivos.

Es posible, asimismo, obtener información de retorno diferencial dependiendo de lo que uno hace, explicación sobre las reglas que rigen el comportamiento del sistema o hacer seguimiento razonado a las acciones que condujeron a una situación final.

Todo esto a ritmo y secuencia propios, sin que la máquina se canse ni lo regañe a uno por avanzar más rápido o despacio que los demás, por ensayar todas las opciones, por insistir en necesidades, etc.

sábado, 9 de junio de 2012

ANÁLISIS DE NECESIDADES EDUCATIVAS

La creación de ambientes enseñanza-aprendizaje apoyados con computador tiene sentido si responde a las necesidades educativas prioritarias y relevantes y no existe otra solución que las satisfaga. Pero ¿qué es una necesidad educativa?, cómo se determinan las necesidades educativas?

1.1.          NECESIDADES EDUCATIVAS

Se concibe una necesidad educativa como la discrepancia entre un estado educativo ideal (deber ser) y otro existente (realidad). Por consiguiente su determinación debe llegar a resolver tres interrogantes:

- ¿Qué es lo ideal?
- ¿Qué de esto se puede satisfacer con lo que existe?
- ¿Qué falta por alcanzar? (la necesidad)


1.2. Identificar y clasificar las necesidades educativas

Para ello se pueden considerar varios tipos de necesidades educativas:

1.2.1 Necesidad Normativa: se toma como "ideal" una norma o patrón existente, se determina en qué medida la población objeto del sistema educativo alcanza dicho estándar y se establece la diferencia con el patrón; por ej., el desempeño de los estudiantes es inferior al promedio nacional.

1.2.2 Necesidad Sentida: Es sinónimo de un deseo de saber algo, por lo tanto debe saberse qué quiere aprender la gente, para qué y por qué; surgen al interactuar con usuarios potenciales o con quienes conocen las necesidades de éstos.

1.2.3 Necesidad expresada o demanda: ésta es similar a la idea económica de que si la gente necesita algo, lo solicitará. Esto sucede cuando la gente solicita o se inscribe en un curso o seminario; estos datos suelen ser conocidos por los administradores de programas académicos.

1.2.4. Necesidad Comparativa: Se da cuando sirve de "ideal" otra población objeto, similar a la que es de interés, cuyos niveles de logro son más altos o trabaja en áreas novedosas. Por ej., una Institución líder en un área marca la pauta y otras la toman como referencia.

1.2.5. Necesidad Futura o Anticipada: Resulta de proveer las necesidades que
se demandarán en el futuro, con base en el seguimiento a los planes de desarrollo relacionados, así como a los avances científicos y tecnológicos. En buena medida sirve para revisar y ajustar los estados "ideales" de tipo normativo con base en la proyección del entorno social, científico y tecnológico.

PROGRAMACIÓN




La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

HISTORIA
Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación.
En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario).
Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje máquina.
LÉXICO Y PROGRAMACIÓN
La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).
En los lenguajes de programación de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.

PROGRAMAS Y ALGORITMOS

Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".
Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura de datos.
Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:
§  Programación estructurada
§  Programación modular
§  Programación orientada a objetos (POO)
§  Programación declarativa

COMPILACIÓN
El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.
El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, código éste directamente ejecutable por el procesador. A este proceso se le llama compilación.
Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ yensamblador), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.

PROGRAMACIÓN E INGENIERÍA DE SOFTWARE

Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos.
El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los siguientes pasos:
  • Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.
  • Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.
  • Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.
  • Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
  • Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación (programación propiamente dicha) debería resultar inmediata.
  • Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.).

La ingeniería del software se centra en los pasos de planificación y diseño del programa, mientras que antiguamente (programación artesanal) la realización de un programa consistía casi únicamente en escribir el código, bajo sólo el conocimiento de los requisitos y con una modesta fase de análisis y diseño.
Objetivos de la Programación:
La programación debe perseguir la obtención de programas de calidad. Para ello se establece una serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más importantes son los siguientes:
  • Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
  • Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.
  • Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de consideración al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que genera, etc.).
  • Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la que se elaboró. La portabilidad es una característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a más usuarios más fácilmente.