Está en la página 1de 42

Pensamiento Computacional (PC) y fundamentos de la Programación Informática

(PI)
1. Pensamiento Computacional.

1.1. Para Empezar.


Al inicio de un curso de programación para docentes, es imprescindible tener claro el
objetivo. Queremos entrenarnos en la aplicación del pensamiento computacional en
nuestras enseñanzas por medio de la programación informática. Por lo tanto, la meta
superior son los beneficios que nos aporta el PC.

1 de 42
Objetivos:

 Conocer los beneficios que aporta el Pensamiento Computacional en la


educación.
 Diferenciar los conceptos clave de Pensamiento Computacional y
Programación informática.
 Ser capaces de relacionar aspectos del PC con nuestro currículo.

1.2. ¿Qué es el pensamiento computacional?


Es evidente el interés que está despertando el Pensamiento Computacional para el
presente y el futuro de la educación. Es un concepto que abarca mucho más que el
puramente tecnológico para convertirse en un referente teórico como metodología de
análisis, reflexión y solución de problemas reales, como muestra la siguiente cita de
Jeannette M. Wing, precursora de los beneficios del Pensamiento Computacional:
“El pensamiento computacional implica la solución de problemas, el diseño de
sistemas y la comprensión del comportamiento humano, basándose en los conceptos
fundamentales de la ciencia de la computación. El pensamiento computacional
incluye una gama de herramientas mentales que reflejan la amplitud del campo de la
ciencia de la computación. (…) El pensamiento computacional usa el razonamiento
heurístico para descubrir una solución. Está planeando, aprendiendo y programando
con incertidumbre. Es búsqueda, búsqueda y más búsqueda, …”

JEANNETTE M. WING, “Computational Thinking”. COMMUNICATIONS


OF THE ACM. vol. 49. no. 3. (2006). págs 33–34 [En línea].
Disponible: https://www.cs.cmu.edu/~15110-s13/Wing06-
ct.pdf.[Consulta: 26-febrero-2018]. Traducción libre.

El PC es una forma de razonamiento, una competencia, una estrategia para


solucionar problemas (complejos o no) mediante la aplicación de los principios
propios de la computación. No se trata de pensar como una computadora, sino de
tener la capacidad de analizar y solucionar los problemas; al igual que se realiza
cuando intentamos comunicarle a la computadora lo que queremos hacer. Por lo
tanto, podemos aplicar los principios del PC sin necesidad de una computadora,
empleándolos para la resolución de problemas en paralelo con el método de
proyectos. Podemos también buscar la solución de problemas (o la satisfacción de
necesidades) con la ayuda de la computadora. En este caso es donde entra la
programación informática como mediación.
Podemos establecer cuatro conceptos clave en el pensamiento computacional. Cuatro
aspectos que lo sustentan:

 Descomposición: lo primero que debemos hacer para afrontar un problema es


descomponerlo en partes mínimas abarcables.

2 de 42
 Reconocimiento de patrones: analizando todos los aspectos del problema
buscaremos semejanzas, puntos de conexión, relaciones, ...
 Abstracción: esfuerzo por seleccionar la información relevante y sus
relaciones, e ignorar los aspectos irrelevantes.
 Algoritmia: preparar la solución al problema en forma de algoritmo: secuencia
de pasos ordenados y relacionados y un flujo de información que permitirá la
solución del problema.

3 de 42
A veces se les añade a estos cuatro conceptos lo de modelización o prototipado; y lo
de evaluación.

 Modelización: desarrollo de representación de datos e ideas.


 Evaluación: empleo de sistemas efectivos para comprobar, evaluar y depurar.
Las características básicas o elementos que existen en el pensamiento computacional
son:

Habilidad del Definición


pensamiento
computacional
La abstracción es el proceso de hacer un artefacto más
comprensible a través de la reducción de los detalles
innecesarios. La habilidad en la abstracción reside en la
elección del detalle para ocultar de manera que el problema se
Abstracción
vuelva más fácil, sin perder todo lo que es importante. Una
parte fundamental de la misma es la elección de una buena
representación de un sistema. Diferentes representaciones
hacen diferentes cosas fáciles de hacer.
Pensamiento El pensamiento algorítmico es una forma de llegar a una
algorítmico solución a través de una definición clara de los pasos.
La automatización es un proceso de ahorro de trabajo en el que
un ordenador se programa para ejecutar un conjunto de tareas
Automatización repetitivas de manera rápida y eficiente en comparación con
un ser humano. Según esto, los programas de ordenador son
"automatizaciones de abstracciones".
La descomposición es una forma de pensar acerca de los
artefactos en términos de sus partes y componentes. Cada
Descomposición pieza debe entenderse, solucionarse, desarrollarse y evaluarse
por separado. Esto hace más fácil resolver problemas
complejos, y grandes sistemas más fáciles de diseñar.
La depuración es la aplicación sistemática de las habilidades de
Depuración análisis y evaluación empleando como prueba la localización y
el pensamiento lógico para predecir y verificar los resultados.
La generalización se asocia con la identificación de patrones,
similitudes y conexiones, y la explotación de las
características. Es una forma de resolver rápidamente los
nuevos problemas sobre la base de las soluciones en los
problemas anteriores, y la construcción en la experiencia
Generalización previa. Haciendo preguntas tales cómo "¿Esto es similar a un
problema que ya solucioné?" y "¿Cómo es diferente?" Son
importantes aquí los procesos de reconocimiento de patrones.
Algoritmos que resuelven algunos problemas específicos se
pueden adaptar para resolver toda una clase de problemas
similares.

4 de 42
1.3. Origen del pensamiento computacional.
Los orígenes del pensamiento computacional hay que buscarlas en la historia del
campo de donde extrae sus fundamentos: la computación. Así podemos hablar del
pensamiento algorítmico que se desarrolló en las décadas de los 50 y 60 del siglo XX.
La ciencia de la computación se fue desarrollando en paralelo con los avances
tecnológicos de la informática.
Fue Seymour Papert quizás precursor del PC; el primero que extrapolo los principios
de la computación a otros campos. Pero el desarrollo del pensamiento computacional
se debe fundamentalmente a Jeanette Wing.

Seymour Papert

Seymour Papert fue quizás el precursor del PC. Colaborador del psicólogo Jean
Piaget, desarrolla el denominado aprendizaje construtivista. Crea, en esa línea, un
lenguaje de programación denominada LOGO, con fines didácticos para contribuir a
la construcción de conocimiento por los estudiantes más jueves. Vemos alguna de
sus reflexiones sobre el aprendizaje relacionado con la computación:
“Empecé a ver como los niños que habían aprendido a programar computadoras
podían usar muy concretos modelos de computadora para pensar acerca de pensar y a
aprender sobre aprender y de esta manera, mejorar sus facultades como psicólogos y
epistemólogos. Por ejemplo, muchos niños se retrasan en su aprendizaje porque
tienen un modelo en el cual "tienes la respuesta" o "estás equivocado". Pero cuando
aprendes a programar una computadora casi nunca obtienes el que quieres la primera
vez. Aprender a ser un maestro programador es aprender a ser diestro en localizar y
corregir " bugs", las partes que evitan que el programa funcione. La pregunta que
debe hacerse sobre un programa no es si está bien o está mal, sino si es que este puede
ser corregido. Si esta forma de pensar acerca de productos intelectuales fuera
generalizada a como la cultura en general piensa sobre el conocimiento y su
adquisición, todos podríamos estar mucho menos intimidados por miedos a "estar
equivocados". Esta influencia potencial de la computadora de cambiar nuestra noción
de una versión blanca o negra de nuestros éxitos y fracasos es un ejemplo del uso de
las computadoras como "objetos con los cuales pensar". Obviamente no es necesario
trabajar con computadoras para adquirir buenas estrategias de aprendizaje.
Ciertamente, personas interesadas en aprender desarrollaron estrategias de
"depuración" antes de que existieran las computadoras. Pero el pensar sobre aprender
en analogía al desarrollo de programas es una manera poderosa y accesible de
comenzar a ser más hábiles en nuestras estrategias de depuración y mejorarlas más
deliberadamente.”
PAPERT, S., Mindstorms: children, computers, and powerful ideas, Basic Books, New York,
1980. pág. 23. Traducción libre.

