13
hola Universidad Católica San Antonio de Murcia – Tlf: (+34) 968 278 160 [email protected] – www.ucam.edu Guía Docente 2017/2018 Fundamentos de Programación II Fundamentals of Programming II Grado en Ingeniería Informática A distancia

Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

  • Upload
    haxuyen

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

hola

Universidad Católica San Antonio de Murcia – Tlf: (+34) 968 278 160 [email protected] – www.ucam.edu

Guía Docente 2017/2018

Fundamentos de Programación II Fundamentals of Programming II

Grado en Ingeniería Informática

A distancia

Page 2: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 968 27 88 21

ÍndiceFundamentos de Programación II ...................................................................................... 1

Breve descripción de la asignatura ................................................................................... 1

Requisitos Previos .............................................................................................................. 1

Objetivos .............................................................................................................................. 1

Competencias y resultados de aprendizaje ...................................................................... 2

Metodología ......................................................................................................................... 3

Temario ................................................................................................................................. 3

Relación con otras asignaturas del plan de estudios ...................................................... 6

Sistema de evaluación ........................................................................................................ 7

Bibliografía y fuentes de referencia ................................................................................... 8

Web relacionadas ................................................................................................................ 8

Recomendaciones para el estudio ..................................................................................... 9

Material didáctico ................................................................................................................ 9

Tutorías .............................................................................................................................. 10

Page 3: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

1

Fundamentos de Programación II Módulo: Formación Básica.

Materia: Informática. Carácter: Formación Básica. Nº de créditos: 4,5 ECTS. Unidad Temporal: 1er Curso – 2º Semestre. Profesor/a de la asignatura: Baldomero Imbernón Tudela Email: [email protected] Horario de atención a los alumnos/as: Martes de 18:00 a 20:00. Fuera de este horario se pueden atender tutorías a petición del alumno. Preferiblemente se pedirán las citas por el campus virtual, pero se puede poner también por correo electrónico.

Profesor coordinador de curso: Magdalena Cantabella Sabater Profesor coordinadora de módulo: Jesús Antonio Soto Espinosa.

Breve descripción de la asignatura Esta asignatura es la continuación de Fundamentos de programación I. Se centra en establecer las estructuras de datos necesarias para almacenar la información que luego será tratada por los diferentes algoritmos.

Brief Description

This subject establishes the basic principles of programming. Allow students to learn concepts such as algorithms, programming languages, variables, structured programming and make basic programs with a few requirements. Establishes the basis for related subjects.

Requisitos Previos Para cursar esta asignatura es necesario que el alumno haya cursado y superado la asignatura Fundamentos de Programación I. Los conocimientos que en esta asignatura se imparten son fundamentales para que el alumno pueda realizar un correcto aprendizaje de los contenidos desarrollados en esta asignatura.

Objetivos 1. Conocer e identificar las principales estructuras de datos, tanto lineales como no lineales,

incluidas aquellas que se establecen en memoria secundaria. 2. Realizar programas avanzados con tipos abstractos de datos. 3. Calcular la complejidad algorítmica de un determinado código.

Page 4: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

2

Competencias y resultados de aprendizaje Competencias transversales

T1 - Capacidad de análisis y síntesis.

T2 - Capacidad de organización y planificación.

T4 - Resolución de problemas.

T5 - Toma de decisiones.

T6 - Trabajo en equipo.

T11 - Razonamiento crítico.

T14 - Aprendizaje autónomo.

T16 - Creatividad e innovación.

T19 - Motivación por la calidad.

T21 - Capacidad de reflexión.

Competencias específicas FB3 - Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería. FB4 - Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.

FB5 - Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería.

Resultados de aprendizaje RA 1.3.6. Realizar programas mediante el paradigma de la programación estructurada aplicando esquemas algorítmicos avanzados y estructuras de datos complejas.

RA 1.3.7. Analizar, especificar e implementar estructuras de datos, tanto lineales como no lineales, desde la perspectiva de los TAD para la resolución de problemas utilizando la más apropiada, en función de los recursos necesarios.

RA 1.3.8. Determinar la complejidad, en tiempo y en espacio, teórica y empírica, de algoritmos; incluyendo algoritmos recursivos.

Page 5: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

3

Metodología

Metodología Horas Horas de trabajo presencial

Horas de trabajo

no presencial

Evaluación 17 17 horas

Mecanismos de Tutorización

22.5

95.5 horas

Estudio personal 22

Búsquedas bibliográficas

11

Realización de trabajos 40

TOTAL 112.5 17 95.5

Temario Programa de la enseñanza teórica

Tema 1. Ficheros.

1. Librería estándar de C.

2. Operaciones básicas con ficheros: Apertura, lectura, escritura, renombrado, borrado y cierre.

