Metodología de la Programación I

De Computacion

El desarrollo de software hoy en día está tomando gran importancia en el mundo informático, y sobre todo se la está tomando con mucha seriedad, las tecnologías emergentes son innumerables y es preciso sentar las bases para que estas tecnologías sean comprendidas y explotadas adecuadamente. En esta asignatura se busca estudiar los fundamentos de la programación y plantear el horizonte en el mundo del desarrollo de software desde la perspectiva orientada a objetos, y lo más importante es desarrollar las habilidades fundamentales para abstraer y resolver problemas con computadora. En el capítulo 1, se estudia de manera general el panorama del software, ¿qué es? ¿Cómo se usa? ¿Cómo se desarrollan los proyectos de desarrollo? ¿Cuál es el rol del programador? ¿Porqué es importante la Metodología de la Programación?, factores que inciden en su complejidad y los principios del modelado. Los capítulos 2 están orientados a estudiar la lógica de programación y la programación estructurada para el desarrollo de algoritmos eficientes. En el capítulo 3 se estudiaran los fundamentos generales de programación además de algunas normas que se deben tomar en cuenta al momento de realizar los programas. Pues no por ser nosotros diferente a los demás cada uno debe adoptar su propia forma de hacerlo. En el capítulo 4 se estudian las estructuras básicas dentro de la programación estructuradas como son las estructuras selectivas, y las estructuras repetitivas en sus diferentes presentaciones. De esta forma daremos por terminado el primer bimestre donde los estudiantes estarán ya en posibilidad de resolver problemas mediante algoritmos con los conceptos generales de la metodología en la programación. Pasamos al capítulo 5 donde estudiaremos los conceptos de programación modular como son los procedimientos y las funciones, junto con la utilización de parámetros elementos fundamentales para el desarrollo de los temas de modularizacion. Seguidamente en el capítulo 6 haremos una introducción a las estructuras de datos como son los arreglos en sus manifestaciones de una dimensión (unidimensionales) y de varias dimensiones. El capítulo 7 complementa un concepto general en el desarrollo de programas como es la recursividad técnica un poco compleja pero muy útil para el desarrollo de programas de una manera mas rápida y con la optimización de recursos. Terminaremos el estudio con los conceptos esenciales de la programación orientada objetos que en la actualidad están siendo utilizados en la mayoría de los lenguajes de programación. De esta manera pretendemos introducir a los estudiantes en los fundamentos para el desarrollo de problemas a través de programas con la utilización de algoritmos eficientes y eficaces.

Tabla de contenidos

Objetivos Generales

  • Desarrollar la capacidad de comprender y abstraer problemas de programación identificando sus partes y diseñando soluciones eficientes que lleven a su implementación en un lenguaje de programación.
  • Establecer los principios de la programación orientada a objetos como una forma de pensar para la resolución de problemas de programación

Objetivos Especificos

  • Familiarizar al estudiante en la comprensión de conceptos relacionados con los computadores y los lenguajes de programación.
  • Introducir al estudiante en el mundo de la programación entendiendo su complejidad y las posibilidades de resolución aplicando los principios del modelado.
  • Conocer el proceso de programación, y los conceptos importantes utilizados en el desarrollo de programas.
  • Conocer las estructuras esenciales que se utilizan para el control, orden de ejecución de las sentencias en el diseño de un programa.
  • Describir los procedimientos y funciones, junto con los conceptos que se encuentran involucrados en la utilización de sub-algoritmos.
  • Estudiar los conceptos de arreglos unidimensionales y multidimensionales, así como el procesamiento de estos.
  • Desarrollar conceptos de recursividad como una nueva herramienta para la resolución de problemas.
  • Comprender los elementos básicos de programación desde el enfoque orientado a objetos.

Bibliografía

Texto Básico: Fundamentos de Programación, Algoritmos, Estructuras de Datos y Objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003. Bibliografía complementaria:

  • Introducción a la Programación con Orientación a Objetos. Camelia Muñoz, Alfonso Niño Ramos, Aurora vizcaíno Barcelo. Prentice Hall. 2004
  • Programación en C. Metodología Estructurada de Datos y Objetos. Luis Joyanes Aguilar, Ignacio Zahonero Martínez. Mc Graw Hill.
  • Como programar en Java. Harvey M. Deitel, Paul J. Deitel. Pearson Education. Quinta edicion.
  • El Lenguaje Unificado de Modelado. Drady Booch James Rumbauge. Ivar Jaconson. Editorial Addsion Wesley.

Información Complementaria

Al final del texto guía UD. Encontrar la siguiente información que será de mucha ayuda para una mejor comprensión de los temas tratados, pues son unas guías rápidas de cómo realizar la codificación (escritura de los algoritmos en un lenguaje de programación) de los programas.

Titulo Ubicación.
Apéndice D. Guía de sintaxis del lenguaje C Pág. 763
Apéndice E. Guía de sintaxis del lenguaje C++ Pág. 791
Apéndice F. Guía de sintaxis del lenguaje java Pág. 843

Sobre este apartado, seria muy importante que UD. Empiece el proceso de codificación. Pues una forma de comprobar el verdadero funcionamiento de un algoritmo es realizando la codificación (escritura en un lenguaje de programación).


Desarrollo del Aprendizaje

Capitulo1: CONCEPTOS GENERALES


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 1. Computadores y Lenguajes de Programación
Páginas 3 – 34
Horas de estudio empleadas para el desarrollo del contenido5 horas


Propositos:


En este capítulo nos introduciremos de manera general en los conceptos de computadora, lenguajes de programación y una introducción a la resolución de problemas con la ayuda de herramientas como son las computadoras. Es así que en el diario convivir de las personas nos vemos rodeados en todas las partes de computadoras, esta herramienta, se ha convertido en fundamental en el día a día, sirviéndonos en algunos casos como un simple procesador de textos, a llegar a convertirse en una herramienta poderosa que permite realizar los cálculos mas sofisticados, en un tiempo muy corto y con una precisión muy elevada. Es así que por más pequeño que sea un negocio este cuenta con un programa de acuerdo a las características de este, el mismo que le permita realizar una contabilidad, facturación, pedidos, etc. De esta manera en el desarrollo de este capítulo nos centraremos en adentrarnos y obtener conceptos que nos permitan tener una ubicación clara de lo que un informático (existen muchos roles, analista, programador, etc..), realiza para solucionar tareas especificas para clientes que mantienen una necesidad. Además nos adentraremos con las herramientas de programación que nos ayudaran en la resolución de problemas que nos permiten el diseño de algoritmos.

