Download descarga cuadernillo de programacion
Document related concepts
Transcript
I.S.F.D. y T. N° 93 ( Instituto Superior de Formación Docente y Técnica N° 93 ) San Vicente Cuadernillo de contenidos teóricos y prácticos del curso de nivelación de la carrera de Sistemas. “Formación Específica” Preparado por: Prof. Ing. Leandro A. Pini Prof. Lic. Rodrigo Toledo Objetivo principal de la carrera La Tecnicatura en programación tiene como objetivo principal formar técnicos competentes en el área profesional, con sólidos conocimientos específicos, atentos a los cambios y transformaciones propios de nuestras tareas cotidianas y comprometidos con la realidad sociocultural de nuestro país, con un perfil abierto a las necesidades de los otros en el mundo que nos toca transitar. Nos preocupa una formación integral e integrada que se cristaliza a partir de dos ejes vertebradores: La formación Técnica que involucra la preparación en la actividad del profesional a través del abordaje de la práctica frecuente que conforman el quehacer personal; La formación en Lenguajes de programación a partir de lo cual se busca insertar al alumno en el mundo laboral, incrementado desde la institución el permanente contacto con el sector laboral industrial zonal. En nuestro instituto, se planea un egresado con visión de futuro, con compromiso consigo mismo, con la sociedad y con la profesión, de modo tal que cada tarea que desarrolla se hace con el absoluto compromiso y con todas las herramientas de mercadeo actual. Cronograma del curso El curso de formación específica está divido en cuatro clases (cuatro días) de dos horas cada una y en las siguientes fechas: 1° Clase: Jueves 13/03/2014 Tema: Presentación de Profesores a Cargo del Curso, Alcance del título que se aspira a obtener y conocimientos que el alumno adquirirá durante el transcurso de sus años de estudio. 2° Clase: Jueves 20/03/2014 Tema: “Estructura de la PC” y “Lenguajes de Programación” 3° Clase: Jueves 27/03/2014 Tema: Metodología de trabajo en grupo/equipo. Contenidos: 1- Alcance del Título y Conocimientos adquiridos El Técnico Superior en Análisis, Desarrollo y Programación de Aplicaciones, será un profesional con amplio dominio de diversas tecnologías, capacitado para transferir avances de las ciencias informáticas en el desarrollo de ámbitos virtuales de solución a problemas reales, aplicando metodologías de administración de ciclos de vida de los sistemas de información, herramientas y procedimientos bajo la aplicación de normas legales, técnicas y éticas. Además de ello, como futuros profesionales y en cualquier ámbito laboral, sabemos que en algún momento de nuestra carrera se genera la necesidad de contar con la capacidad de poder expresar, compartir y difundir el conocimiento ya sea colaborando con la formación de otros profesionales o simplemente para presentar un problema y/o una solución al mismo ante un grupo de gente. El título obtenido ya permite una pronta inserción en el mercado laboral actual, de todos modos esta abalado para ser conexión con otras carreras de grado, como por ejemplo: Licenciatura en Sistemas de Información /Sistemas: se relacionan con los métodos y procedimientos de construcción ingenieril para el armado de los sistemas de información. En este caso, la actividad informática se vincula fuertemente con la gestión empresaria. Esta carrera es más próxima al título Técnico Superior en Análisis, Desarrollo y Programación de Aplicaciones. Ingeniería en Sistemas de Información /Sistemas: Luego de obtener la licenciatura en Informática / Sistemas, se obtiene el título de Ingeniero. Desde esta mirado provee una visión más gerencial y de gestión hacia las organizaciones. Licenciaturas en Ciencias de la Computación: se inclinan fuertemente por la algoritmia y los fundamentos matemáticos, para trabajar sobre los temas de investigación en la generación de recursos para el software. Ingeniería en Computación: están vinculadas al hardware de la computadora, orientadas al conocimiento físico y manipulación intrínseca del hard, y también a la generación de software embebido. La carrera de la Universidad Nacional de Tucumán es una de las más reconocidas en este aspecto Licenciatura en Informática: El egresado/Licenciado en Informática está capacitado para: - Desarrollar programas en lenguajes de alto nivel. Diseñar, adaptar y administrar redes de computadoras. Diseñar bases de datos. Diseñar lenguajes orientados a problemas específicos. - Analizar, diseñar, implementar y evaluar sistemas de información. Analizar, diseñar implementar, optimizar, mantener y auditar software de aplicación. Analizar, evaluar, seleccionar y adaptar software de base, como soporte computacional al hardware de aplicación. Ingeniería en Informática: El Ingeniero en Informática tiene capacidad para desenvolverse en un ambiente altamente competitivo, multicultural, inter-funcional y globalizado, con competencia para buscar soluciones a los problemas reales, a través de la modelización de entornos virtuales, aplicando sus conocimientos en las áreas del Hardware, Software, Análisis de Sistemas e Ingeniería del Software, Telecomunicaciones y management. Puede realizar actividades de concepción, diseño creativo, desarrollo e implementación de sistemas complejos que cubran las áreas ya mencionadas. Está capacitado para desarrollar tareas de investigación originales relacionadas con nuevos productos o nuevos diseños de sistemas, así como también tareas de campo. ¿Como se encuentra el mercado TI en Argentina? Sigilosamente. Paso a paso. La reconfiguración del país está involucrando al mercado tecnológico, en el cual se perciben relevantes índices de recuperación y crecimiento. Argentina consolida nuevamente su posición como tercera potencia IT en América Latina, siendo superada por Brasil y México, respectivamente. Por su parte, los recursos IT significativos del país han crecido fuertemente durante la década 2000-2010. Asimismo, podemos observar diferentes tendencias claves que marcan la realidad de la industria tecnológica local en estos días: - El tamaño del Mercado IT de Argentina se ha cuadruplicado desde su crisis financiera y económica en 2001 y 2002 en cada una de sus métricas significativas (ingresos y empleo). - A pesar de la contracción y las inminentes preocupaciones económicas, es esperable que Argentina esté preparándose para un crecimiento a largo plazo. - La demanda IT en 2010 va a continuar condicionada por la economía global, sumada al escenario político sobre cambios tributarios, lo cual impactará en varios segmentos del mercado IT. - Es esperable que el gasto IT de los usuarios finales en Argentina en 2013 alcancen alrededor del 9% del producto bruto interno real, uno de los más altos en mercados emergentes. - En lo que se refiere a servicios IT, los proveedores globales deberían considerar a Argentina como una posible alternativa para centros de envío, dado su amplio espectro de proyección en términos de potencial y mano de obra. - El mercado de software argentino es el tercero más importante de la región latinoamericana y se estima que continuará creciendo. - Argentina tiene una pequeña base de manufactura de hardware IT y potencial limitado de crecimiento. Sin embargo, el país cuenta con un amplio espectro de profesionales capacitados para ofrecer soporte a esta industria con una adecuada fuerza de trabajo para impulsar oportunidades en los sectores de software y servidores. Considerando estos puntos, es importante establecer ciertos objetivos: - Desarrollar estrategias para el incremento del sector de la exportación de servidores, impulsando un grupo de trabajo de alto nivel y costos competitivos. - Comprender el ritmo y los ciclos de negocio en el país. La cultura de negocios de Argentina ha tomado forma por ciclos de gran prosperidad y grandes desafíos. Las estrategias de negocio tendrían que considerar cómo la inversión y el desarrollo encajan con estas experiencias históricas. - El soporte de infraestructura de Argentina es generalmente bien desarrollado pero tiene cobertura inequitativa. Uno de los grandes retos de la industria IT será acoplarse al interés que se percibe entre los inversores respecto a la situación financiera y económica del país. Algunos especialistas estiman un crecimiento del 7% de la economía local, mientras que los más optimistas vaticinan que llegará al 10%. En este contexto, el mercado tecnológico tiene la oportunidad de seguir transitando su silencioso camino, vislumbrando un futuro mejor. Fuente: CXO Community. Tipos de trabajos informáticos Si bien el mercado laboral informático y tecnológico es extremadamente grande, podemos resumirlo de la siguiente manera: Puestos de trabajo de Informática se divide en tres grandes categorías: la investigación, los procesos de análisis y diseño del sistema o la arquitectura Las personas con puestos de trabajo suelen trabajar en la informática sea una clase, una oficina, o incluso de ojotas en sus propias casas. La conectividad permite el trabajo insite como si estuviese allí. Este trabajo se utiliza como base para los diseños de sistemas informáticos, interfaces de usuario y procesos automatizados. Con el fin de calificar para los trabajos de informática, la educación post-secundaria en los sistemas de información, la informática o los estudios de la información es necesaria. Estos programas están disponibles a nivel de postgrado, con la finalización de un título universitario reconocido un requisito previo para la admisión. Los estudiantes potenciales que necesitará de investigación a fin de identificar las escuelas que ofrecen cualquiera de estos programas, porque las escuelas son tan pequeñas en número. Análisis de procesos es un término genérico utilizado para describir la evaluación de procesos de negocio, la reingeniería y la revisión de procedimiento. Un proceso es el conjunto de medidas individuales o tareas que deben completarse en un orden específico para alcanzar un objetivo o meta. Análisis del proceso implica un examen detallado del proceso actual, la evaluación de la eficiencia y la eficacia y la identificación de cuellos de botella. Este tipo de análisis puede ser utilizado para los procesos que son totalmente automatizadas y los que requieren la intervención humana. Informática puestos de trabajo relacionados con el diseño del sistema son independientes de las tareas y responsabilidades de un diseñador de sistemas informáticos. Este tipo de empleo de la informática se centra en las teorías y los conceptos utilizados como bloques de construcción en el nivel de desarrollo de sistemas industriales y procesos de la arquitectura. A través de la labor de la informática profesional, estos procesos estándar se cambian para dar cabida a más escenarios y agilizar el proceso en general. La investigación es un objetivo primordial para muchos puestos de trabajo de informática. Este tipo de trabajo puede dividirse en dos categorías: los sistemas y los seres humanos. Sistemas de investigación implica el examen de nuevas metodologías e investigación de los desafíos en el desarrollo del sistema. El impacto de la evolución tecnológica en la interacción social y el comportamiento humano es un creciente campo de la informática, y es uno que tiene un enorme impacto en el lugar de trabajo y diseño de sistemas. 2- Estructura de la PC La computadora le sirve al hombre como una valiosa herramienta para realizar y simplificar muchas de sus actividades. En sí es un dispositivo electrónico capaz de interpretar y ejecutar los comandos programados para realizar en forma general las funciones de: Operaciones de entrada al ser receptora de información. Operaciones de cálculo, lógica y almacenamiento. En la actualidad las computadoras tienen aplicaciones más prácticas, porque sirve no solamente para Computar y calcular, sino para realizar múltiples procesos sobre los datos proporcionados, tales como clasificar u ordenar, seleccionar, corregir y automatizar, entre otros, por estos motivos en Europa su nombre que más común es el de ordenador. Operaciones de salida al proporcionar resultados de las operaciones antecedentes. Partes principales de una computadora: Hardware: Se llama hardware a todos los dispositivos que forman la PC y que se puedan tocar, es decir, el hardware es todo el conjunto de accesorios que se le pueden agregar a una PC: desde las tarjetas que la componen hasta el teclado desde el que ingresamos los datos y el monitor en donde visualizamos la información. Software: Se llama software a todos los programas (conjunto de instrucciones) que se ejecuten en la PC, es decir, cualquier programa de cualquier tipo (desde un juego, hasta un sistema de control de stock y facturación y sistemas de administración de redes). Dentro del software se ubican los sistemas operativos. Dentro del grupo Hardware nos encontramos con el cerebro de la computadora que está divido en las siguientes partes: Unidad Central de Procesos (UCP) Es la parte más importante de la computadora, en ella se realizan todos los procesos de la información. La UCP está estructurada por un circuito integrado llamado microprocesador, el cual varía en las diferentes marcas de computadoras. La UCP se divide en dos unidades: Unidad Aritmético Lógica (UAL).- Es la parte del computador encargada de realizar las: operaciones aritméticas y lógicas, así como comparaciones entre datos. Unidad de Control (UC).- Se le denomina también la parte inteligente del microprocesador, se encarga de distribuir cada uno de los procesos al área correspondiente para su transformación. Los dispositivos entrada y salida de datos: Dispositivos de entrada (DE) Los dispositivos de entrada son aquellos al través de los cuales se mandan datos a la unidad central de procesos, por lo que su función es eminentemente emisora. Algunos de los dispositivos de entrada más conocidos son el teclado, el manejador de discos magnéticos, la reproductora de cinta magnética, el ratón, el digitalizador (scanner), el lector óptico de código de barras y el lápiz óptico entre otros. <="" a=Dispositivos de salida (DS) Los dispositivos de salida son aquellos que reciben información de la computadora, su función es eminentemente receptora y por ende están imposibilitados para enviar información. Entre los dispositivos de salida más conocidos están: la impresora (matriz, cadena, margarita, láser o de chorro de tinta), el delineador (plotter), la grabadora de cinta magnética o de discos magnéticos y la pantalla o monitor. Los tipos de memoria de una computadora: Memoria RAM: Contiene los datos o información obtenidos del disco duro aunque quedan almacenados de forma temporal. Es una memoria de lectura y escritura y el acceso a los datos es mucho más rápido que en el disco duro. No retiene la información sin electricidad. Memoria CACHE: Es mucho más rápida que la RAM. Es capaz de trabajar a la velocidad del Microprocesador. Se encuentra entre la RAM y el Microprocesador. Almacena los datos que el Microprocesador utiliza con más frecuencia. Memoria CMOS RAM: Almacena la hora, la fecha y los datos básicos de configuración de la PC. La pila que la mantiene alimentada cuando la PC está apagada evita que estos datos se pierdan. Memoria ROM BIOS: Contiene una serie de instrucciones almacenadas de forma permanente. Hace una comprobación al iniciar la PC. Si todo está bien, la BIOS carga el sistema operativo del disco duro a la memoria principal. Dentro del grupo Software podemos diferenciar tres grupos: Sistemas Operativos Es aquel que controla y administra el computador, tiene dos grandes funciones: - Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse. - Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas, y gestiona los errores de hardware y la pérdida de datos. Entre las funciones del Sistema Operativo se tiene: - Aceptar todos los trabajos y conservarlos hasta su finalización. - Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador. - Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse. Software de uso general El software de uso general son aquellos que permiten resolver problemas muy variados del mismo tipo, de muy diferentes empresas o personas, con adaptaciones realizadas por un usuario, ejemplos: procesadores de texto, manejadores de bases de datos, hojas de cálculo, etc. El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario (manual de referencia, plantillas de teclado, etc. Lenguajes de Programación Constituyen el software empleado par a desarrollar sistemas operativos, o las aplicaciones de carácter general, mediante los programas se indica a la computadora que tarea debe realizar y cómo efectuarla, pero para ello es preciso introducir estas órdenes en un lenguaje que el sistema pueda entender. Clasificaciones de los lenguajes de programación: 1. Nivel de abstracción. Según el nivel de abstracción, o sea, según el grado de cercanía a la máquina: Lenguajes de bajo nivel: La programación se realiza teniendo muy en cuenta las características del procesador. Ejemplo: Lenguajes ensamblador. Lenguajes de nivel medio: Permiten un mayor grado de abstracción pero al mismo tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. Ejemplo: C puede realizar operaciones lógicas y de desplazamiento con bits, tratar todos los tipos de datos como lo que son en realidad a bajo nivel (números), etc. Lenguajes de alto nivel: Más parecidos al lenguaje humano. Manejan conceptos, tipos de datos, etc., de una manera cercana al pensamiento humano ignorando (abstrayéndose) del funcionamiento de la máquina. Ejemplos: Java, Ruby. Hay quien sólo considera lenguajes de bajo nivel y de alto nivel, (en ese caso, C es considerado de alto nivel). 2. Propósito. Según el propósito, es decir, el tipo de problemas a tratar con ellos: Lenguajes de propósito general: Aptos para todo tipo de tareas: Ejemplo: C. Lenguajes de propósito específico: Hechos para un objetivo muy concreto. Ejemplo: Csound (para crear ficheros de audio). Lenguajes de programación de sistemas: Diseñados para realizar sistemas operativos o drivers. Ejemplo: C. Lenguajes de script: Para realizar tareas varias de control y auxiliares. Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL (“Job Control Languages”). Se subdividen en varias clases (de shell, de GUI, de programación web, etc.). Ejemplos: bash (shell), mIRC script, JavaScript (programación web). 3. Evolución histórica. Con el paso del tiempo, se va incrementando el nivel de abstracción, pero en la práctica, los de una generación no terminan de sustituir a los de la anterior: Lenguajes de primera generación (1GL): Código máquina. Lenguajes de segunda generación (2GL): Lenguajes ensamblador. Lenguajes de tercera generación (3GL): La mayoría de los lenguajes modernos, diseñados para facilitar la programación a los humanos. Ejemplos: C, Java. Lenguajes de cuarta generación (4GL): Diseñados con un propósito concreto, o sea, para abordar un tipo concreto de problemas. Ejemplos: NATURAL, Mathematica. Lenguajes de quinta generación (5GL): La intención es que el programador establezca el qué problema ha de ser resuelto y las condiciones a reunir, y la máquina lo resuelve. Se usan en inteligencia artificial. Ejemplo: Prolog. 4. Manera de ejecutarse. Según la manera de ejecutarse: Lenguajes compilados: Un programa traductor traduce el código del programa (código fuente) en código máquina (código objeto). Otro programa, el enlazador, unirá los ficheros de código objeto del programa principal con los de las librerías para producir el programa ejecutable. Ejemplo: C. Lenguajes interpretados: Un programa (intérprete), ejecuta las instrucciones del programa de manera directa. Ejemplo: Lisp. También los hay mixtos, como Java, que primero pasan por una fase de compilación en la que el código fuente se transforma en “bytecode”, y este “bytecode” puede ser ejecutado luego (interpretado) en ordenadores con distintas arquitecturas (procesadores) que tengan todos instalados la misma “máquina virtual” Java. 5. Manera de abordar la tarea a realizar. Según la manera de abordar la tarea a realizar, pueden ser: Lenguajes imperativos: Indican cómo hay que hacer la tarea, es decir, expresan los pasos a realizar. Ejemplo: C. Lenguajes declarativos: Indican qué hay que hacer. Ejemplos: Lisp, Prolog. Otros ejemplos de lenguajes declarativos, pero que no son lenguajes de programación, son HTML (para describir páginas web) o SQL (para consultar bases de datos). 6. Paradigma de programación. El paradigma de programación es el estilo de programación empleado. Algunos lenguajes soportan varios paradigmas, y otros sólo uno. Se puede decir que históricamente han ido apareciendo para facilitar la tarea de programar según el tipo de problema a abordar, o para facilitar el mantenimiento del software, o por otra cuestión similar, por lo que todos corresponden a lenguajes de alto nivel (o nivel medio), estando los lenguajes ensambladores “atados” a la arquitectura de su procesador correspondiente. Los principales son: Lenguajes de programación procedural: Divide el problema en partes más pequeñas, que serán realizadas por subprogramas (subrutinas, funciones, procedimientos), que se llaman unas a otras para ser ejecutadas. Ejemplos: C, Pascal. Lenguajes de programación orientada a objetos: Crean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se comunican con otros objetos. Ejemplos: C++, Java. Lenguajes de programación funcional: La tarea se realiza evaluando funciones, (como en Matemáticas), de manera recursiva. Ejemplo: Lisp. Lenguajes de programación lógica: La tarea a realizar se expresa empleando lógica formal matemática. Expresa qué computar. Ejemplo: Prolog. Hay muchos paradigmas de programación: Programación genérica, programación reflexiva, programación orientada a procesos, etc. 7. Lugar de ejecución. En sistemas distribuidos, según dónde se ejecute: Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP es el más utilizado en servidores web. Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en navegadores web. 8. Concurrencia. Según admitan o no concurrencia de procesos, esto es, la ejecución simultánea de varios procesos lanzados por el programa: Lenguajes concurrentes. Ejemplo: Ada. Lenguajes no concurrentes. Ejemplo: C. 9. Interactividad. Según la interactividad del programa con el usuario u otros programas: Lenguajes orientados a sucesos: El flujo del programa es controlado por la interacción con el usuario o por mensajes de otros programas/sistema operativo, como editores de texto, interfaces gráficos de usuario (GUI) o kernels. Ejemplo: VisualBasic, lenguajes de programación declarativos. Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo más claro (actualizaciones de bases de datos, colas de impresión de documentos, etc.). Ejemplos: Lenguajes de programación imperativos. 10. Realización visual. Según la realización visual o no del programa: Lenguajes de programación visual: El programa se realiza moviendo bloques de construcción de programas (objetos visuales) en un interfaz adecuado para ello. No confundir con entornos de programación visual, como Microsoft Visual Studio y sus lenguajes de programación textuales (como Visual C#). Ejemplo: Mindscript. Lenguajes de programación textual: El código del programa se realiza escribiéndolo. Ejemplos: C, Java, Lisp. 11. Determinismo. Según se pueda predecir o no el siguiente estado del programa a partir del estado actual: Lenguajes deterministas. Ejemplos: Todos los anteriores. Lenguajes probabilísticos o no deterministas: Sirven para explorar grandes espacios de búsqueda, (como gramáticas), y en la investigación teórica de hipercomputación. Ejemplo: mutt (generador de texto aleatorio). 12. Productividad. Según se caractericen por tener virtudes útiles o productivas, u oscuras y enrevesadas: Lenguajes útiles o productivos: Sus virtudes en cuanto a eficiencia, sencillez, claridad, productividad, etc., motiva que sean utilizados en empresas, administraciones públicas y/o en la enseñanza. Ejemplos: Cualquier lenguaje de uso habitual (C, Java, C++, Lisp, Python, Ruby, …). Lenguajes esotéricos o exóticos: Inventados con la intención de ser los más raros, oscuros, difíciles, simples y/o retorcidos de los lenguajes, para diversión y entretenimiento de frikis programadores. A veces exploran nuevas ideas en programación. Ejemplo: Brainfuck. 12. Orientación. Lenguajes Orientas a Objetos: Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos. Ej: Visual C# Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos. Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos. Siguiendo esa idea, cualquier lenguaje que permita la definición de tipos de datos, de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría ser considerado orientado a objetos. Lenguajes orientados a eventos: Los lenguajes visuales orientados al evento y con manejo de componentes dan al usuario que no cuenta con mucha experiencia en desarrollo, la posibilidad de construir sus propias aplicaciones utilizando interfaces gráficas sobre la base de ocurrencia de eventos. Ej: Visual Basic Para soportar este tipo de desarrollo interactúan dos tipos de herramientas, una que permite realizar diseños gráficos y , un lenguaje de alto nivel que permite codificar los eventos. Con dichas herramientas es posible desarrollar cualquier tipo de aplicaciones basadas en el entorno. 3- Metodología de trabajo en grupo/equipo Formar grupos de trabajo es una tarea difícil si no se aplica una metodología apropiada para ello. La metodología de desarrollo grupal permite que los alumnos o las personas que forman un grupo o un equipo tengan una mayor eficacia en las tareas a realizar y su capacidad de aprendizaje sea más elevado. Esto es así, porque el grupo aprende de su propia experiencia, analizando el trabajo realizado y buscando aquellos aspectos que dan una continuidad a su trabajo y permiten mejorarlo de forma continua. Para aplicar la metodología de desarrollo grupal hay que tener en cuenta varios aspectos como: cuales son los objetivos a conseguir, cuál es el método más apropiado para ponerlo en práctica, definir los roles dentro del grupo, etc. Aprender la metodología a través de la propia experiencia. La formación de grupos de trabajo parte de la propia experiencia, recorriendo, para ello, una ruta de aprendizaje de la metodología de desarrollo grupal que permita detectar y llevar a la práctica las actitudes, los valores, las habilidades, los roles, los métodos, las técnicas y las características más apropiadas para su implementación. Crear espacios de comunicación idóneas para el análisis de los conocimientos adquiridos, que permita plantear sus posibles aplicaciones e intercambiar los aprendizajes, es decir, estableciendo una correspondencia entre la teoría y la experiencia como un proceso de aprendizaje y mejora continua. Compartir las experiencias individuales y grupales de la metodología, a través de un feedback en el grupo de discusión sobre: ¿Cómo estamos haciendo las cosas? ¿Cómo hemos trabajado con la metodología? ¿Qué hemos aprendido? ¿Qué utilidad tiene? ¿Cómo hemos visto las cosas? ¿Qué podemos mejorar? Reglas de comportamiento en equipo Respetar a los integrantes del equipo, sus ideas y opiniones. Trabajar de forma colaborativa aportando ideas y realizando investigaciones para lograr un trabajo de calidad. Mostrar interés por trabajo realizado, su calidad y mejora del mismo. Editar el trabajo en equipo para detectar los errores o posibles puntos de mejora. Trabajar de manera justa y equitativa, de modo que todos los integrantes trabajen de igual manera y no cargándole el trabajo a algunos miembros del equipo. Ser responsable con los roles a desempeñar y tareas asignadas. Participar activamente durante las reuniones de trabajo para unificar ideas, conocimientos y aportaciones para realizar un trabajo grupal y no un conjunto de ideas individuales. Que se debe identificar Capacidades de cada integrante del equipo o grupo de trabajo. Factores que resultan favorables frente a la competencia. Factores que provocan una posición desfavorable frente a la competencia. Situaciones que provienen del entorno que pueden afectar al grupo de trabajo.