5 de 42
Jeanette Wing

Esta ingeniera y teórica de la computación estudió las técnicas de resolución de


problemas y abstracción usadas por la ciencia de la computación para su aplicación a
otros ámbitos. Así en 2006 en la revista Communications of the ACM acuñó y
desarrolló el concepto de pensamiento computacional. Lo describe cómo una
habilidad fundamental, al mismo nivel que la lectura, la escritura o la aritmética.
En ese destacado artículo Computational thinking de la revista Communications of
the ACM que publica en marzo de 2006, además de definir el concepto, tal y como
reproducimos en la cita del apartado anterior, delimita el que es y lo que no es
pensamiento computacional. Reproducimos parte de esta reflexión.

El pensamiento computacional es conceptualizar y no programar.


La Ciencia de la computación no es programación informática. Pensar como un
científico informático significa más que poder programar una computadora. Exige
pensar en múltiples niveles de abstracción.
El pensamiento computacional es una destreza fundamental, no es memorizar.
Una destreza fundamental es algo que cada ser humano debe saber para funcionar en
la sociedad moderna. Memorizar significa una rutina mecánica.
El pensamiento computacional es una manera de que los humanos, y no las
computadoras, piensen.
Es una manera en la que los humanos resuelven problemas; no está tratando de que
los humanos piensen como ordenadores. Las computadoras son aburridas; los
humanos son inteligentes e imaginativos. Los humanos hacen las computadoras
excitantes. Equipados con dispositivos informáticos, utilizamos nuestra habilidad
para abordar los problemas que no nos atreveríamos a asumir antes de la era de la
computación y crear sistemas con funcionalidades limitadas solo por nuestras
imaginaciones.
El pensamiento computacional complementa y combina el pensamiento matemático
y de ingeniería.
La informática incorpora inherentemente el pensamiento matemático, ya que, como
todas las ciencias, sus fundamentos formales descansan en las matemáticas. La
informática incorpora inherentemente el pensamiento de ingeniería, dado que
nosotros construimos sistemas que interactúan con el mundo real. Las restricciones
del dispositivo informático subyacente hacen que los científicos informáticos
piensen computacionalmente, no solo matemáticamente. Ser libre para construir
mundos virtuales nos permiten enseñar sistemas más allá del mundo físico.

6 de 42
Ideas, no artefactos.
No solo los artefactos de software y hardware que producimos estarán físicamente
presentes en todas partes y tocarán nuestras vidas todo el tiempo, serán los conceptos
computacionales que usamos para abordar y resolver problemas, gestionar nuestra
vida diaria y comunicarnos e interactuar con otras personas.
El pensamiento computacional es para todos, en todas partes.
Será una realidad cuando sea tan integral para los esfuerzos humanos que desaparece
como una filosofía explícita.
WING, JEANNETTE M., “Computational Thinking”. COMMUNICATIONS OF
THE ACM. vol. 49. no. 3. (2006). pág. 33–34 [En línea].
Dispoñible: https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf. [Consulta: 26-
febrero-2018]. Traducción libre.

1.4. PC en educación.
Es evidente el interés que está despertando el Pensamiento Computacional en el
mundo de la educación. Es un concepto que abarca mucho más que el puramente
tecnológico para convertirse en un referente teórico como metodología de análisis,
reflexión y solución de problemas reales. El pensamiento Computacional está
entrando en la enseñanza a todos los niveles. En muchos países forma parte esencial
del currículo de diferentes áreas. No solo la programación como tal, sino la
introducción del PC como principio pedagógico.
La programación, la codificación, es una excelente herramienta para desarrollar
habilidades propias del PC, pero no de forma exclusiva. En cualquiera caso, además
de materias directamente relacionadas con la programación como tal implementadas
en el currículo (programación, informática, TIC, …); no debemos olvidar que PC y
programación son conceptos que abarcan todas las áreas y todos los niveles. El
desarrollo curricular de cualquier materia, área o ciclo puede contener el PC en su
fundamento pedagógico y la programación como mediación en muchos casos.
Como en todas las tecnologías, la programación informática no es una herramienta
externa que empleamos como apoyo a una didáctica tradicional, ni una busca
únicamente de capacitación en el empleo de determinadas herramientas. Se trata de
ahondar en las relaciones entre contenido, tecnología y pedagogía. Aplicar una
pedagogía que integre la didáctica y la tecnología mediante metodologías nuevas.
Veremos la Programación Informática como aplicación de los conceptos del
Pensamiento Computacional en la resolución de problemas empleando la tecnología.
No solo debemos conocer la creación de códigos fuente de programas informáticos,
sino todo el proceso que va desde que detectamos una necesidad o problema hasta
que lo resolvemos con un producto informático. Todo desde la metodología propia de
proyectos. Hablaremos entonces de Proyectos de Programación, como aquellos
proyectos en los que el problema inicial se soluciona con un producto informático.

7 de 42
Las aplicaciones didácticas basadas en el PC y en la programación sirven de
capacitación en aspectos fundamentales en la adquisición de competencias clave. El
tradicional abocamiento de la programación a ámbitos muy reducidos dentro de la
Tecnología Informática se está cambiando por una puesta en valor como disciplina o
recurso muy valioso en la adquisición de destrezas relacionadas con las competencias
clave. Muchos estudios y disposiciones sobre la riqueza del pensamiento
computacional en la escuela así lo demuestran, configurando el PC como una
competencia más.
En el informe Pensamiento Computacional en la Enseñanza Obligatoria
(Computhink). Implicaciones para la política y la práctica que veremos más
adelante, se requirió la participación de varios expertos para que habían ayudado a
clarificar el concepto e implicaciones del PC. No existe unanimidad, pero podemos, a
la luz de los resultados del estudio, acercar una respuesta sobre los beneficios que
aporta.

8 de 42
La siguiente tabla resume las características, actitudes y calidades que aporta el PC.

Características, actitudes y calidades del


Referencia
PC

 Seguridad ante la complejidad


 Persistencia a la hora de trabajar
Barr, D., Harrison, J., & Conery, L. con problemas difíciles
(2011). Computational Thinking: A  Capacidad de gestionar la
Digital Age Skill for Everyone. ambigüedad
Learning & Leading with Technology,  Capacidad de tratar con
38(6), 20–23.Barr, Harrison & Conery problemas abiertos
(p. 51)  Capacidad de comunicarse y
trabajar con otros para lograr un
objetivo o solución común

 Experimentación
 Creación
Woollard, J. (2016). CT Driving
 Depuración
Computing Curriculum in England.
 Perseverancia
CSTA Voice, 12(1). (p. 5)
 Colaboración

Weintrop, D., Beheshti, E., Horn, M.,