Conceptos Claves:


  • Computadora: En un elemento electrónico, capaz de realizar el procesamiento de datos en información de manera rápida y precisa.

  • Hardware : Corresponde a la parte física de un computador, es decir todos aquellos elementos que podemos ver, monitor, ratón, teclado, etc.

  • Software: El software son todos aquellos programas que permiten la comunicación entre el usuario y el computador. Existen software como los sistemas operativos, los programas estándares existentes en la mayoría de computadores y los programas que permiten la realización de aplicaciones.

  • Dispositivos de entrada y salida : Los dispositivos de entrada son aquellos elementos de hardware que nos permiten el ingreso de datos a la computadora, los mismos que luego de ser procesados serán presentados al usuarios a través de los dispositivos de salida, de los primeros podemos mencionar, el teclado, el mouse, etc. y de los segundos entre los más conocidos podemos anotar la impresora, el monitor, etc.

  • Dispositivos de almacenamiento de información : Los dispositivos de almacenamiento son aquellos que nos permiten almacenar información, se encuentran presentes dentro del mismo computador conocidos como dispositivos de almacenamiento interno el mismo que es conocido como disco duro, además se encuentran los dispositivos externos, estos dispositivos han tenido una evolución muy rápida pasando desde los disketes hasta los flash memory, por mencionar algunos, los mismos que permiten almacenar una gran cantidad de información.

  • Lenguajes de Programación: Los lenguajes de programación son software que nos ayudan a desarrollar programas específicos para usuarios específicos con necesidades específicas. De esta form podríamos decir que son programas que nos permiten desarrollar nuevos programas.

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
1.4.1 Organización de una computadora Visión general de los procesos que se realizan en un computador y la aplicabilidad de los mimos. Piense en algunos ejemplos donde pueda listar cuales son los datos de entrada, proceso y cuales son las salidas.
1.4.2 Hardware Conceptos relacionados con la parte física del computador (componentes de este). Realice un listado de aquellos dispositivos que Ud. conoce.
1.4.3 Dispositivos de almacenamiento Estudio de las unidades, periféricos de almacenamiento que soportan almacenamiento de datos. En un listado de los dispositivos complete con el espacio o capacidad que cada uno puede almacenar.
1.4.4 Software Estudio de los programas que ayudan a realizar operaciones a través de una lista de instrucciones para utilización de hardware. Realice listado de software clasificándolos por sistemas operativos, programas en general.
1.4.5 Los lenguajes de Programación Conocimiento de lenguajes que sirven para escribir programas parte fundamental de esta materia. Verifique cuales son las necesidades de algunos lenguajes de rogramación para su utilización.
1.4.6 Historia de los Lenguajes Revisión de la evolución de los lenguajes de programación. Liste los lenguajes de Programación de acuerdo a su evolución en el tiempo.


Capitulo 2: EL INICIO EN LA RESOLUCIÓN DE PROBLEMAS CON COMPUTADORA


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 2. Resolución de problemas con computadora y herramientas de Programación.
Páginas 39 – 70
Horas de estudio empleadas para el desarrollo del contenido 10 horas

Propositos:


Esta capítulo nos permitirá introducirnos en la metodología que vamos a utilizar en el desarrollo de esta asignatura para la resolución de problemas utilizando una computadora, nos encontraremos con los pasos que se deben seguir o tomar en cuenta para llegar a dicha resolución de forma óptima, pues como todo proceso, cuenta con fases o pasos o como los queramos llamar, pero hay un orden que se debe seguir, como la gran mayoría de cosas que pasan en nuestro mundo, recordemos además que lo que vamos a realizar para resolver un problema es una necesidad que esta presente en el convivir diario. Si es cierto ahora lo haremos en menor escala serán problemas sencillos, pero si desarrollamos unas costumbres o buenas practicas estas nos servirán en el transcurso de nuestra vida profesional. Además en este capítulo abarcaremos características esenciales de los primeros métodos del desarrollo de aplicaciones y los conceptos de algoritmo, que serán utilizado luego en el desarrollo de cada uno de los capítulos, así como las herramientas que permiten interactuar usuario-máquina, los famosos lenguajes de programación, que son materia también de estudio en otra asignatura de esta carrera.

Conceptos Claves:


  • Análisis del problema : Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Dado que se busca una solución se precisan especificaciones de entrada y salida.

Para poder definir bien un problema es conveniente responder a las siguientes preguntas: ¿Qué entradas se requieren? (cantidad y tipo), ¿Cuál es la salida deseada? (cantidad y tipo), ¿Qué método produce la salida deseada?

  • Implementación del Algoritmo : Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos: Codificación , Compilación y ejecución, Verificación, Depuración, Documentación.

  • Codificación: Es la escritura en un lenguaje de programación de la representación de un algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación utilizado en su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro. Es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos.

  • Compilación y ejecución: Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un editor de texto, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.

El programa fuente debe ser traducido a lenguaje máquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación. Si al compilar el programa fuente se presentan errores (errores de compilación), es necesario volver a editar el programa, corregir los errores y compilar de nuevo. Esto se repite hasta que ya no se presenten más errores, obteniéndose el programa objeto, el cual todavía no es ejecutable directamente. Al ya no existir errores en el programa fuente se debe instruir al sistema operativo para que efectué la fase de montaje o enlace, del programa fuente con las librerías del programa del compilador. Este proceso de montaje produce un programa ejecutable.

  • Algoritmo: La historia de la informática señala a Abu Abdullah Muhammad bin Musa al-Khwarizmi, una de las grandes figuras de la matemática árabe medieval como descubridor del concepto de algoritmo. En su obra “aljabar Wa-al-muqabala” sienta las bases del algebra, cuyo nombre procede del comienzo del título, así como “algoritmo” procede del nombre del autor, al-Khwarizmi.

