Fundamentos de programación

Los Fundamentos de la programación

Fundamentos de programación es un ramo de introducción a la programación en sus aspectos mas básicos.

Por fin, un tema en el cual me siento a gusto y cómodo escribiendo, Fundamentos de programación es un ramo que cubre las áreas mas básicas y simples de programar, pero antes de entrar de lleno a la programación, tratare con mis palabras adentrarlos a la resolución de problemas por medio de la programación y para ello citaremos en varias ocasiones a mi matemático favorito «Polya»

Resolución de problemas

Cotidianamente nos encontramos con diferentes tipos de problemas en nuestro camino y estamos tan acostumbrados a ellos que mentalmente los resolvemos casi de manera automática, sin embargo en la programación deberemos ser capas de ver ese problema mas allá y descomponerlo para entenderlo en detalle y poder explicárselo a nuestra computadora.

Un ejemplo de lo mas común en un problema cotidiano puede ser, tomar una taza de té. cualquier persona en condiciones, puede preparar una taza de té sin complicarse la vida y ni siquiera debe pensar mucho en ello, agua te taza y fin.

ALGORITMOS.

Un algoritmo son los procedimientos finitos a seguir que señalan paso a paso la solución de un problema.

Hipotéticamente, pongámonos en el caso de que estamos con «Jose» una persona la cual en su vida ha estado en una cocina y no tiene idea como servir una taza de té.

¿Cual seria el algoritmo que deberíamos indicarle a «Jose» para enseñarle a servirnos una taza de té?

Una acción de la cual nuestra mente esta tan acostumbrada y conoce todas las variables, condiciones y posibilidades que pueden suceder a la hora de servir una taza de té que inconscientemente no pensamos en ello.

Le diré a «Jose» que coloque la tetera en el fuego y espere a que hierva. ¿Y si la tetera no tenia agua? – Algo tan lógico para nosotros no lo es para «Jose», Si nosotros colocamos la tetera a hervir, nuestra mente automáticamente condiciona ¿La tetera tiene agua?.