Orton, K., Jona, K., Trouille, L., &  Seguridad ante la complejidad
Wilensky, U. (2015). Defining  Persistencia a la hora de trabajar
Computational Thinking for con problemas difíciles
Mathematics and Science Classrooms.  Capacidad de trabajar con
Journal of Science Education and problemas abiertos
Technology. (p. 133)

Implantación del Pensamiento Computacional en la Enseñanza Obligatoria.


En el informe Developing Computational Thinking in Compulsory Education El
Centro Común de Investigación (JRC) de la Unión Europea publicado en diciembre
de 2015, se realiza un análisis del grado de implantación de las enseñanzas
relacionadas con el pensamiento computacional en Europa. (El Instituto nacional de
Tecnologías Educativas - INTEF publicó este informe en castellano con el nombre
El Pensamiento Computacional en la Enseñanza Obligatoria (Computhink).
Implicaciones para la política y la práctica).
El estudio revela el avance progresivo del PC en la enseñanza. Entre sus
conclusiones caben destacar las siguientes:

9 de 42
“Actualmente la integración del Pensamiento Computacional en el aprendizaje
formal e informal supone una tendencia creciente y muy interesante en Europa y
más allá de ella, por su potencial para la educación de una nueva generación de niños
con una comprensión mucho más profunda de nuestro mundo digital. (…)
Para que la integración del Pensamiento Computacional en todos los niveles de
enseñanza obligatoria sea completa, es necesario definir una visión clara y establecer
metas específicas. Como el Pensamiento Computacional implica mucho más que
ofrecer unas pocas horas de codificación, integrarla en el currículo requiere una
estrategia sólida que tenga en cuenta la amplia gama de factores involucrados. Una
consideración clave es la medida en que el Pensamiento Computacional se aplica
todo el espectro de áreas y materias y, también, a contextos multidisciplinarios e
interdisciplinarios. Es deseable que los conceptos del Pensamiento Computacional
sean introducidos a los niños desde los primeros años de enseñanza primaria. Estas
consideraciones requieren un enfoque holístico de la integración del Pensamiento
Computacional en la enseñanza obligatoria, que abarca aspectos esenciales tales
como estrategias apropiadas de evaluación y una adecuada formación docente.”
INTEF. “Estudio Pensamiento Computacional en Educación Obligatoria. (Computhink).
Implicaciones para la política y la práctica”, [En línea]. Páginas 39 a 41.
Disponible: http://blog.educalab.es/intef/wp-
content/uploads/sites/4/2017/02/2017_0206_CompuThink_JRC_UE-INTEF.pdf.
[Consulta: 23-febrero-2018]. (CC BY SA)

Podemos ver el mapa de implantación que se incluye para Europa en el año 2015:

10 de 42
11 de 42
2. Fundamentos de la programación informática.

2.1. Para empezar.


En esta unidad nos introduciremos ya en el mundo de la programación.
Presentaremos el proceso que va desde que tenemos claro lo que queremos programar
hasta que, a la máquina, a la computadora le llega esa información codificada de
manera que pueda entenderla.
Objetivos de la unidad:
 Obtener una visión general del proceso de comunicación con la computadora.
 Conocer los elementos fundamentales de cualquier lenguaje de programación.
 Valorar la utilidad de la programación informática en el campo educativo.

2.2. ¿Qué es la programación informática?


La programación informática es la herramienta que empleamos para comunicarnos
con la computadora e indicarle las instrucciones necesarias para realizar el trabajo
que le encomendamos.
Es, por lo tanto, una herramienta. La empleamos para conseguir un determinado fin
y en el marco de un proyecto que intenta solucionar un problema o necesidad
mediante un producto informático. Es interesante conocer y probar diferentes
lenguajes de programación, son herramientas útiles. Pero no debemos perder de vista
el objetivo final que pretendemos. No vamos a ser programadores ni intentamos
formar programadores. Empleamos la programación como medio para desarrollar
habilidades relacionadas con el Pensamiento Computacional en el marco de la
realización de proyectos que finalizan con la realización de un producto informático.

12 de 42
2.3. Comunicándonos con la máquina.
Para crear un programa se utiliza un lenguaje de programación (conjunto de
instrucciones en un código concreto que tiene como objetivo facilitar la
comunicación entre el programador y el sistema informático), generando lo que se
llama programa fuente (conjunto de líneas de texto con los pasos que debe seguir la
computadora para ejecutar el programa. Está escrito en algún lenguaje de
programación, pero en este primer estado no es directamente ejecutable). Estas
instrucciones no las entiende la computadora, por lo que es necesario convertirlas en
el lenguaje propio de los ordenadores: el lenguaje máquina (sistema de códigos
directamente interpretable por un circuito microprogramable, como el
microprocesador de una computadora). Distinguiremos entre:
Compiladores
Son los que realizan la traducción de una vez, y que no permiten más alteraciones
que las que se realicen en el programa fuente.
Programas interpretados
En este caso la traducción se realiza línea a línea y cada vez que se ejecuta el
programa. Definición de término.
2.4. Con ceros y unos.
Las computadoras no entienden nuestro lenguaje. Trabajan con valores muy básicos.
Debemos traducir lo que queremos a un lenguaje que la máquina interprete
correctamente.

El lenguaje máquina es la que emplea el ordenador. Utiliza el código binario, que solo
tiene dos posibles valores: 0 y 1, denominados bits. Todas las instrucciones que le
damos a la computadora estarán formadas por una combinación de 0 y 1. Fue el
primer lenguaje de programación que se empleó, pero es muy laborioso programar
directamente con este sistema, por lo que prácticamente ya no se utiliza.

13 de 42
El bit es la unidad mínima de información empleada en informática, en cualquier
dispositivo digital, o en la teoría de la información. Con él, podemos representar dos
valores cualesquiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte
o sur, rojo o azul, etc. Basta con asignar uno de esos valores al estado de apagado, y el
otro al estado de encendido.

Apagado Encendido

Podemos imaginar un bit como una lámpara que puede estar en dos estados. Con un
bit podemos representar solamente dos valores o dos diferentes estados, que suelen
representados cómo 0, 1. Para representar o codificar más información en un
dispositivo digital, necesitamos una mayor cantidad de bits. Se usamos dos bits,
tendremos cuatro combinaciones posibles o cuatro posibles números binarios.

00 Los dos están apagados

El primero está apagado y el


01
segundo encendido
El primero está encendido y
10
el segundo apagado

11 Los dos están encendidos

2.5. Bit y byte.


Si queremos decirle algo a la computadora debemos hacerlo mediante una
combinación de ceros y unos.
Físicamente la computadora percibe los 0 y 1 como niveles de tensión eléctrica. 0 no
hay tensión y 1 sí hay tensión. Recibe estas corrientes eléctricas mediante unos
dispositivos (buses: dispositivo con conexiones físicas (cables, placa de circuito
impreso, etc.) que comunican elementos de hardware), que transmiten a la vez un
número determinado de bits mediante el mismo número de conductores. En un
momento dado parte de los conductores tienen corriente y otros no. Muy poco
tiempo después cambia la situación. De este modo la máquina recibe de forma muy
rápida sucesiones de combinaciones de 0 y 1 que tienen un valor determinado para
ella. Si transmitimos con ocho conductores obtenemos números binarios de 8 bits