Podemos definir algoritmo como un conjunto de pasos o instrucciones finito que se deben seguir para realizar una determinada tarea.

Para que dicho conjunto de instrucciones se considere un algoritmo, ha de cumplir algunas características:
- Un mismo conjunto de datos de partida se debe llegar siempre a un mismo conjunto de resultados.
- Las instrucciones han de ser precisas, sin ambigüedad alguna.


- El conjunto ha de ser finito.
  • Diagramas de flujo : |Opciones|Un diagrama de flujo es una representación gráfica de la secuencia de pasos a realizar para producir un cierto resultado, que puede ser un producto material, una información, un servicio o una combinación de los tres. Se utiliza en gran parte de las fases del proceso de Mejora Continua, sobre todo en Definición de proyectos, Diagnóstico, Diseño e Implantación de soluciones, y Mantenimiento de las mejoras. Para elaborar un diagrama de flujo se utilizan diversos símbolos según el tipo de información que contengan:

Imagen:Diagrama.PNG
  • Seudo - código : Un diagrama de flujo es una representación gráfica de la secuencia de pasos a realizar para producir un cierto resultado, que puede ser un producto material, una información, un servicio o una combinación de los tres. Se utiliza en gran parte de las fases del proceso de Mejora Continua, sobretodo en Definición de Proyectos, Diagnóstico, Diseño e Implantación de soluciones, y :Mantenimiento de las mejoras. Para elaborar un diagrama de flujo se utilizan diversos símbolos según el tipo de información que contengan.

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
2.4.1 Fases en la resolución de un problema. Una parte muy importante pues nos dará la visión general de cómo resolver un problema. Aquí se hace un detalle de cada una de las fases necesarias para la resolución de un problema. Cada una de estas fases se describe de una manera detallada por la que se debe realizar un estudio muy eficiente. Obtener un resumen de cada una de las fases y mediante ejercicios defina cada una de estas fases.
2.4.2 Programación Modular y Estructurada. Es el estudio del método de diseño mas flexible y potentes para mejorar la productividad de un programa. Realice un listado de las características de la programación modular y estructurada. Determine ventajas entre estos dos tipos.
2.4.10 Conceptos y Características de Algoritmos. Se revisan los principales conceptos asociados con las herramientas que se utilizan para resolver problemas en las primeras etapas. Realice un listado de las características de los algoritmos así como un resumen de cómo se diseñan los algoritmos.
2.4.11 Escritura de Algoritmos. Son las herramientas que permiten escribir los algoritmos de una forma clara. Revise los símbolos que se utilizan para la representación grafica de algoritmos, esto es mediante los diagramas de flujo.


Capitulo 3: FUNDAMENTOS DE PROGRAMACIÓN


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 3. Estructura General de un Programa.
Páginas 83 - 111
Horas de estudio empleadas para el desarrollo del contenido 6 horas

Propositos:


En este capítulo nos introduciremos al proceso de la resolución de problemas, o sea comenzaremos con la creación de nuestros primeros programas, además de algunas normas que se deben tomar en cuenta al momento de realizar los programas. Pues no por ser nosotros diferente a los demás cada uno debe adoptar su propia forma de hacerlo, esto será perjudicial pues cuando se comience el desarrollo de programas con más envergadura, será más complicado comenzar a adaptarse a estos métodos o practicas.

Conceptos Claves:


  • Programa : Un programa de computadora es un conjunto de instrucciones que producirán la ejecución de una determinada tarea. En esencia, un programa es un medio para llegar a un fin. El fin será normalmente definido como la información necesaria para solucionar un problema. En conclusión programa es el proceso para solucionar un problema.
  • Partes de un programa : El programador debe establecer el conjunto de especificaciones que debe contener el programa:
- Entrada salida y algoritmos de resolución que incluirán las técnicas para obtener las salidas a partir de las entradas.
- Se debe establecer de donde provienen las entradas al programa es decir los dispositivos de entrada teclado, disco.
- La entrada de datos fl operación de lectura de datos o acción de leer.
- Las salidas de datos se deben presentar en dispositivos de salida como impresora, monitor o disco.
- Operación de salida de datos ‡ escritura o acción de escribir.
  • Instrucciones : El procesó de algoritmo o de codificación del programa consiste en definir las acciones o instrucciones que resolverán el problema. Las instrucciones se deben escribir y almacenar en memoria en el mismo orden en el que han de ejecutarse es decir en secuencia.
  • Tipos de instrucciones :
Las acciones básicas que se pueden implementar de manera general en un algoritmo y que esencialmente soportan todos los lenguajes.
- Instrucciones de inicio/fin.
- Instrucciones de asignación.
- Instrucciones de lectura.
- Instrucciones de escritura.
  • Elementos de un programa :
- Palabras reservadas (inicio, fin, si, entonces... etc.).
- Identificadores (nombres de variables esencialmente).
- Caracteres especiales (coma apostrofe, etc.).
- Constantes.
- Variables.
- Expresiones.
- Instrucciones.
  • Datos : Dato: “hecho o valor a partir del cual se puede inferir una conclusión información”. Los datos son aquello que un programa manipula. Sin datos un programa no funcionaría correctamente. Los programas manipulan datos de manera muy diferente según el tipo de dato del que se trate.
  • Tipos de datos: Los lenguajes de alto nivel permiten basarse en abstracción e ignorar los detalles de la representación interna. Aparece el concepto de tipos de datos, así como su representación. Los tipos de datos simples los podemos definir como numéricos, lógicos y carácter. Haremos un detalle de dos de los mas importantes.
  • Enteros : Números enteros desde un valor negativo alto hasta otro valor positivo alto. El valor máximo se conoce como MAXINT y depende de la cantidad de bits utilizados en la computadora para representar un número. En la mayor parte de las computadoras actuales esta cantidad es de 32 bits, lo que implica que MAXINT se acerca a los dos billones.