Nuestra computadora sera como «Jose», recibirá la orden explicitamente como se la dediquemos, pero no cuestionara la lógica de lo que pedimos, por lo cual deberemos pensar en todo los pasos, incluso los que parezcan ridículos, antes de pedirle un te a «Jose» (o solucionar un problema a nuestra computadora».

El algoritmo correcto para preparar una taza de té seria:

  1. Buscar la Tetera
  2. Revisar si tiene agua
  3. Si tiene agua, saltar al paso 5
  4. Llenar 1/4 de la tetera con agua
  5. Buscar fósforos
  6. Si hay fósforos, saltar al paso 8
  7. ir a comprar fósforos
  8. Encender la cocina
  9. Colocar la tetera y esperar que hierva
  10. Buscar un par de tazas limpias
  11. Si no hay tazas limpias, lavar 2 tazas
  12. Colocar una bolsa de te en cada taza
  13. Agregar el agua hervida a un 3/4 de cada taza
  14. Colocar cucharas y azúcar en la mesa
  15. Sentarse a tomar el té.

Ahora «Jose» nos podrá servir una taza de té y podremos estar tranquilo, sabiendo que seguirá los pasos que corresponden.

El aspectos mas importantes a la hora de procesar un problema es la la «Representación mental» ver el problema en forma general, comprenderlo antes de intentar resolverlo, comprender sus características, identificar los datos y como se relacionan entre si y lo mas importante, saber que resultado se espera, eso es lo que queremos lograr en los Fundamentos de programación

Un ejemplo de como ilustramos un problema comúnmente en nuestra mente.

El papa de Jose tiene 5 hijos entre ellos esta Juan, Mario, Jorge, Pedro. ¿Como se llama el quinto hijo?

Antes de resolver el problema, debes reunir sus características y relacionar los datos, ¿que pide realmente el problema?

Otro ejemplo de Fundamentos de programación:

El papa de Juan, maneja un autobús y sale temprano en la mañana. Se detiene en la primera parada y recoge 3 personas. Sigue hasta la próxima parada y allí suben 4 personas. Continúa hasta la siguiente parada y suben 5 personas. En la próxima parada, suben 7 personas y se bajan 2. En la siguiente parada, suben 9 personas y se bajan 1. En la parada siguiente, suben 5 personas y se baja 4. La próxima vez, suben 5 personas y se bajan 3. La vez siguiente, se bajan 4 personas y no sube nadie. En la siguiente parada nadie espera por el autobús, de manera tal que este no se detiene. Finalmente, el autobús llega al terminal.

¿Cuántas paradas hay en la ruta del autobús?

Si intentaste resolver el problema, seguramente ibas contando la cantidad de personas que subían y bajaban, antes de entender realmente que es lo que te pedía el problema, esto es una tendencia común en este tipo de problemas y pocas personas considerarían en contar cuantas paradas tubo el autobús.

La Metodología de resolución de problemas, según Polya

Me desviare un poco del el ramo Fundamentos de programación y lo que enseñan en Aiep, por que desde mi punto de vista, esto es importante conocer a la hora de programar.

George Polya en sus estudios, estuvo interesado en el proceso del descubrimiento, o cómo es que se derivan los resultados. Por ello, su enseñanza enfatizaba en el proceso de descubrimiento aún más que simplemente desarrollar ejercicios apropiados. Para involucrar a sus estudiantes en la solución de problemas, generalizó su método en los siguientes cuatro pasos para el Fundamentos de programación:

  • Entender el problema: identificar qué se pide de modo completamente independiente de las diversas condiciones que pueden ser impuestas y limitaciones constatables en el problema.
  • Idear un plan: responder tan directamente como sea posible lo qué se pide. Esto requiere generalmente uso de una ley, de una definición o de un principio que sea la respuesta a la pregunta hecha. Encontrar la conexión entre los datos y lo que se quiere.
  • Realizar el plan: responder a las peticiones hechas por el resultado del paso anterior. Esto puede requerir revisar nuevamente los pasos anteriores.
  • Mirar hacia atrás: revisar usando el sentido común, el resultado de usar los pasos anteriores.

Ejemplo de Fundamentos de programación:

A un empleado de una empresa se le cancela como Sueldo Base la cantidad de $520.000. ¿Cuál es el sueldo líquido del empleado si además, se le cancelará un bono equivalente al 20% de su Sueldo Base?

  • Entender el problema.
    Leer cuidadosamente el problema.
    Se desea obtener el sueldo líquido a pago de un empleado para lo cual se necesita conocer su sueldo base, el porcentaje del bono y alguna fórmula relacionada con el problema
    Identificación de datos importantes.
    Sueldo Base
    Porcentaje del Bono
    Sueldo Líquido
  • Idear un plan.
    Determinar claramente lo que hay que hacer.
    Es un problema conocido
    Se utilizará la fórmula
    Sueldo Líquido = Sueldo Base + Sueldo Base * 20%
    Otra formula podría ser
    Sueldo Líquido = Sueldo Base * 1,2
    Una vez calculado, escribir el resultado.
  • Realizar el Plan
    El 20% del Valor del Bono = 20/100
    Monto del Bono = Sueldo Base * 20/100
    Sueldo Líquido = Sueldo Base + Monto del Bono
  • Mirar hacia atrás
    Verifique: Revisar la respuesta.
    Sueldo base = 520.000
    Monto del Bono = 520.000 * 20/100 = 104.000
    Sueldo Líquido = 520.000 + 104.000 = 624.000

Respuesta: El sueldo líquido del empleado es de $624.000

Pueden encontrar mas información sobre y Polya y Fundamentos de programación en: Resolución de problemas.

Fundamentos de programación.

Ahora, vamos a lo nuestro – Fundamentos de programación -. Comenzaremos definiendo los conceptos básicos en la programación partiendo por:

¿Que es programar?

Es escribir un grupo de algoritmos para que el computador las realice. Todo los programas que ves o conoces, fueron programados por alguien o un equipo de personas.

¿Que es un computador?

Es una maquina programable, capaz de aceptar datos de entrada, procesarlos y convertirlos en resultados de salida (Información). El que sea programable —permite entregarles usos diversos, entre ellos; Ejecutar cálculos complejos y/o tediosos, Realizar procedimientos repetitivos, Almacenar grandes volúmenes de información.

¿Que es el Hardware?

—Las computadoras están conformadas por componentes electrónicos que conforman el llamado hardware del equipo. Por ejemplo:

  • Tarjeta Madre.
  • Procesador.
  • Disco Duro.
  • Memoria RAM (Random Acces Memory).
  • Memoria ROM (Read Only Memory).
  • Tarjeta de Red.
  • Tarjeta de Vídeo.
  • Tarjeta de Sonido.
  • Periféricos de entrada y salida (Componentes externos de la computadora)

¿Que son los datos?

Es todo aquella representación de una entidad y que es susceptible de tratamiento ya sea en un programa o proceso informático. Por ejemplo nombre, apellido y edad son datos de una persona (entidad). En otras palabras un dato es la representación de una realidad.

¿Que es la Información?

Mensaje válido para un receptor o resultado del procesamiento de datos.

¿Que es el Software?

Conjunto de instrucciones capaces de manipular un conjunto de datos. (Componente logico de la computadora), este se puede dividir en 3:

  • Entrada de datos: Instrucciones tomadas desde algún periférico depositandolos en la memoria principal para luego ser procesados.
  • Procesos: Procesa los datos recogidos y entrega resultados depositandolos nuevamente en la memoria.
  • Salida de datos: El conjunto de instrucciones ya procesadas que obtiene de la memoria y la entrega a perifericos de salida.

¿Que tipo de Software hay?

  • Software de sistema: Estos desvinculan al usuario de las tareas de “bajo nivel” del sistema (de la máquina).
  • Software de aplicación: Permite al usuario llevar a cabo tareas específicas con el computador.
  • Software de programación: Permite al usuario desarrollar nuevo software, esto mediante lenguajes de programación y herramientas de asistencia.

¿Como se desarrolla un software?

Desarrollar un software, es una tarea compleja, programas es solo una etapa del desarrollo de un software.

¿Como desarrollar un Software?

¿Como se codifica el Software?

  • Lenguajes de alto nivel son más entendibles por el humano.
  • Lenguajes de bajo nivel son más entendibles por la máquina.

El proceso resumido es como sigue:

Codificar Software

 

¿Como se ejecuta un Software?

  • El código fuente y el binario (forma de denominar al código máquina) se guardará en el disco de almacenamiento.
  • Cuando el binario es ejecutado (esto es posible solo si es ejecutable), este es cargado en la memoria principal.
  • La tarea de “cargar” la aplicación en realidad es realizada por el sistema operativo. Pero nos abstraeremos un tiempo de estos detalles.
  • El programa cargado en la memoria principal tendrá la siguiente distribución:

Ejecución de un Software

  • Entonces hay que distinguir la aplicación que vendría a ser el código máquina almacenado.
  • Y el proceso, el cual es una “copia” de la aplicación pero en ejecución en el sistema, por supuesto distribuido en la memoria principal como se vio en la diapositiva anterior.

En el próximo articulo de Fundamentos de programación veremos la nomenclatura de el Pseudolenguaje y utilizaremos el programa PSeInt para ir probando nuestros códigos. También repasaremos las conversiones de Decimal a binario, Hexadecimal a binario, la tabla de la verdad, etc.

Hasta entonces.

Una moraleja interesante para los futuros informáticos.

Un hombre volaba en globo, cuando de pronto se percata de que estaba perdido;
maniobra y desciende un poco. Entonces divisa a un hombre en la calle y le grita:-

«Disculpe, ¿podría usted ayudarme?.
Prometí a un amigo que me encontraría con él a las dos, llevo media hora de retraso y no se dónde estoy…»-

«Claro que puedo ayudarle. Usted se encuentra en un globo de aire caliente, flotando a unos 30 metros de altura entre los 40 y los 42 grados de latitud Norte, y entre los 58 y los 60 grados de longitud Oeste».-

«¿Es Ud. informático?», pregunta el del globo.-

«Sí, señor, lo soy. ¿Cómo lo supo?»-

«Porque todo lo que Ud. me ha dicho es «técnicamente» correcto, pero “prácticamente» inútil.
Aún no se que hacer con la información que me ha dado y continúo perdido».-

«Y Ud. debe ser un Jefe, ¿verdad…?», contesta el informático.-

«En efecto, lo soy. Pero, ¿cómo lo supo?»-

«Muy fácil: no sabe ni donde está, ni para donde va… Hizo una promesa que no tiene ni idea de como cumplir y espera que ahora otro le resuelva el problema.
De hecho, está exactamente en la misma situación en que se hallaba antes de encontrarnos…
pero ahora, por algún motivo, resulta que… ¡la culpa es mía!»…

Moraleja obtenida de: Cesar Calderón

Ramo de Fundamentos de programación, impartido por Aiep Antofagasta.

Suscribete a nuestra lista

Mantente informado sobre las novedades que ofrecemos en nuestra web, no te llenaremos de Spam ni entregaremos tus datos a terceros.

Gracias por suscribirte a nuestra lista

Pin It on Pinterest

Share This