14 de 42
(10011100, 01110001, …). Este conjunto de ocho bits es lo que se denomina un byte
(unidad de información empleada en computación equivalente a un conjunto
ordenado de, normalmente, 8 bits).
En la siguiente tabla podemos ver la tabla ASCII (American Standard Code fuere
Information Interchange o Código Estándar Americano para el Intercambio de
Información). Es un conjunto de códigos binarios para el ordenador que sirven para
representar cifras, letras, puntuación y otros caracteres.

15 de 42
16 de 42
2.6. Ensamblando ceros y unos.
Es muy difícil, como vemos, pasar directamente cualquier instrucción, por sencilla
que sea esta, a un lenguaje con ceros y unos. Sería muy laborioso. Para ahorrar parte
del trabajo empleamos el lenguaje ensamblador.

Este lenguaje funciona mediante instrucciones básicas más reconocibles por nosotros
que agrupan una serie de operaciones binarias. Cada instrucción que programamos
en el lenguaje ensamblador corresponde con una secuencia de instrucciones en el
lenguaje máquina. Lo que obtenemos programando con lenguaje ensamblador es lo
que se denomina código fuente.
Este lenguaje sustituye el código máquina empleando instrucciones formadas por
palabras alusivas a la funcionalidad que tienen en el programa. Estas instrucciones se
llaman mnemotécnicas (un código mnemotécnico es un sistema sencillo utilizado
para recordar una secuencia de datos que no pueden acordarse de otra forma). Es más
sencillo que el lenguaje máquina, pero no puede ser ejecutado directamente por el
ordenador, necesitando la mediación de un programa traductor que es el llamado
ensamblador. Los primeros ensambladores surgieron en la década de los 50, pero en la
actualidad poseen grandes posibilidades de abstracción, lo cual los hace más fáciles de
manejar.
El lenguaje ensamblador forma parte de los denominados lenguajes de bajo nivel. Es
decir, aquellos lenguajes de programación que controlan de forma más directa la
computadora y están condicionados por la constitución de la máquina sobre la que
queremos trabajar.
Proceso de compilación
En el siguiente diagrama podemos ver a grandes trazos como es el proceso de
compilación.

17 de 42
Edición con lenguaje ensamblador

Código fuente

Software Ensamblador

Código Máquina

Procesador

18 de 42
2.7. Más fácil: el alto nivel.
Todavía se puede facilitar nuestra comunicación con la máquina empleando
lenguajes que se acerquen todavía más a nuestro propio lenguaje. Se trata de
programar mediante órdenes más generales que se empleen habitualmente. Estas
órdenes se traducen directamente a una secuencia de instrucciones en un lenguaje de
bajo nivel que las comunique directamente a la máquina.

Los lenguajes de alto nivel son aquellos que utilizan el lenguaje natural para realizar
programas y, por tanto, necesitan otro programa para generar el código máquina ya
que la computadora no los entiende directamente. Este programa puede ser:
Un intérprete
Traduce cada línea del programa siguiendo la secuencia; ejecuta el programa paso a
paso hasta el final o hasta que encuentra un error, en cuyo caso, se detiene.
Un compilador
Traduce el programa completo creando otro que entiende la computadora y que se
llama programa objeto; si encuentra errores, indica su posición para que sean
corregidos. El programa objeto obtenido es el ejecutable.
La gran ventaja de los lenguajes de alto nivel es que consiguen distanciarse del
lenguaje máquina y se aproximan al lenguaje natural. Podemos decir que los
principales lenguajes de alto nivel que se crearon son Fortran, COBOL, PL/1,
BASIC, Pascal, C y ADA.

19 de 42
Veremos algunos lenguajes en los próximos temas, pero existe un cierto tipo de
aplicaciones o lenguajes con una mayor facilidad de uso. Agrupan una serie de
instrucciones o funciones en bloques que se muestran en la interfaz de forma clara.
Son los denominados Lenguajes Visuales o por Bloques.

2.8. Los lenguajes de programación.


Podemos definir correctamente en que consiste un lenguaje de programación,
partiendo de la concepción del lenguaje, en general como la nuestra, como conjunto
de símbolos estructurados mediante reglas fijas que permiten la comunicación.
Por lo tanto, tendremos que un lenguaje de programación será un sistema
estructurado de símbolos y reglas que permiten la comunicación entre nosotros
(lenguaje humano) y la máquina para indicarle una serie de instrucciones que debe
realizar.

Clasificación de los lenguajes de programación: los lenguajes de programación de


clasifican habitualmente en varias categorías.

20 de 42
 Según la distancia a la máquina.
Lenguaje máquina
El lenguaje máquina es aquel lenguaje directamente procesable por el ordenador, el
único que entiende o ejecuta directamente la unidad de control del procesador.
Ensamblador
El lenguaje ensamblador utiliza códigos de asociación para indicar las operaciones
que tiene que realizar el ordenador. Un código de asociación es una palabra o
abreviatura fácil de recordar que sustituye a la secuencia de bits que representan el
código de operación de la instrucción. (mnemotécnicos)
Lenguajes de alto nivel
Los lenguajes de alto nivel son lenguajes orientados al problema. Estos lenguajes
utilizan una terminología que se aproxima más al lenguaje humano. Cada
instrucción en lenguaje de alto nivel se corresponde, generalmente, con varias
instrucciones máquina.

 Por aplicación.
Comerciales
Lenguaje que no tiene una forma libre de acceso a su código fuente, que solo se
encuentra a disposición de la empresa que lo comercializa y no se permite su libre
modificación, adaptación o misma lectura por parte de terceros.
Científicos
Para aplicaciones de carácter científico-técnico como análisis de datos, control de
calidad, desarrollo, simulación, ...
Inteligencia artificial
Para aplicaciones relacionadas con las denominadas máquinas inteligentes.
Programación de sistemas
Es el destinado a gestionar los recursos de las computadoras y de las comunicaciones.
Internet
Lenguajes de programación para la Web, normalmente dinámicos, que permiten
interactuar con los usuarios y utilizar sistemas de Bases de Datos.
etc...

 Según el estilo (paradigma) de programación que necesitemos.


Lenguaje Imperativo
La programación imperativa o por procedimientos es el más usado en general. Se
basa en dar instrucciones al ordenador de cómo hacer las cosas en forma de

21 de 42
algoritmos. El ejemplo principal es el lenguaje máquina. Ejemplos de lenguajes puras
de este paradigma serían el C, BASIC o Pascal.
Lenguaje declarativo
Las sentencias que se utilizan lo que hacen es describir el problema que se quiere
solucionar; se programa diciendo lo que se quiere resolver a nivel de usuario, pero no
las instrucciones necesarias para solucionarlo. Esto último se realizará mediante
mecanismos internos de inferencia de información a partir de la descripción
realizada.
Lenguaje orientado a objetos
Trabajan a partir de unidades básicas denominadas objetos, de forma que cada uno de
ellos posee las características básicas y las operaciones que se pueden hacer con ellos.
Los principales son Java, C++, Visual Basic, C#, Python, Smalltalk, …
2.9. Breve historia de la programación.
La historia de la programación informática y de los lenguajes de programación es una
secuencia vertiginosa de avances desde la creación de la primera computadora, allá
por los años 40 del siglo XX, hasta hoy en día en que se abren numerosas
posibilidades.
Programación antes de la computadora.
Los primeros lenguajes de programación surgen antes incluso de que aparezcan las
computadoras. En un primer tiempo se emplean las tarjetas perforadas como sistema
de programación básico. Las primeras aparecen ya a finales del siglo XVIII con la
Revolución Industrial, continuando en el siglo XIX. Se desarrolló su tecnología,
hasta llegar a ser un valioso instrumento para procesar datos. Fue precisamente para
realizar el censo en los Estados Unidos de 1890 cuando Herman Hollerith desarrolló
esa posibilidad. Las tarjetas perforadas fueron empleadas hasta hace no demasiado
tiempo.
Tarjeta perforada: cartón que contiene en forma de perforaciones según un código
binario. Las tarjetas perforadas fueron usadas por primera vez alrededor de 1725 por
Basile Bouchon y Jean-Baptiste Falcon como una técnica mejor que la de los rollos de
papel perforados usados en ese momento para controlar telares textiles en Francia.