También podemos utilizar enteros sin signo lo que incluye números positivos y el cero. De esta manera el número máximo alcanzable equivale a dos por MAXINT, o cuatro billones en una computadora de 32 bits.
  • Valores Booleanos - Verdadero y Falso : Como indica el encabezado, este tipo presenta sólo dos valores: verdadero o falso.
Algunos lenguajes manipulan los valores booleanos directamente, mientras que otros usan una convención por medio del cuál un valor numérico (en general 0) representa ‘falso’ y otro (1 o -1) equivale a ‘verdadero’.
En general se conoce a los valores booléanos como “valores de verdad” debido a que son utilizados para comprobar si algo es verdadero o falso. Por ejemplo, si escribimos un programa que realice backups de todos los archivos en un directorio, lo que debemos hacer es copiar un archivo y luego preguntarle al sistema operativo por el nombre del siguiente archivo. Si no hay más archivos responderá con una cadena vacía, entonces podremos comprobar que la cadena está vacía y guardar el resultado como un valor booleano (verdadero si está vacía). Pronto se estudiará como utilizaremos este resultado.
  • Variables : Los datos son almacenados en la memoria de la computadora. Podemos comparar este proceso con las casillas de correo donde se colocan las cartas. Uno podría colocar una carta en cualquier casilla, pero si estas no tienen una etiqueta que las identifique, resultará prácticamente imposible recuperar la carta. Para seguir con la comparación, las variables son las etiquetas de las casillas en la memoria de la computadora.
Ahora ya conocemos qué son los datos, pero ¿qué podemos hacer con ellos? Desde el punto de vista de la programación podemos crear instancias de los datos y asignarlas a variables. Una variable es una referencia a un área específica de la memoria de la computadora donde se guardan los datos. En algunos lenguajes de programación la variable debe coincidir con el tipo de dato al cual apunta.
Una variable es un objeto de datos con un nombre, un tipo y un valor asociado que puede modificarse libremente durante la ejecución de la parte de un programa en la que es visible (ámbito). Una declaración de variables consta de una lista de nombres de las variables que se declaran separadas por comas (“,”), el tipo de las variables y, opcionalmente la asignación de un valor inicial.
  • Constantes : Una constante es un objeto de datos con un nombre, un tipo y un valor asociado que no puede modificarse una vez definido. Una declaración de constantes es igual que una declaración de variables excepto en que se precede al tipo con la palabra constante.
  • Operadores : Un operador es un símbolo formado por uno o más caracteres que permite realizar una determinada operación entre uno o más datos y produce un resultado.
  • Expresiones : Las expresiones son combinación de constantes, variables, símbolos de operación, paréntesis y nombres de funciones.
Una expresión consta de operandos y operadores, según sea el tipo de objetos que manipulan las expresiones puede ser de tipo: aritméticas, lógicas, relacionales y carácter.


Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
3.4.2 Partes constitutivas de un programa. Determinar las partes de un programa.
3.4.3 Instrucciones y tipos de instrucciones. Definir las acciones o instrucciones que resolverán un problema. Obtener un cuadro sinóptico de los tipos de instrucciones que se presentan en el texto básico.
3.4.4 Elementos básicos de un programa. Revisión de los elementos constitutivos de un programa o de un algoritmo. Realice un listado de las fases que intervienen en la ejecución de un programa.
3.4.5 Datos, tipos de datos y operaciones primitivas. Revisión de los tipos de datos que son manejados en el trabajo de un algoritmo. El proceso de resolución de un problema el diseño de los datos utilizar es muy importante. Realice una clasificación de los tipos de datos y los rangos de valores que se puede ocupar en cada uno de ellos.
3.4.6 Constantes y variables. Definición de los conceptos de los elementos primarios en el desarrollo de programas. Determine cuáles son las diferencias entre estos dos elementos y cuáles son las ventajas o desventajas de utilizarlas.
3.4.7 Expresiones. La combinación de constantes y operadores dará paso a la utilización de instrucciones, aquí se tendrán ya la primeras visiones de cómo se pueden ir resolviendo problemas. Realice una clasificación, diferenciación entre las diferentes tipos de expresiones que se utilizan.
3.4.8 Operación de asignación. En este apartado se muestra el modo de almacenar valores en las variables. Realice un listado de las operaciones de asignación que se presentan en el texto básico.
3.4.9 Entrada y salida de información. Esta es una base puesto los procesos no se podrán realizar si no tenemos unos datos de entrada y lo mas importante como los presentamos, este apartado nos muestra como debemos trabajar para lograr este punto.
3.4.10 Escritura de algoritmos/programas. Esta parte presenta una visión completa de las partes que se constan para la escritura de programas. Realice una síntesis de cada apartado que se presenta en este tema.


Capitulo 4 : ESTUDIO DE ALGORITMOS


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 4. Flujo de control I: estructuras Selectivas.

5. Flujo de Control II: Estructuras Repetitivas.

Páginas 131-200
Horas de estudio empleadas para el desarrollo del contenido 20 horas

Propositos:


En este capítulo nos centraremos en las primeras estructuras de control que se utilizan en los programas como son las estructuras de control de flujo, aquellas que nos permiten que de acuerdo a ciertas necesidades se ejecuten un determinado grupo de sentencias. Estas sentencias son conocidas como sentencias de selección, como bien su nombre lo indican nos permiten señalar el camino seleccionando uno u otro de acuerdo a las entradas que se tienen, es decir si la entrada es una el camino a seguir es uno y si la entrada cambia el camino a seguir puede ser también otro, de esta manera comenzaremos a aplicar una lógica de programación que se debe desarrollar en cada uno de nosotros, de este podemos anotar algo “para aprender a desarrollar algoritmos se hace desarrollando algoritmos”, es decir que para desarrollar una buena lógica se tiene que ejercitar mucho. Además en este capítulo se presentan otras sentencias, y aquellas que son muy utilizadas conocidas como sentencias repetitivas. Las mismas que nos permiten desarrollar un mismo proceso un número de veces de manera consecutiva.