3. Ficheros de texto.

4. Ficheros binarios. Posicionamiento.

Tema 2. Punteros.

1. Definición.

2. Declaración de punteros.

3. Operadores.

a. El operador referencia: &

b. El operador indirección: *

Page 6: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

4

4. Asignación de punteros.

5. Punteros como argumentos.

6. Proteger argumentos.

7. Devolver punteros.

Tema 3. Punteros y arrays.

1. Aritmética de punteros.

2. Uso de punteros para el procesamiento de arrays.

3. Uso del nombre de array como puntero.

4. Arrays como argumentos.

5. Punteros y arrays multidimensionales.

Tema 4. Programación modular y documentación de código fuente

1. Programación modular en C

a. Archivos de cabecera

b. Archivos de implementación

c. Variables globales

2. Documentación de código en C

a. Introducción a Doxygen

b. Añadir comentarios al código

c. Generación automática de documentación

Tema 5. Listas.

1. Listas versión estática

2. Lista versión cursor.

3. Listas dinámicas

a. Lista simple con cabecera

b. Lista simple sin cabecera

c. Lista circular

Page 7: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

5

d. Lista doblemente enlazada

e. Lista circular doblemente enlazada

Tema 6. Pilas.

1. Versión estática.

2. Versión dinámica.

Tema 7. Colas.

1. Versión estática.

2. Versión dinámica.

Tema 8. Árboles.

1. Estructuras dinámica.

2. Recorrido.

a. Previo.

b. Simétrico

c. Posterior.

2. Operaciones básicas:

a. Insertar

b. Pertenece

c. Encontrar

d. Padre de

e. Borrar

Tema 9. Grafos.

1. Versión estática.

2. Versión dinámica.

3. Algoritmos sobre grafos:

a. Dijkstra.

b. Floyd.

c. Warshall.

Page 8: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

6

Tema 10. Complejidad.

a. Conceptos básicos.

b. Notaciones asintóticas.

c. Ecuaciones de recurrencia.

Programa de la enseñanza práctica Práctica 1. Entrada/salida con ficheros en C.

Práctica 2. Uso de punteros, operaciones asociadas y uso como argumentos de funciones. Uso conjunto de punteros y arrays multidimensionales. Memoria dinámica y funciones asociadas. Elaboración de programas modulares. Documentación de programas con doxygen.

Práctica 3. Uso de la estructura de datos tipo lista sobre un supuesto práctico real y uso de la estructura de datos tipo pila y cola sobre un supuesto práctico.

Práctica 4. Uso de la estructura de datos tipo árbol y grafo sobre una supuesto práctico.

Práctica 5. Cálculo de complejidad de distintos algoritmos de programación.

Más información acerca de las prácticas a desarrollar durante el curso académico, así como las fechas de entrega será puesta a disposición de los alumnos a través del campus virtual.

Relación con otras asignaturas del plan de estudios La asignatura de Fundamentos de programación II está muy relacionada con la asignatura de Fundamentos de programación I, ya que es la continuación directa. También está íntimamente relacionada con Algoritmia.

En menor medida y en el área de la programación, también está ligada a asignaturas como Programación Orientada a Objetos, Desarrollo de aplicaciones distribuidas I y II.

También se relacionan conceptos de otras áreas de conocimiento y que son impartidos en asignaturas como Fundamentos de computadores e Ingeniería del software.

Page 9: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

7

Sistema de evaluación - Primera prueba parcial: 25% del total de la nota.

Se evaluarán los conocimientos acerca del manejo de ficheros, punteros, modularidad de programas y documentación (temas 1 a 4).

- Prueba final: 25% del total de la nota.

Se evaluarán los conocimientos sobre pilas, colas, árboles, grafos y complejidad (temas 5 a 10).

- Evaluación de prácticas y problemas: 40% del total de la nota.

De las 5 prácticas propuestas, se deberán entregar al menos 4. En caso de entregar todas las prácticas que se proponen, se realizará media con las 4 mejores notas obtenidas por el alumno. La ponderación a aplicar será equitativa (cada práctica tiene un peso del 25%). La profesora se reserva el derecho de realizar entrevista de prácticas mediante videoconferencia si lo estima oportuno.

- Participación: 10% del total de la nota.

Se evaluará mediante la realización de tareas optativas así como la participación en actividades voluntarias que se planteen. Del mismo modo, se tendrá en cuenta la actividad del alumno en la asignatura mediante el uso de herramientas como foros y videoconferencias.

El alumno superará la asignatura cuando la media ponderada sea igual o superior a 5 puntos y tenga una nota de, al menos, 4 puntos en todas las partes que componen el sistema de evaluación cuya ponderación global sea igual o superior al 20%.