22 de 42
Curiosidad acerca de las tarjetas perforadas
El 8 de noviembre del año 2000 se estaba haciendo recuento de votos en el estado de
Florida para las elecciones a la presidencia de los Estados Unidos. Competían por el
Partido Republicano George W. Bush y Al Gore por el Demócrata. Hasta el
momento estaban muy igualados.
Se creó una gran polémica por la disputa de 25 votos electorales en Florida que
determinarían quien ganaba las elecciones. La impugnación obligó a revisar una a
una, miles de tarjetas perforadas con las que se votaba hasta entonces.

23 de 42
Etapas en la historia de la programación informática.
La evolución de la programación informática, desde la creación de la primera
computadora, está repleta de hitos y avances. Es una gran progresión hacia la
facilidad en la programación intentando acercar los lenguajes cara una mayor
accesibilidad, y hacia la consecución de cada vez mejores productos, en paralelo al
avance de la tecnología de las computadoras. El siguiente esquema sintetiza las cinco
grandes etapas en las que se suele separar la historia de la programación informática.
Historia de la Programación
Generaciones

Hoy 2017
Programación funcional, software orientado a componentes, código abierto, …

5ª generación 90’s
Lenguajes de inteligencia artificial. Internet.

4ª generación 80’s
Lenguajes orientados a objetos: C++, Java.

3ª generación 70’s
Nacen los primeros lenguajes de alto nivel: Fortran, C.

2ª generación 60’s
Aparece el lenguaje ensamblador.

1ª generación 50’s
Primeras computadoras y lenguaje máquina.

24 de 42
2.10. El programa.
Un programa informático es la implementación de un algoritmo (conjunto ordenado
y finito de operaciones sencillas que conducen a la resolución de un problema)
empleando un lenguaje específico que permite la comunicación con la computadora.
Es decir, con el programa materializamos nuestro diseño algorítmico en un conjunto
de instrucciones que le damos a la computadora. Los programas están formados por
algoritmos y por la estructura de datos (forma de organizar los datos de un programa
informático para que puedan ser utilizados eficientemente por la computadora).
Normalmente están divididos en módulos de modo que la complejidad de cada parte
sea menor que la del programa completo, facilitando así el desarrollo del programa.
Esta es la base de la programación estructurada (forma de programación orientada a
la mejora de la calidad y la eficiencia del programa a base del empleo sistemático de
sólo estructuras básicas: secuencia, selección e iteración).
Programa informático
Un programa es un conjunto de instrucciones ordenadas secuencialmente (en forma
de secuencia, es decir, una sucesión de hechos o tareas que mantienen una relación
entre sí) que permiten a un computador interpretar una información de entrada,
procesarla y producir una información de salida.
Características de los programas
Los programas, para que sean válidos, deben cumplir una serie de características
básicas:
Corrección
Deberá realizar las funciones para las que fue diseñado cumpliendo las
especificaciones con las que se concibió.
Claridad
Un programa debe tener una estructura sencilla fácilmente legible y coherente que
facilite su empleo, así como su mantenimiento y desarrollo.
Eficiencia
Debe gestionar eficientemente los recursos, ajustando los tiempos de ejecución
(intervalo temporal en el que un programa de computadora se ejecuta en un sistema
operativo), la memoria de trabajo empleada, el espacio ocupado y el tráfico de datos.
Portabilidad
Deberá tener la capacidad de poder ejecutarse en una plataforma diferente a aquella
en la que se desarrolló, tanto a nivel de hardware (son todas las partes físicas y
tangibles de la computadora: componentes electrónicos, eléctricos, mecánicos,
periféricos, …) como de software (conjunto de componentes lógicos necesarios que
hacen posible la realización de tareas específicas).

25 de 42
2.11. Elementos fundamentales.
La programación puede ser una labor muy compleja. Pero también es bien fácil
iniciarse, practicar y comprender a nivel básico como se crean los programas
informáticos. Esta complejidad que tiene a veces el campo de la programación, y de
la informática en general, lleva a la aparición de multitud de términos específicos.
Muchos de ellos son complicados de entender, entre otras cosas porque normalmente
fueron creados en inglés y, o bien tenemos el término en inglés directamente, una
traducción más o menos afortunada o unas siglas.

Comentarios prólogo

Sentencias del programa

Comentarios en línea

Elementos básicos en la programación


Hay una serie de elementos básicos que van a estar presentes en la mayoría de los
programas y lenguajes de programación.
Variables: las variables son un espacio en el sistema de almacenamiento con
un nombre y un símbolo que las identifica. Pueden acoger cierta cantidad de
información. Son como recipientes que almacenan una cantidad variable de
datos (de ahí su nombre).
Identificadores: Son, fundamentalmente, los nombres de las variables.
También identifican procedimientos, funciones, ...
Caracteres y palabras
Símbolos o términos que tienen un especial significado en el lenguaje de
programación. En general tendremos siempre:
Palabras reservadas o Primitivas
Vocablos con un significado específico e inmutable: inicio, fin, sí entonces,...
Caracteres especiales: caracteres que tienen una función definida en el
lenguaje del programa: coma, apóstrofe, ...
Constantes: valores que durante la ejecución del programa sólo se pueden
leer, no variar.

26 de 42
Expresiones: combinación de constantes, variables y funciones; interpretada
según las normas específicas del lenguaje de programación.
Instrucciones: secuencia de datos que el programa interpreta e ejecuta.
Funciones: una función es un procedimiento que contiene una lista de
instrucciones a realizar. Permite dividir un programa en varias partes.
Bucles o ciclos de programación: instrucción que ejecuta repetidamente una
parte del programa hasta que se cumpla una determinada condición.
Estructuras: las estructuras son agrupamientos de variables, (campos de la
estructura), que realizan una finalidad determinada.

2.12. Programación en el aula.


Comentábamos en la unidad anterior la importancia del Pensamiento
Computacional en la educación. La programación no es más que una excelente
herramienta para desarrollarlo. Desde un punto de vista restringido, entendiendo la
programación solo como edición de programas informáticos, posibilita la puesta en
práctica de un gran abanico de posibilidades para el alumnado. Programar contribuye
a desarrollar las habilidades relacionadas con la resolución de problemas y el
pensamiento algorítmico, a monitorear los propios procesos mentales, el desarrollo
en general de su competencia digital y permite la adquisición de este nuevo lenguaje,
según mucha gente, un lenguaje más para el siglo XXI.
Programamos en la escuela
Si entendemos la Programación como una metodología proyectual: un proceso
encaminado a la solución de problemas mediante productos informáticos; añadimos
todas las posibilidades educativas que el trabajo con y por proyectos aporta.
No es el objetivo entonces formar programadores, sino contribuir a la adquisición de
competencias propias del siglo XXI.

¿Y cuál es nuestro papel como docentes?