Conceptos Claves:


  • Flujo de control : Nos sirven para controlar el orden en el que se ejecutaran las sentencias de un programa. Se refiere a las estructuras permiten que el flujo secuencial de un programa sea modificado en un modo preciso y definido con anterioridad.
  • Estructura Secuencial : La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso

Imagen:Estructura_control.JPG

  • Estructuras de decisión : Son aquellas que nos permiten la decisión entre acciones alternativas, además permiten llevar a cabo una acción si una condición (lógica) tiene un valor.

Imagen:Estructura_desición_simple.JPG
El gráfico presenta una estructura de decisión simple.
Imagen:Estructura_desición_doble.JPG

En este gráfico se muestra una estructura de decisión múltiple.
  • Estructuras de decisión anidadas : Se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1. Mientras que si el resultado de su evaluación es falso se evalúa otra expresión lógica, si el resultado de esta ultima es verdadera se ejecuta la sentencia2, si es falso se evalúa otra expresión y así sucesivamente.

Imagen:Estructuras_de_decisión_anidadas.JPG

  • Estructuras repetitivas : Es la estructura de control que permita la repetición de una serie determinada de sentencias. :Es importante tener en cuenta cuantas veces se repite el bucle y cual es el cuerpo del bucle. El cuerpo del bucle lo constituyen la serie de sentencias que pueden ser de cualquier tipo las cuales serán repetidas n veces, pudiendo ser n conocido o desconocido. Cuando n es desconocido, el número de veces que debe repetirse el cuerpo del bucle estará condicionado por una expresión lógica.

Imagen:Estructura_repetitivas.PNG

  • Bucles infinitos : Los bucles infinitos son aquellas en que por alguna razón la condición no se termina por ninguna razón. Este ocasionara la terminación definitiva del programa sin que se cumpla lo que se desea.
  • Estructuras repetitivas anidadas : Son denominados todos aquellos bucles que estén contenidas dentro de otro bucle. :Cuando se anidan bucles, se debe tener cuidad que el bucle inferior este contenido completamente dentro del bucle exterior. :Todos los tipos de bucles pueden anidarse, sea entre si o entre cada uno.

Imagen:Estructura_repetitivas_anidadas.PNG

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
4.4.1 Flujo de control de un programa En este apartado trataremos al orden en que se ejecutan las sentencias de un programa. Liste conceptos asociados a este apartado.
4.4.2 Estructura secuencial Este apartado trata la ejecución de sentencias para la resolución de un problema en forma secuencial, es decir la una instrucción sigue a la otra, de esta manera nos damos cuenta que una salida pasaría hacer la entrada de la próxima sentencia. Liste cuales son los elementos de los diagramas de flujo que le permitirán realizar el desarrollo de manera secuencia.
4.4.3 estructuras selectivas La primera forma de cambiar el curso de un programa, nos permite tomar una decisión, ya la estructura secuencial no sirve, debemos indicar por donde vamos o queremos que se resuelva un determinado flujo de datos. Presente la diferencia entre las estructuras selectivas que se estudian en el texto base.
4.4.4 alternativa simple -doble Son las sentencias que nos permiten decidir entre alternativas evaluando la parte verdadera en el caso de las simples y la parte verdadera y falsa en el segundo caso. Tomando como ejemplo la figura 4.4 realice un ejemplo donde aplique las sentencias simples y dobles.
4.4.5 alternativa múltiple Esta sentencia nos permite simplificar la utilización de sentencias de alternativa simple cuando vamos a preguntar sobre una misma variable. Este punto es importante la alternativa múltiple pregunta siempre por la misma variable Realice ejercicios donde luego de aplicar sentencias de alternativa simple pueda utilizar sentencias de alternativa múltiple.
4.4.6 Estructuras repetitivas Los ciclos repetitivos nos permiten la ejecución de sentencias un número de veces en base a una condición. Si no existieran los ciclos repetitivos el escribir sentencias secuenciales nos llevaría a programas con un numero de líneas muy extenso, entonces, estos ciclos nos simplifican las tareas. Liste ventajas de utilizar ciclos repetitivos frente a las estructuras secuenciales.
  • 4.4.7 estructura mientras
  • 4.4.8 estructura hacer mientras
  • 4.4.9 estructura repetir
  • 4.4.10 estructura / para
Son las diferentes formas de ciclos repetitivos, unos evaluando la condición al inicio y otros evaluando la condición al final. Estas estructuras facilitan el proceso pues permiten hacer procesos de manera repetitiva claro esta con variaciones en los datos de entrada o de salida, para no tener una misma salida. En un mismo ejercicio cualquiera que utilice ciclos repetitivos, trate de utilizar los diferentes tipos de ciclos, claro esta para esto la condición deberá cambiar así como el valor que inicializa la variable que controla el bloque.


Capitulo 5: PROGRAMACIÓN MODULAR


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 6. Subprogramas (subalgoritmos): Procedimientos y funciones.
Páginas 205 – 238
Horas de estudio empleadas para el desarrollo del contenido 6 horas

Propositos:


Basados en una premisa “divide y vencerás”, comenzaremos el estudio de la programación basada en módulos, conocidos como procedimientos y funciones, en algunos libros de lenguajes de alto nivel solo se los conoce como funciones y cuando hablemos de programación orientada a objetos los conocemos como los métodos. En forma general, la utilización de las funciones o procedimientos nos permite básicamente dos apartados, el primero la división de un programa en partes para una mejor comprensión y facilidad para resolver el problema, y la segunda la reutilización de código utilizando bloques de sentencias que se repiten en un programa, de esta manera un programa que puede tener 200 líneas en forma secuencial se puede reducir a una tercer a cuarta parte de numero de líneas.

Conceptos Claves:


  • Subprogramas : Un gran problema puede resolverse descomponiendo en subprogramas (programas más pequeños), los cuales a su vez pueden sucesivamente seguir fragmentándose en problemas más pequeños, hasta que estos sean solucionados. Este método se denomina diseño descendente, dado que comienza en la parte superior con un problema genera y se van diseñando soluciones especificas para cada uno de los subproblemas en los que ha sido divido el programa general.
