Download fundación universitaria luis amigó
Document related concepts
Transcript
FUNDACIÓN UNIVERSITARIA LUIS AMIGÓ Facultad de Ingenierías PROGRAMA: CURSO: INGENIERÍA DE SISTEMAS ALGORITMOS Y LENGUAJES DE PROGRAMACIÓN NÚCLEO DE FORMACIÓN: FUNDAMENTACIÓN EN CIENCIAS BÁSICAS Y UBICACIÓN CONTEXTUAL Y PROFESIONAL EJE DE FORMACIÓN: ESPECÍFICO NIVEL: II CRÉDITOS: 4 VÁLIDO DESDE: JULIO DE 2003 HORAS PRESENCIALES: CÓDIGO: I008 - pénsum IS01 64 1. INTRODUCCIÓN La programación es el proceso creativo mediante el cual, el usuario de la computadora, escribe un conjunto ordenado y finito de instrucciones que le indican a la máquina como debe proceder para realizar una determinada tarea, el resultado de ese desarrollo se le llama programa. Se dice entonces que el usuario o programador ha concebido una forma de solucionar un problema, llamada algoritmo; y la ha expresado de forma entendible a la máquina: en El programa. Para escribir el programa el programador utiliza un lenguaje de programación. Los lenguajes de programación empleados para las computadoras han evolucionado y siguen evolucionando, tratando de hacerlos más fáciles en su uso y al mismo tiempo incorporando principios y técnicas de programación que no solo hagan a ésta más fácil sino menos sujeta a errores. En efecto, la atención a los detalles en la programación, y sobre todo la cantidad de acciones a describir en un programa para una computadora, hace necesario el uso de técnicas de programación orientadas a evitar producir programas con errores. En algunos casos estas técnicas se incorporan a los lenguajes de programación, en otros solo son reglas a seguir en la confección de programas para evitar tener errores. Todo problema que se intente solucionar con la ayuda de una computadora tiene que pasar obligatoriamente por las etapas de: análisis del problema, desarrollo del algoritmo, conversión del algoritmo en programa. El éxito en la ejecución de los programas dependerá del buen funcionamiento de los respectivos algoritmos. Después de tener una solución algorítmica, el siguiente paso debe ser la tarea de desarrollar en el ingeniero de sistemas un conocimiento de la filosofía o teoría formal de los lenguajes de programación y aplicarla en algún lenguaje. 2. OBJETIVOS GENERALES 1. Desarrollar en el estudiante la capacidad de elaborar algoritmos para la resolución de problemas utilizando como herramienta el Computador y el lenguaje C++. 2. Desarrollar en el estudiante un conocimiento de la teoría general de los lenguajes de programación que le permita manipularlos e implementar soluciones algorítmicas en estos. 3. OBJETIVOS ESPECÍFICOS Aprender a resolver problemas mediante la aplicación de la lógica computacional Desarrollar algoritmos que sean solución práctica de un problema determinado Entender y aplicar la estructura de lenguaje C++ Utilizar adecuadamente las funciones del lenguaje C++ Aprender a codificar y compilar en C++ Generar soluciones utilizando el lenguaje C++ 4. CONTENIDO TEMÁTICO Unidad I. La lógica computacional a. Qué es la lógica b. El impacto de la lógica Ejercicios de lógica lúdica Unidad II. Teoría de Algoritmos c. Algoritmos. Soluciones secuenciales mediante el computador d. El arte de pensar e. Algoritmos. Definición f. Diagramas de flujo g. Pseudocódigo h. Variables. Tipos. Asignación en la memoria i. Programación estructurada y estructura de control j. Secuencias de lectura y secuencias de escritura k. Estructura de decisión lógica l. Bucles o ciclos m. Switches o interruptores n. Selección múltiple o. Arreglos p. Subalgoritmos o subprogramas Unidad III. Introducción a la metodología de la Programación Unidad IV. Programación q. ¿Qué es programar? r. Programación de computadores s. Programación y resolución de problemas t. El proceso de resolución de problemas u. Los paradigmas de la programación v. Mitos y realidades sobre la enseñanza de la programación w. Lógica de programación x. Características de los algoritmos y. Formulación y solución de problemas z. Tipos básicos de datos Unidad V. Programando con C++ a. Introducción b. Proceso para la obtención de un programa ejecutable c. Fichero fuente y programa o código fuente d. Librerías e. Ficheros ejecutables y enlazadores f. Errores CAPITULO 1 Toma de contacto CAPITULO 2 Tipos de variables I CAPITULO 3 Funciones I: Declaración y definición CAPITULO 4 Operadores I CAPITULO 5 Sentencias CAPITULO 6 Declaración de variables CAPITULO 7 Normas para la notación CAPITULO 8 Cadenas de caracteres CAPITULO 9 Librerías estándar CAPITULO 10 Conversión de tipos CAPITULO 11 Tipos de variables II: Arrays o Arreglos CAPITULO 12 Tipos de variables III: Estructuras CAPITULO 13 Tipos de variables IV: Punteros 1 CAPITULO 14 Operadores II: Más operadores CAPITULO 15 Operadores III: Precedencia CAPITULO 16 Funciones II: Parámetros por valor y por referencia CAPITULO 17 Más librerías estándar: string.h CAPITULO 18 Estructuras II: Uniones CAPITULO 19 Punteros II: Arrays dinámicos CAPITULO 20 Operadores IV: Más operadores CAPITULO 21 Definición de tipos, tipos derivados CAPITULO 22 Funciones III CAPITULO 23 Funciones IV: Sobrecarga CAPITULO 24 Operadores V: Operadores sobrecargados CAPITULO 25 El preprocesador CAPITULO 26 Funciones V: Recursividad CAPITULO 27 Tipos de Variables V: tipos de almacenamiento CAPITULO 28 Clases I: Definiciones CAPITULO 29 Declaración de una clase CAPITULO 30 Constructores CAPITULO 31 Destructores CAPITULO 32 El puntero this CAPITULO 33 Sistema de protección CAPITULO 34 Modificadores para miembros CAPITULO 35 Más sobre las funciones CAPITULO 36 Operadores sobrecargados CAPITULO 37 Herencia CAPITULO 38 Funciones virtuales CAPITULO 39 Derivación múltiple CAPITULO 40 Streams CAPITULO 41 Plantillas 5. ESTRATEGIAS METODOLÓGICAS Este curso es netamente práctico por lo cual se requiere del empleo constante del computador para implementar todos los conceptos del manejo del lenguaje y tener de primero mano el efecto de la multitud de variantes que posee. Se realizará un manejo de los temas muy de consulta e inquietud por parte de los estudiantes para que innoven y experimenten el manejo de las funciones que posee el lenguaje, así como aplicación de problemas encontrados en la vida real o inventados por simulación, para que los estudiantes los mejoren o adecuen según sus manera de verlos. Se tendrá en cuenta la capacidad creativa y de aplicación lógica por parte del estudiante para solucionar problemas, además de su adaptabilidad para trabajar en otros lenguajes con estructura similar al que se lleva en el curso. La mitad del curso es llevada con la asesoría permanente del maestro y la otra mitad es de recurso exclusivo del estudiante ya que tendrá en sus manos, como proyecto, el aprender el manejo de un segundo lenguaje al que debe acceder por completo por propia cuenta y buscando los recursos que requiera para llevarlo a cabo. 6. CRITERIOS DE EVALUACIÓN Este curso se evalúa teniendo en cuenta el proceso de aplicación de conceptos que el estudiante tenga respecto de la solución de problemas y la aplicación del proceso: lógicaalgoritmo-programa. La evaluación es netamente resultado de la práctica y el aporte que el estudiante tenga respecto del mejoramiento de conceptos recibidos o consultados: su capacidad innovadora y de adaptación a situaciones determinadas. 7. BIBLIOGRAFÍA Guillermo Correa Uribe. Desarrollo de algoritmos. McGraw Hill. 1992 Hader Berrio. Lógica para programación de computadores Luis Joyanes. Programación de computadores. McGraw Hill. Gary J. Bronson. C++ para ingeniería y ciencias. Tomson. 1999 Ellis, M.A. y Stroustrup, B., Manual de Referencia C++ con Anotaciones, AddisonWesley/Díaz de Santos, Madrid, 1994. Schildt, H., C++: Guía de Autoenseñanza, McGraw-Hill, 2ª edición, 1995. Herbert Schildt, “Borland C++ Manual de Referencia”, Osborne/McGraw-Hill, 1997. Además se requiere de fotocopias de folletos y manuales que afiancen cada uno de los remas que en que se divide el programa y que oportunamente se estarán entregando para tal fin o serán enviados vía correo electrónico. El uso de Internet será básico para las consultas aplicativas de algunos de los temas. Manuales de Phyton y aplicaciones en Linux, también se podrán bajar de la Internet.