Tampoco tenemos que ser programadores. Debemos ser facilitadores de aprendizajes
significativos. Por lo tanto, tendremos que acompañar al alumnado en su proceso. Y
debemos hacerlo adquiriendo las mismas habilidades. Incluimos a continuación
algunas citas interesantes sobre el tema.

27 de 42
“No esperamos que todos los niños que aprenden a escribir se conviertan en novelistas, ni que
todos los que estudian álgebra acaben siendo matemáticos; sin embargo, ambas son
consideradas como habilidades fundamentales que todos los niños deben aprender. La
programación informática también debería serlo”
Partovi, Hadi (Cofundador de Code.org) en “Aprendemos a programar en la escuela – Área
de Tecnología Educativa”, [En línea].
Disponible: http://www3.gobiernodecanarias.org/medusa/ecoescuela/ate/2016/05/05/apren
demos-a-programar-en-la-escuela/. [Consulta: 30-octubre-2017].

“La programación informática, que forma parte del área de creación de contenidos, puede
utilizarse como un eje para el desarrollo del resto de áreas de la competencia digital, así como
para desarrollar el resto de competencias básicas. De hecho, el uso educativo de la
programación como un recurso que permita mejorar el aprendizaje de otras disciplinas es algo
que se ha venido investigando desde hace décadas, y existen casos de éxito de estudiantes
programando videojuegos en el aula para mejorar el aprendizaje de asignaturas como
matemáticas, lengua o ciencias, así como para desarrollar las habilidades de resolución de
problemas, el pensamiento lógico y la creatividad.”
Meseguer, Pedro; et al, “Enseñanza de la informática en primaria, secundaria y bachillerato:
estado español, 2015” [En línea]. Disponible: http://www.scie.es/wp-
content/uploads/2015/05/Inform%C3%A1tica-Primaria-ESO-Bach.pdf. [Consulta: 4-
octubre-2017].

“La codificación y la programación se utilizan a menudo indistintamente para expresar el


proceso de “escribir” las instrucciones que un ordenador ejecuta. Sin embargo, la
programación hace referencia a la actividad más amplia de analizar un problema, diseñar una
solución e implementarla. La codificación, por su parte, es la etapa de implementación de
soluciones en un lenguaje de programación determinado.”
Duncan et al, 2014. En “El Pensamiento Computacional en la Enseñanza Obligatoria
(Computhink). Implicaciones para la política y la práctica”, [En línea]. Disponible: http://
http://blog.educalab.es/intef/wp-
content/uploads/sites/4/2017/02/2017_0206_CompuThink_JRC_UE-INTEF.pdf.
[Consulta: 4-octubre-2017].

28 de 42
“… aprendemos programación para aprender a expresarnos en los lenguajes propios de nuestro
siglo y a interpretarlos con sentido crítico pero, además, existe evidencia científica que
demuestra -en grupos que han aprendido a programar desde Infantil- la mejora de resultados
en pruebas de matemáticas, razonamiento y resolución de problemas, el impacto positivo en la
creatividad y respuesta emocional de niños con dificultades de aprendizaje, así como en el
desarrollo de las habilidades cognitivas y socio-emocionales. También se ha demostrado que el
alumnado que aprende a programar en edades tempranas tiene menos estereotipos de género en
relación a las carreras STEM -Ciencias, Tecnología, Ingeniería y Matemáticas- y menos
reticencias para continuar sus estudios y profesiones en estas disciplinas. Por lo tanto,
queremos programar para aprender, para expresarnos, para comprender mejor los contenidos
científicos y tecnológicos, para perder el miedo a crear y compartir, y para que todos tengamos
las mismas oportunidades de acceder a una alfabetización propia del siglo XXI.”
“Guía Programar para aprender: orientaciones para el profesorado de Primaria”, , fecha de
consulta 30 octubre 2017, en http://codigo21.educacion.navarra.es/2015/01/12/disponible-
para-descarga-la-guia-programar-para-aprender-en-primaria/. [Consulta: 30-octubre-2017].

3. Proyectos de programación.

3.1. Para empezar.


No solo debemos centrarnos en la programación como la creación de códigos fuente.
Sería desaprovechar todo el potencial que nos puede aportar el Pensamiento
Computacional y la programación en sí, como proceso amplio: el proceso que hay
desde que detectamos una necesidad o problema hasta que lo resolvemos con un
producto informático. Todo desde la metodología propia de proyectos. Hablaremos
entonces de Proyectos de Programación, como aquellos proyectos en los que el
problema inicial se soluciona con un producto informático.

29 de 42
Objetivos de la unidad
o Conocer el método para la solución de problemas mediante la programación.
o Obtener una visión general del proceso que va desde la detección de un
problema hasta su solución con un producto informático.
o Valorar las implicaciones que podría tener el trabajo con proyectos de
programación en nuestras aulas.

3.2. Resolviendo problemas.


Programamos para resolver problemas. Ante un problema o una necesidad buscamos
su solución con un artefacto informático programado. El paso desde el problema
hasta la solución tiene sentido solo en el marco de un proyecto: un proyecto
informático.
No es tan fácil a veces detectar y comprender aquellas necesidades y problemas que
podemos solucionar con un producto informático. Tenemos que investigar un poco…
Nuestro primer trabajo tiene que ser lo de buscar problemas para resolver. Lo único
que tenemos que hacer es encontrar uno que realmente se solucione con un producto
informático y que nosotros podamos afrontar. En esto radica el potencial de los
proyectos de programación y su método. También puede ser un problema ya
propuesto, por lo que tendremos que analizarlo con cuidado y detectar si es
susceptible de resolverse con un producto informático y en las condiciones dadas.
¿Qué es un problema?
Lo primero que debemos tener claro es lo que queremos resolver. El planteamiento
que realicemos al analizar el problema o necesidad de partida constituirá el objetivo
principal del proyecto.

30 de 42
Cuando desarrollamos un proyecto es porque necesitamos solucionar un problema o
satisfacer una necesidad. De hecho, es la mejor manera de hacerlo. No solo en
grandes problemas: también los problemas cotidianos se pueden solucionar aplicando
los principios del método de proyectos. Más concretamente los procedimientos que
se emplean en la programación y los fundamentos del pensamiento computacional
son unas potentes herramientas que nos ayudan a resolver los problemas, también
los del día a día.
Pero, ¿qué es un problema?

“Comprender un fenómeno complejo es un problema; resolver una incógnita, una


situación, para las cuáles no se conocen caminos directos e inmediatos, es un
problema; encontrar una forma mejor de hacer algo es un problema; hacerse una
pregunta o exponerse un propósito sobre posibles relaciones entre variables es un
problema; no comprender en su complejidad un fenómeno natural o social es un
problema.”
Restrepo Gómez, B. Aprendizaje basado en problemas (ABP): una innovación didáctica para
la enseñanza universitaria. Educación y Educadores, Norteamérica, 8, ago. 2009. Disponible
en: <http://educacionyeducadores.unisabana.edu.co/index.php/eye/article/view/562>. Fecha
de acceso: 23 sep. 2017. (Traducción libre).

“Del latín problema y este del griego πρόβλημα, prefijo πρό, que significa
anterioridad local o temporal a algo y la raíz βλημα, lema o tema, la palabra problema
nos expresa una cuestión, un asunto que aún no se explicó, que no se resolvió. Algo
que debemos tratar, discurrir, pensar; profundizar, reflexionar, estudiar o examinar.”
Carvajal, L. Problema y necesidad.» [En línea]. Disponible en: http://www.lizardo-
carvajal.com/problema-y-necesidad/. [Accedido: 24-sep-2017]. (Traducción libre).