Imagen:Subalgoritmo.PNG
  • Procedimientos : Es un subprograma que realiza una tarea particular. Al igual que cualquier programa un procedimiento consta de tres partes, una cabecera, una lista de parámetros, una sección de declaración de variables y la sección ejecutable o cuerpo del procedimiento.
El cuerpo del procedimiento esta constituido por una serie de sentencias a las cuales se le asigna un nombre mediante un identificador en la cabecera de este, constituyendo así el nombre del procedimiento a la tarea asignada al procedimiento se ejecuta siempre que en el programa principal se encuentre el nombre del procedimiento como parte de una instrucción. De este modo se establece entre el programa principal y el subprograma un procedimiento una interacción mediante el cual el subprograma recibe o más valores a través de parámetros del programa que llama y que devuelve o más valores a dicho programa.

Imagen:Procedimiento.PNG

  • Funciones : Es un subprograma que devuelve un único resultado o valor a programa principal o a otro subprograma desde donde fue invocado o llamado. A este tipo de funcionales se les denomina funciones definidas por el usuario.
  • Parámetros : Denominamos parámetros a una variable cuyo valor debe ser o bien proporcionada por el programa principal al procedimiento llamado parámetro de entrada o ser devuelto desde le procedimiento al programa principal un parámetro de salida.
  • Parámetros por valor : Los parámetros por valor son aquellos que luego de ser manipulados dentro de una función o procedimiento su valor no varia, mantiene el valor desde donde fue llamado el subprograma.
  • Parámetros por referencia : Los parámetros por referencia son aquellos que al ser modificados dentro de una función guardaran ese valor y mantendrán esa modificación y continuaran en la ejecución del programa desde donde fue llamado.
  • Variables locales : El concepto de variable local viene asociado a que su utilización será únicamente dentro del subprograma al finalizar el mismo esta variable desaparecerá de la memoria.
  • Variables globales :
Su utilización podrá ser echa en cualquier parte del programa o en su subprograma sin necesidad de realizar nuevamente la declaración en esta.

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
5.4.1 Introducción a los subalgoritmos o subprogramas. En este apartado se hace una introducción a los conceptos de subprogramas así como una visión inicial de cómo son utilizados, para que nos sirven y cuales serán las aplicaciones o aplicabilidad que estos tienen en la solución de problemas. En algunos de los ejercicios que ha resuelto con anterioridad, descompóngalo determinando cuales serán los subprogramas que contiene el ejercicio.
5.4.2 Funciones. Se determina porque un subprograma es denominado función, cuales son las ventajas de su utilización y estudiar la diferencia de realizar funciones frente a los procedimientos. Además aprenderemos como se realiza la llamada o invocación de una función. Descomponga algunos ejercicios en subprogramas y luego seleccione cuales son los llamados a ser funciones.
5.4.3 Procedimientos (subrutinas). Aprenderemos el otro concepto relacionado con los subprogramas los procedimientos los cuales nos ayudan a utilizar un subprograma pero ya sin la necesidad que este retorne un valor sino que realice un proceso y la forma como lo llaman. Descomponga algunos ejercicios en subprogramas y luego seleccione cuales son los llamados a ser procedimientos.
5.4.4 Variables globales y locales. En este apartado veremos la necesidad de trabajar con variables globales que podrán ser utilizadas en cualquier parte del programa o aquellas que son denominadas locales y que son utilizadas son en los subprogramas. De las actividades recomendadas anteriormente realice una selección clasificando cuales podrían actuar como variables globales y cuales como locales.
5.4.5 Comunicación con subprogramas: paso de parámetros. En esta sección es una de las partes mas importantes pues la verdadera utilización de los subprogramas esta en modificar el comportamiento para tener la verdadera aplicabilidad que es la reutilización, esta se la consigue con la utilización de parámetros, en este apartado trataremos los parámetros y sus formas de utilización ya sea por valor o por referencia. De las actividades de los tres primeros apartados selecciones cuales son las variables que actuaran como parámetros dentro del desarrollo de problemas.


Capitulo 6: UNA INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 2. Estructuras de Datos I: (arrays y estructuras).
Páginas 247-269
Horas de estudio empleadas para el desarrollo del contenido 6 horas


Propositos:


Hasta ahora se visto y revisado los conceptos de dato pero de manera simple, que a su vez representan valores de tipo simple, como un numero real o carácter. De aquí podemos decir que la utilización en diferentes situaciones nos lleva a la necesidad de procesar una colección de valores que están relacionados entre si, de alguna forma, como por ejemplo una lista de notas, o asistencias. El procesamiento de tales conjuntos de datos, utilizando datos simples, puede ser extremadamente complicado y por ello en la mayoría de los lenguajes de programación se cuenta con características de estructuras de datos. Las estructuras de datos básicas soportados por la mayoría o casi todos los lenguajes de programación son los arreglos (array su significado en ingles), que involucra el concepto matemático de vector y matriz de datos. Un array entonces es una estructura de datos representado como una secuencia de posiciones de la memoria centra a las que se puede acceder directamente, que contiene datos del mismo tipo y pueden ser seleccionados individualmente mediante el uso de índices.

Conceptos Claves:


  • Estructura de datos : Es una colección de datos organizados de un modo particular.
  • Array : Es una estructura de datos que almacena una colección de datos del mismo tipo. Este es un punto muy importante. :Debemos recordar que los datos serán del mismo tipo. Tienen un único nombre de variable, que representa todos los elementos, los cuáles se diferencian por un índice o subíndice.
  • Vector :Denominase así también a los arreglos de una sola dimensión, son una lista o columna de datos del mismo tipo a los que colectivamente se los refiere a través de un nombre, entre las características que debe cumplir tenemos:
- Compuestos por un número finito de elementos.
- El tamaño del arreglo debe ser conocido en tiempo de compilación o sea su tamaño será fijo.
- Todos los elementos son del mismo tipo.
- Son almacenados en posiciones contiguas de memora, cada uno de los cuales se les puede acceder directamente.
- Cada elemento se puede procesar como si fuese una variable simple ocupando una posición memoria.