Si el alumno tiene menos de un 4 en alguna de las partes cuya ponderación sea igual o superior al 20%, la asignatura estará suspensa y deberá recuperar esa/s parte/s en la siguiente convocatoria dentro del mismo curso académico. La/s parte/s superada/s en convocatorias oficiales (Febrero/Junio) se guardarán para las sucesivas convocatorias que se celebren en el mismo curso académico.

En caso de que no se supere la asignatura en la Convocatoria de Septiembre, no contarán las partes aprobadas para sucesivos cursos académicos.

El sistema de calificaciones (RD 1.125/2003. de 5 de septiembre) será el siguiente:

0-4,9 Suspenso (SS)

5,0-6,9 Aprobado (AP)

Page 10: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

8

7,0-8,9 Notable (NT)

9,0-10 Sobresaliente (SB)

La mención de “matrícula de honor” podrá ser otorgada a alumnos que hayan obtenido una calificación igual o superior a 9,0. Su número no podrá exceder del 5% de los alumnos matriculados en una materia en el correspondiente curso académico, salvo que el número de alumnos matriculados sea inferior a 20, en cuyo caso se podrá conceder una sola matrícula de honor.

Bibliografía y fuentes de referencia Bibliografía básica

• Khamtane Ashok. Programming in C. Ed. Pearson. 2012.

• Stephen G. Kochan. Programming in C. Ed. Addison-Wesley Professiona. 2014.

• Ángel Arias. Aprende a programar en C. IT Campus Academy, 2014.

• Rodríguez Artalejo, M., Antonio Gonzalez Caldero, P., Gomez Martin, M.A., González Calero, P.A. Estructuras de datos. Un enfoque moderno. UCM. 2011.

• Ferraris Llanos, R. D. Fundamentos de Informática y Programación en C. Ed. Paraninfo. 2010.

• Peña Basurto, M.A., Cela Espín, J.M. Introducción a la Programación en C. Edición UPC. 2010.

• Joyanes, L. Fundamentos de Programación. Ed. McGraw-Hill, 2008.

Bibliografía complementaria • Schildt, H. C. Manual de referencia. Ed. McGraw-Hill, 2007.

• García, F., Fernández, J., Carretero, J., Calderón, A. Ed. El lenguaje de programación C. Prentice Hall. 2004.

• Kernighan B.W., Ritchie, D.M. El lenguaje de programación C.2ª ed. Ed. Prentice Hall. 1991.

• Joyanes, L., Zahonero, I. Programación en C. Libro de problemas. Ed. McGraw-Hill. 2002.

• Joyanes, L., Zahonero, I., Fernández, M. y Sánchez, L. Estructura de datos. Libro de problemas. Ed. McGraw-Hill. 1999.

• Márquez, F.M. UNIX. Programación avanzada. 3ª ed. Ed. Ra-Ma. 2004.

Web relacionadas American National Standards Institute – ANSI (www.ansi.org)

Page 11: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

9

International Organization for Standadization (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57853)

C programming and C++ programming. http://www.cprogramming.com/

Recomendaciones para el estudio Se trata de una asignatura donde es fundamental para el alumno llevar la asignatura al día, debido a la interrelación existente entre los temas que la forman. El abandono de la asignatura durante una temporada podría dificultar el seguimiento de la misma posteriormente.

Se recomienda que el alumno trabaje semanalmente los ejercicios propuestos por el profesor, con el fin de asimilar los conocimientos de forma paulatina. Además de los recursos facilitados por el profesor, es sumamente importante que los alumnos hagan uso de las referencias bibliográficas básicas para reforzar los contenidos tratados en clase.

Por tratarse de una asignatura de carácter práctico, es fundamental el uso del ordenador, tanto para la elaboración de las prácticas y ejercicios, como para el refuerzo de los conocimientos y conceptos teóricos aprendidos. Material necesario

Material didáctico Aplicaciones

Para las prácticas de esta asignatura se necesita instalar algún programa que permita el desarrollo, compilación y ejecución de programas desarrollados en lenguaje C. Se recomienda el uso de Dev-C++, el cuál es descargable gratuitamente a través del siguiente enlace:

http://www.bloodshed.net/devcpp.html

Los requisitos mínimos son un sistema Windows95/98/BT/2000/XP y 512 megas de RAM.

Si el alumno lo prefiere, puede utilizar cualquier otro programa que ofrezca la funcionalidad necesaria para desarrollar los ejercicios prácticos de esta asignatura, como Eclipse o Code::Blocks. No obstante es importante tener presente que en los laboratorios se encuentra instalada la herramienta Dev-C++ y los exámenes se desarrollarán haciendo uso de la misma.

Adicionalmente, para la generación automática de código, haremos uso de la herramienta Doxygen. Se puede descargar gratuitamente a través del siguiente enlace:

http://www.stack.nl/~dimitri/doxygen/

El software es ligero y no existen requisitos mínimos para su instalación. Además, se ofrece en diversas versiones, tanto 32-bit y 64-bit, válidas para sistemas tipo Linux, Windows o Mac OS X.

Material didáctico Además de la bibliografía recomendada en esta guía docente (básica y complementaria), en el apartado de Recursos del Campus Virtual, el estudiante dispondrá de recursos adicionales que le servirán de apoyo al proceso de aprendizaje. Dicho material se ofrecerá organizado por temas, de

Page 12: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

10

acuerdo con la organización de contenidos detallada anteriormente. Concretamente se pondrán a disposición del alumno los siguientes recursos:

• Apuntes sobre cada tema, indicando conceptos relevantes y ejemplos de uso.

• Enlaces de interés que permitan la ampliación de información sobre los temas.

• Ejemplos de programas donde se apliquen distintas técnicas de programación.

• Para cada estructura de datos estudiada en la asignatura, se facilitarán librerías con funcionalidad básica que puedan ser empleadas en la resolución de ejercicios prácticos.

• Ejercicios para practicar los conocimientos tratados en cada tema. Tras un periodo de prueba, se proporcionarán las soluciones de forma que el alumno pueda comparar su resolución del ejercicio con la proporcionada por el profesor.

• Videos con explicación oral del profesor de aquellos temas que sean más relevantes o complejos de comprender.

• Exámenes de autoevaluación de cada bloque temático de la asignatura que permitan a los alumnos valorar su aprendizaje.

También se dispone del documento Plan de Trabajo donde, entre otras cuestiones, se explica cómo utilizar las distintas herramientas del Campus Virtual, un calendario de las principales actividades de tutorización/seguimiento y un plan de trabajo que establece los periodos de tiempo para cada tema así como los recursos didácticos principales y complementarios de cada uno.

Tutorías La tutorías constituyen un pilar fundamental para el aprendizaje del alumno que le ayuda a resolver sus dudas. Al tratarse de una asignatura en modalidad online, las tutorías se realizarán de forma conveniente a través de los medios que se indican a continuación:

• Sesiones de tutorías: en el horario semanal de atención a los alumnos indicado anteriormente, el profesor atenderá dudas de los alumnos por vía telefónica, chat o videoconferencia individual (bajo demanda). Estas sesiones de tutorización serán individuales y permitirán una interacción directa y fluida con el profesor para la resolución de dudas relacionadas con los contenidos teórico-prácticos tratados a los largo del cuatrimestre.

• Correo electrónico y/o mensajes privados: se atenderán dudas puntuales planteadas a través de medios telemáticos como el correo electrónico y la herramienta del Campus Virtual “Mensajes privados”. Preferiblemente, se recomienda el uso del Campus Virtual. Este tipo de tutorización se realizará diariamente, con un compromiso de respuesta en menos de 48 horas lectivas desde la recepción del mismo.

• Foros: los foros sirven para fomentar la resolución de dudas en la asignatura de forma colaborativa entre los alumnos. El interés de este mecanismo de tutorización reside en su

Page 13: Guía Docente 2017/2018 - UCAM Universidad Online · operativos, bases de datos y programas informáticos con aplicación en ingeniería. FB5 - Conocimiento de la estructura, organización,

Fundamentos de Programación II

Fundamentos de Programación II - Tlf: (+34) 902 102 101

11

carácter asíncrono, de modo que los alumnos interaccionan sin necesidad de correspondencia temporal. El profesor creará diversos temas en el foro donde discutir distintos aspectos de interés, tales como unidades temáticas, prácticas, ejercicios, etc. Este mecanismo de tutorización permite a los estudiantes generar debates sobre los distintos planteamientos e intervenciones que se realicen. El profesor moderará las discusiones surgidas a través de los foros, reorientando las discusiones hacia el propósito formativo.

• Videoconferencia colectiva: periódicamente, el profesor planificará la realización de videoconferencias colectivas abiertas a la participación de todos los alumnos de la asignatura. Estas videoconferencias servirán al profesor como punto de control para verificar el proceso de aprendizaje. Del mismo modo, es una plataforma que permite a los alumnos exponer dudas, inquietudes o realizar sugerencias acerca del desarrollo de la asignatura. El profesor propondrá al menos cuatro videoconferencias: presentación, seguimiento de las prácticas y aclaración de dudas previas a cada uno de los exámenes parciales. Además de las propuestas por el profesor, los alumnos podrán solicitar la realización de videoconferencias adicionales.

De forma excepcional, el alumno podrá realizar tutorías presenciales con el profesor de la asignatura. No obstante, este método de tutorización será excepcional y siempre bajo demanda del alumno.