31 de 42
3.3. ¿Qué es un proyecto?
Proyecto
Un proyecto es un conjunto de actividades o tareas relacionadas entre sí y
coordinadas para conseguir un objetivo determinado en un plazo concreto
consistente en solucionar un problema o satisfacer una necesidad.
Por lo tanto:

PROBLEMA

PROYECTO

NECESIDAD

Es temporal
Temporal significa que cada proyecto tiene un comienzo y un final definido. El final
se consigue cuándo se logró el objetivo del proyecto o cuando queda claro que el
objetivo no podrá ser conseguido, o cuando la necesidad del proyecto ya no exista y
el proyecto sea cancelado. Es decir: cuando el problema se soluciona con el resultado
del proyecto, si es posible solucionarlo.
Se obtiene como resultado un producto objetivo único
Un proyecto crea productos entregables únicos. El proyecto consigue su meta cuando
se formaliza la entrega del producto, en nuestro caso: un producto informático.
Es el resultado de un proceso ordenado y gradual
La elaboración gradual significa que se desarrolla en pasos. Desarrollaremos el
proyecto como resultado de una serie de tareas o actividades coordinadas y ordenadas
en fases, de forma que no se puede realizar una fase hasta que no se completó la
anterior. Lo que sí sucederá y que existen feedback durante el proyecto que nos
obligan a retornar a fases anteriores.

32 de 42
Ejemplo de un proyecto
¿Parece complicado? Es mucho más fácil de lo que parece. De hecho, seguro que
todos desarrollamos muchos proyectos en nuestra vida aún sin ser conscientes de
eso. Muy a menudo nos surgen problemas, cotidianos y sencillos o más complejos; o
detectamos necesidades (o bien nos las creamos) que exigen nuestra atención.
Podemos tener más o menos éxito en estos objetivos, pero seguro que obtendremos
buenos resultados si aplicamos el método de proyectos.
Programar las vacaciones del verano, hacer la declaración de la renta o incluso
realizar un curso online son proyectos. Se comienzan por un problema o necesidad,
requieren analizar lo que precisamos, buscar información, programarnos, ir haciendo
etapas para ejecutarlo, evaluarlo, ...
También hacer una tortilla es un proyecto.

Puedes ver cómo sería el detalle del Proyecto Tortilla en el siguiente enlace:
Proyecto tortilla.
https://qe2ingenieria.com/blog/la-tortilla-lean-1

33 de 42
3.4. Aspectos fundamentales sobre los proyectos.
¿Cómo abordamos un proyecto?
Un proyecto nace cuando decidimos abordar un problema o solucionar una
necesidad. Problema y necesidad pueden ser una propuesta que nos hacen o bien
somos nosotros los que buscamos estos problemas y necesidades. Para convertir este
reto en un proyecto vamos a trabajar mediante el análisis, la investigación, la
creación y la evaluación, fundamentalmente. El proyecto cumplirá su objetivo
cuando hayamos solucionado el problema o la necesidad mediante un producto
creado por nosotros.

PROYECTO

ANALIZAR
NECESIDAD INVESTIGAR
PROBLEMA
PRODUCTO
CREAR
EVALUAR

Preguntas clave del proyecto


Para tomar la decisión de abordar un problema y aplicar el método de proyectos,
debemos cuestionarnos una serie de cosas:
¿Cuál es el problema? Definimos claramente el problema o necesidad. No
debemos confundir el problema que tenemos que resolver con sus
consecuencias.
¿Qué se quiere hacer? Producto informático que puede solucionar el
problema.
¿Por qué se quiere hacer? Objetivos del proyecto.
¿Cuándo se quiere hacer? Meta temporal.
¿Cómo se quiere hacer? Metodología, técnicas, procedimientos, lenguajes,
software, …
¿Quién lo va a hacer? Equipo de trabajo y roles.
¿Con qué se va a hacer? Necesidades materiales del proyecto.
¿Con qué se va a costear? Financiación.

34 de 42
Proyecto cíclico
La forma en la que se aborda un proyecto es cíclica. Intentamos solucionar el
problema mediante fases sucesivas que se suceden mediante abordajes progresivos.
Podríamos verlo como un proceso en espiral donde seguimos el orden de las fases,
pero volvemos constantemente a las fases anteriores aportando feedback. Así hasta
que solucionemos el problema con nuestro producto. Es un proceso cíclico pero
limitado, tendremos que tener una meta temporal para cumplir los objetivos.

PROBLEMA

EJECUTAMOS

PROYECTO ANALIZAMOS

DISEÑAMOS
INVESTIGAMOS

El ciclo de vida del proyecto


Como decimos, para que un proyecto sea tal tiene que ser finito: tiene que tener un
origen y un fin. Si el ciclo de las actividades del proyecto se repite indefinidamente
no estaríamos ante un proyecto, sino ante un sistema o proceso continuo.

INICIO FIN

APERTURA DESARROLLO CIERRE

IMPUT: OUTPUT:
PROBLEMA O NECESIDAD PRODUCTO TERMINADO

35 de 42
3.5. Los proyectos de programación informática.
La programación informática resuelve problemas. Pero la programación, entendida
como la edición de un programa informático, no es más que la herramienta que
empleamos para obtener el producto con el que intentamos resolver ese problema.
Debemos hablar entonces de Proyectos de Programación.
Un proyecto de programación es un conjunto de actividades o tareas relacionadas
entre sí y coordinadas para conseguir un producto informático en un plazo
determinado que solucione un problema o satisfaga una necesidad.
Para elaborar e implementar ese proyecto nos serviremos del Método de Resolución
de Problemas o Método de Proyectos y del Pensamiento Computacional.

PROYECTOS

CREACIÓN DE

ARTEFACTOS

INFORMÁTICOS

3.6. El proyecto como un ciclo.


Los proyectos que llevan a la creación de un producto informático no comienzan
delante de un ordenador editando el programa. Hasta llegar a esa fase debemos
enmarcar nuestro producto en el contexto de la solución de un problema o de la
satisfacción de una necesidad. Debemos primero analizar y definir correctamente el
problema, diseñar el producto que lo va a solucionar y ejecutar ese diseño, ahora sí,
programando y depurando el programa. Finalmente pondremos en funcionamiento
el producto y definiremos la sistemática de mantenimiento.
Este proceso o método de proyectos es además cíclico. Cuando estamos en una fase
debemos retornar muchas veces a las fases anteriores con nueva información que
hace de feedback. Cuando diseñamos igual tenemos que revisar el análisis del
problema, o cuando ejecutamos el diseño. Además, un proyecto de este tipo no
finaliza con la puesta en funcionamiento del producto final. Debemos mantenerlo,
revisarlo, actualizarlo, … Regresaremos así de nuevo al ciclo de proyectos.

36 de 42
A continuación, se explica resumidamente las cuatro grandes etapas en que podemos
dividir el ciclo de los proyectos de programación.
CICLO DE PROYECTOS

DESCRIPCIÓN

1 INICIO El proceso o método de proyectos no es


lineal. Es un proceso cíclico que obliga a
Arranque del proceso definiendo y volver a las fases anteriores con los
analizando el problema del que se parte, e feedback obtenidos en su desarrollo
investigando para buscar la mejor
solución con un producto informático