Imagen:Vector.PNG

  • Array de varias dimensiones : Son arreglos con dos dimensiones, los cuales deben ser ordinales o de tipo subrango. Al igual que para los arreglos unidimensionales, el nombre del arreglo define el nombre de sus elementos solo que éstos se identifican por sus respectivos subíndices.

Imagen:Arreglos_de_varias_dimensiones.PNG

  • Lectura de arreglos : Por lo general se utilizan estructuras de repetición los mismos que permiten hacer esta tarea:
Para (i=1,i<=3,i=i+1)
A[i] = leer numero desde teclado
Donde A representa el nombre del arreglo.
Para(i=1,i<=3,i=i+1)
Para(j=1,j<=3,j=j+1)
A[I,j] = leer numero desde teclado
  • Escritura de arreglos :
Por lo general se utilizan estructuras de repetición los mismos que permiten hacer esta tarea:
Para (i=1,i<=3,i=i+1)
Presentar A[i]
Donde A representa el nombre del arreglo.
Para(i=1,i<=3,i=i+1)
Para(j=1,j<=3,j=j+1)
Presentar A[I,j]

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
6.4.1 Instrucción a las estructuras de datos. Revisaremos los conceptos de estructuras de datos y una visión de las mismas para pasar al estudio de un tipo de estas estructuras como son los arreglos. Realice un cuadro sinóptico de los tipos de datos.
6.4.2 Array o vectores unidimensionales Este apartado estudiaremos el caso más simple de las estructuras de datos de tipo arreglo los vectores, aquellos que nos permiten almacenar información de manera finita y con elementos homogéneos tratados únicamente en un solo sentido. Determine por lo menos tres de problemas que pudieran resolverse con la utilización de arreglos unidimensionales, explicando las razones.
6.4.3 Array de varias dimensiones. Estudiaremos en este apartado el complemento de los arreglos o arrays ya que cuando se quiere tener un conjunto de datos con más complejidad como las matrices entonces nos involucramos con los arreglos de varias dimensiones. Cual de los casos expuestos en el apartado anterior podrían ser tratados también como arreglos bidimensionales y si no es así busque algunos ejemplos donde puede encontrarlos.
6.4.4 Estructuras versus registros. En este apartado presentan consideración de la utilización de arreglos o la utilización de registros, aquí pasaremos hacer una revisión de estos conceptos. Realice un cuadro donde liste las características de cada tipo y cual seria una desventaja o ventaja frente a los otros tipos estudiados.


Capitulo 7: ESTUDIO DE LA RECURSIVIDAD


Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 2. Recursividad.
Páginas 537 - 567
Horas de estudio empleadas para el desarrollo del contenido 6 horas

Propositos:


El área de la programación es muy amplia y con muchos detalles. Los programadores necesitan ser capaces de resolver todos los problemas que se les presente a través del computador aun cuando en el lenguaje que utilizan no haya una manera directa de resolver los problemas. En el lenguaje de programación C, así como en otros lenguajes de programación, se puede aplicar una técnica que se le dio el nombre de recursividad por su funcionalidad. Esta técnica es utilizada en la programación estructurada para resolver problemas que tengan que ver con el factorial de un número, o juegos de lógica. Las asignaciones de memoria pueden ser dinámicas o estáticas y hay diferencias entre estas dos y se pueden aplicar las dos en un programa cualquiera.

Conceptos Claves:


  • Recursividad : Presentamos algunos conceptos de recursividad:
- La recursividad simplemente significa aplicar una función como parte de la definición de esa misma función.
- Una función que se llama a si misma.
- La recursividad es una técnica de programación importante. Se utiliza para realizar una llamada a una función desde la misma función.
Se puede decir que la recursividad es una técnica de programación bastante útil y muy interesante de estudiar. A través de los ejemplos que el individuo pueda revisar, aprenderá con más rapidez y sencillez lo que es programar recursivamente e incluir esta técnica cuando se le presente un problema como los que fueron mencionados anteriormente.
La asignación de memoria, sea estática o dinámica, en realidad se tendrá que aplicar en cualquier programa al momento de su codificación; tomando en cuenta que cada programador tiene su estilo de programar. El ejemplo de las torres de Hanoi tanto como el ejemplo de las ocho reinas son problemas claves que tienen que ver directamente con lo que es la recursividad.
  • Recursividad directa : La recursividad directa se da cuando una función llama a la misma función.
  • Recursividad indirecta : La recursividad indirecta se presenta cuando desde una función se llama a otra función y la segunda función llama a la primera función.
  • Recursividad infinita : La clave de funcionamiento es que obligatoriamente debe existir una condición terminal con el objeto de que la función se bifurque hacia una resolución no recursiva en algún punto. De lo contrario, la función entra en un bucle infinito y nunca finaliza.

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
7.4.1 La naturaleza de la recursividad. Este apartado da una visión clara del concepto de recursividad, su utilización, su funcionalidad y en que casos es lo que se la debe utilizar. Selecciones de los ejercicios que ha resuelto cual de ellos podrían de forma más sencilla utilizando recursividad.
7.4.2 Recursividad Directa e Indirecta. Ampliaremos un poco mas los conceptos de recursion, principalmente los tipos de recursion y como estos trabajan y se aplican en el desarrollo de problemas.
7.4.3 Recursion versus iteración. Este apartado hace un análisis de comparación sobre la utilización de programación bajo interacción contra la recursividad para determinar características que ayuden a esclarecer los conceptos tratados en este capítulo. Obtenga un listado de palabras claves y los conceptos que ha comprendido de las mismas. Obtenga un listado de palabras claves y los conceptos que ha comprendido de las mismas.
7.4.4 Recursion infinita. Este apartado hace referencia a que es lo que no se tiene que hacer para llegar ha realizar una recursion infinita la misma que producirá talvez una sobre carga del procesador llegando a lo que comúnmente se dice “trabar la maquina”. Liste cuáles son los pasos que llevan a una recursion infinita y que se debería hacer para que eso no ocurra.
7.4.5 Resolución de problemas complejos con recursividad. Este apartado presenta algunos caso complejos resuelto con recursividad, presenta una descripción completa de cómo llegar a la solución, esto ampliara mucho mas los conceptos de como se aplica la recursividad. Realice la prueba manual de los algoritmos presentados en el apartado para llegar a dar la solución a los problemas.