2 DEFINICIÓN
Definimos el producto
que vamos a crear para
solucionar el problema de
partida. Haremos varias
propuestas y elegiremos
la idónea. Crearemos un
prototipo de la propuesta
para comprobar su
viabilidad y
planificaremos el proceso
de ejecución de la misma

3 EJECUCIÓN
4 IMPLEMENTACIÓN
Comenzamos el proceso de
Con el producto informático ya terminado, programación propiamente, editando el
procedemos a documentarlo, a ponerlo en programa en el lenguaje y aplicación
funcionamiento en las condiciones seleccionado, compilándolo, probando
establecidas, divulgarlo, si es el cado e iniciar y depurando los errores
el programa de mantenimiento

37 de 42
3.7. Fases del proyecto.
Partiendo de las cuatro grandes etapas antes señaladas desarrollamos el proceso.
3.7.1. Inicio.

a. Definición y análisis del problema.


En esta primera fase vamos a definir y explicar claro lo que se quiere resolver, este
planteamiento va a constituir el objetivo principal del proyecto.
Identificar
Identificar un problema consiste en enterarse que existe y que podemos buscarle una
solución.

Podemos detectar nosotros el problema o puede ser el resultado de una propuesta. En


cualquier caso, no basta con detectarlo, sino que debemos enunciarlo correctamente.
Es posible que estemos de acuerdo con la existencia del problema, pero, con todo,
tener diferente punto de vista sobre cómo resolverlo. Debemos, además de haberlo
identificado, definirlo correctamente.
Definir
Definir un problema consiste en especificar las condiciones iniciales que debe tener
el producto que vamos a desarrollar con el proyecto.

La definición del problema o la necesidad es un proceso que debemos hacer con


cuidado ya que de él dependerá en buena parte el éxito de nuestro proyecto. Hay
proyectos complejos que desarrollan productos excelentes, pero, que, con todo, no
resuelven el problema que originó el proceso y, por tanto, son un fracaso.
Objetivar
Del resultado de nuestro análisis tenemos que extraer lo siguiente:

 Un objetivo general del proyecto: la idea directriz del mismo.


 Una serie de condicionantes que delimiten nuestro trabajo.

38 de 42
LLUVIA DE IDEAS

Formulamos una batería de preguntas secundarias


sobre el problema. Realizamos una puesta en común

DESCARTES

En consonancia con las condiciones generales del


proyecto vamos delimitando el tema OUTPUT
INPUT

IDENTIFICAR OBJETIVAR

TESIS

Definimos la idea directriz del proyecto que va a ser la


tesis de trabajo

CONDICIONANTES

Estudiamos aquellos condicionantes que nos delimitan


el proyecto y nos permiten decidir el ángulo desde el
cual queremos abordar el tema

DEFINIR

IDENTIFICAR Se formula la propuesta inicial a partir del problema detectado

DEFINIR
Iniciamos un proceso de análisis del problema o propuesta inicial

OBJETIVAR Del resultado de nuestro análisis tendremos que extraer un objetivo


general del proyecto y una serie de condicionantes que lo delimiten

39 de 42
b. Investigación.
Investigamos para localizar y tratar la información necesaria para crear nuestro
producto informático y suplir carencias de formación. Podría comprender las
siguientes actividades:
 Detectamos las necesidades de formación.
 Seleccionamos las fuentes.
 Definimos los criterios de búsqueda.
 Exploramos la información.
 Seleccionamos la información.
 Extraemos y organizamos la información.
 Transformamos y tratamos la información.
A continuación, se explica el proceso de investigación con más profundidad.
PROYECTOS DE PROGRAMACIÓN: LA INVESTIGACIÓN

La investigación: estudio en profundidad de algo o de alguien con la intención de


lograr nuevos conocimientos, para solucionar conflictos o complicaciones que
puedan presentarse ante nosotros.

OBJETIVOS Y
CONDICIONES
DEL PROYECTO DISEÑO
(PROPUESTA)

40 de 42
 Empezamos la investigación con el objetivo del proyecto y sus condicionantes
bien definidos (la propuesta).
 La finalización de la fase de investigación permite iniciar el diseño.
 Es posible que existan problemas en los procesos de investigación que
obliguen a trabajar de nuevo los objetivos y condicionantes del proyecto
(feedback).
Investigación actividades:
1) Detectar las necesidades de información.
2) Seleccionar las fuentes.
3) Definir los criterios de búsqueda.
4) Explorar.
5) Seleccionar la información.
6) Extraer y organizar.
7) Tratamiento de la información.

3.7.2. Definición.
Ahora definiremos el producto informático que vamos a crear.
a. Diseño.
El diseño es el proceso de elaboración de la propuesta de trabajo del proyecto de
acuerdo a pautas (norma o modelo que sirve de guía) y procedimientos sistemáticos
(que sigue o se ajusta a un sistema o conjunto ordenado de normas y
procedimientos).
 Generando ideas.
 Evaluando ideas.
 Seleccionando ideas.
 Confeccionando la propuesta.

b. Prototipado.
El prototipado es la fase del Método de Proyectos en la que elaboramos, de acuerdo
con nuestro diseño, una muestra del que va a ser nuestro producto final. Un
prototipo es un modelo del producto que se va a crear, un modelo de programa. Se
utiliza para mostrar cómo será este producto, para servir de guía en su creación y
para poder realizar los cambios oportunos antes de la elaboración definitiva.
c. Planificación.
Planificar consiste en ordenar y organizar las tareas necesarias para obtener el
producto que resuelve un problema o satisface una necesidad. Se trata de dividir el
proyecto en operaciones simples y ordenadas.
 Dividiendo el trabajo en tareas sencillas.
 Definiendo roles y funciones.
 Determinando duraciones.

41 de 42
 Asignando tareas.
 Estableciendo relaciones.
 Programando temporalmente.
 Presupuestando la ejecución.

3.7.3. Ejecución.

a. Edición.
Creación del programa en sí elaborándolo en el lenguaje y con las herramientas
seleccionadas y de acuerdo con el diseño.
b. Compilación.
La compilación la realiza un software compilador virtual que efectúa la traducción
del programa escrito en lenguaje de programación en un código máquina. Es posible
que la herramienta que empleemos sea de edición y compilación, caso en el que
iremos viendo el resultado de lo que vamos programando paso a paso.
c. Depuración.
Se probará el programa en diferentes estados de desarrollo y se comprobará su
funcionamiento. Se depurarán los errores hasta conseguir un producto estable.
3.7.4.Implementación.
Cerraremos el proyecto mediante los procesos que permitan terminar y entregar el
producto, y preparar la documentación necesaria.
a. Documentación
Se documentará, no sólo lo necesario para el usuario del producto, sino el proceso de
creación. Es indispensable ir documentando las fases de edición para poder volver a
ellas cuando precisemos revisar, corregir o mantener el producto.
b. Puesta en funcionamiento.
El producto se pondrá en marcha y se comprobará se cumple los requerimientos
establecidos. Puede ponerse en funcionamiento en una fase inicial una versión beta
del mismo, mientras se van corrigiendo errores y estabilizando su uso.
Posteriormente se entregaría la versión estable
c. Mantenimiento.
Las operaciones de mantenimiento no son sólo las inherentes al lanzamiento de un
producto beta, sino que habrá que haber programado una sistemática de recepción y
corrección de errores. También habrá que identificar los momentos en los que sea
preciso actualizar el producto a una nueva versión. Esto implica la vuelta a las fases
anteriores en un proceso cíclico.

42 de 42

También podría gustarte