Capitulo 8: PROGRAMACIÓN ORIENTADA A OBJETOS,INTRODUCCIÓN

Datos Generales:

Texto Base Fundamentos de Programación, Algoritmos, estructuras de datos y objetos, Luís Joyanes Aguilar, Mc-Graw Hill, Tercera edición, Editorial Concepción Fernández Madrid, 2003.
Capítulo 2. Conceptos fundamentales de orientación a objetos.
Páginas 575 – 608
Horas de estudio empleadas para el desarrollo del contenido 6 horas

Propositos:

Como ya es de conocimiento la orientación a objetos es el cambio que en la actualidad se esta aplicando, así la orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo de esta manera dar solución a problemas existentes en el inicio desarrollo de software, tales como: código difícil de modificar, falta de portabilidad del código y reusabilidad. Un lenguaje orientado a objetos debe atacar estos problemas, estos lenguajes deben poseer características esenciales como las que anotamos: basado en objetos, basado en clases y capaz de tener herencia de clases. La orientación a objetos actualmente esta tomando un auge muy importante en todo el ámbito del mundo de software. Así podemos descubrir algunas ventajas en la generación de programas fomentando la metodología que utiliza componentes en el desarrollo de software, de esta forma primeramente generaremos sistemas mediante un conjunto de objetos, luego se le podrá agregar funcionalidades a los componentes del mismo o agregándole nuevos, finalmente podrá volverse a utilizar cada uno de estos cuando se genera un sistema nuevo, con el cual se reduce ampliamente el tiempo de desarrollo del sistema.

Conceptos Claves:


  • Abstracción : Se refiere al proceso de quitar aquellas propiedades y acciones irrelevantes en un momento dado de un objeto dejando solo aquellas que sean necesarias para el propósito que uno busca alcanzar con ese objeto.
Así, sabemos que diferentes tipos de problemas necesitarán distintas cantidades de información, aunque algunos de ellos pertenezcan a una misma área.
  • Objetos : (objectus: latín ob= hacia y jacere = arrojar) Todo lo que se pueda arrojar, constituyen las entidades esenciales dentro de la metodología orientada a objetos.
La existencias de un objeto dependerá siempre del contexto del problema, donde lo que puede ser un objeto apropiado en una aplicación puede no serlo en otra. Los objetos deben ser entidades que existan en forma independiente aunque haya relaciones entre ellos.
Debemos anotar también que el nombre que se utilice para nombrar a un objeto debe ser razonable para no llegar a crear objetos que no tengan identidad coherente y además deben salir del dominio del problema.
  • Métodos : Los que se define como las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.
  • Clases : Las clases no so más que una plantilla que nos sirve para hacer objetos. Esto es que cuando creemos un objeto a partir de una clase, este objeto tendrá los mismos atributos y métodos que posee la clase.
  • Atributos : Distinguen un objeto determinado de los restantes dentro de la misma organización y tienen valores que dependen de la propiedad de que se trate. Las propiedades de un objeto podrán ser heredadas de sus descendientes dentro de la organización.
  • Herencia : La clase es una categoría de objetos. Un objetos es una instancia de una clase, de esta declaración podemos tener en cuanta algo muy importante como instancia de la clase el objeto hereda todas las características de la clase de la que fue creada. Esto es un caso claro de herencia, sin importar si se utilicen todos los atributos o todas sus acciones.
Así también una clase puede heredar de otra clase sus atributos y operaciones, añadiendo si es necesario algunas otras, o a
  • Polimorfismo : Una de las características fundamentales de la OOP es el polimorfismo, que no es otra cosa que la posibilidad de construir varios métodos con el mismo nombre, pero con relación a la clase a la que pertenece cada uno, con comportamientos diferentes. :Esto conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes. Estos objetos recibirían el mismo mensaje global pero responderían a él de formas diferentes; por ejemplo, un mensaje “+” a un objeto ENTERO significaría suma, mientras que para un objeto CADENA significaría concatenación (“pegar” strings uno seguido al otro)

Esquema de Estudio:


A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que estima que necesita tutoría y realizar anotaciones.

Tema a revisar Descripción del Contenido a revisar Actividades Recomendadas Planificación Personal del estudio (fecha) ¿Requiero Tutorial?
8.4.1 ¿Qué es la programación orientada a objetos? Este apartado nos presenta una visión acerca del surgimiento de la programación orientada a objetos. Liste las palabras claves y trate de darle una breve descripción a cada una de estas.
8.4.2 El objeto. Nos centra en el elemento principal de esta nueva metodología de programación, para involucrarnos con este concepto. Obtenga una lista de objetos que puede ir relacionando con los ejemplos presentados en el libro.
8.4.3 Métodos y clases. Trataremos en este apartado otros dos elementos que están involucrados en la POO y que son fundamentales. Exprese la relación que existe entre estos dos elementos estudiados y el objeto.
8.4.4 El mundo de los objetos. Nos centraremos en el estudio a más profundidad acerca de los objetos, ya que es una ventaja de reflejar los sucesos del mundo real mediante los tipos abstractos como son los objetos. Realice una cuadro donde vaya ubicando conceptos y palabras claves relacionados con esos conceptos.
8.4.5 Comunicación entre objetos: mensajes. Nos permitirá estudian un nuevo concepto esencial en la POO, ya que el mensaje es una orden que se envía a un objeto para indicarle que realice alguna operación.
8.4.6 Clases. Estudiaremos este concepto como mucho más profundidad que lo realizado en un apartado anterior para reafirmar este concepto pues es esencial en la POO.
  • 8.4.7 Herencia.
  • 8.4.8 Sobrecarga.
  • 8.4.9 Polimorfismo.
Estos conceptos están relacionados directamente con la POO ya que son parte fundamental en estos temas. Su estudio nos ayudara a la verdadera valoración y utilidad de la orientación a objetos ya que estos conceptos están ligados directamente.
Herramientas personales
Sitios UTPL