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 I Fundamentals of Programming I Grado en Ingeniería Informática A distancia

Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

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 I Fundamentals of Programming I

Grado en Ingeniería Informática

A distancia

Page 2: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

1

ÍndiceFundamentos de Programación I ....................................................................................... 2

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

Requisitos Previos .............................................................................................................. 2

Objetivos .............................................................................................................................. 2

Competencias y resultados de aprendizaje ...................................................................... 3

Metodología ......................................................................................................................... 4

Temario ................................................................................................................................. 4

Relación con otras materias del plan de estudios ............................................................ 8

Sistema de evaluación ........................................................................................................ 8

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

Web relacionadas .............................................................................................................. 10

Recomendaciones para el estudio ................................................................................... 10

Material didáctico .............................................................................................................. 11

Tutorías .............................................................................................................................. 12

Page 3: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

2

Fundamentos de Programación I Módulo: Formación Básica Materia: Fundamentos de Programación I Carácter: Formación Básica Nº de créditos: 4,5 ECTS Unidad Temporal: 1er Curso – 1er Semestre

Profesor/a de la asignatura: Baldomero Imbernón Tudela

Email: [email protected]

Horario de atención a los alumnos/as: Jueves de 16:00 a 18: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 Profesora coordinadora de módulo: Jesús Antonio Soto Espinosa

Breve descripción de la asignatura Esta asignatura establece los principios básicos de la programación. Permite al alumno familiarizarse con conceptos como algoritmos, lenguajes de programación, variables, programación estructurada y a construir programas básicos con funcionalidades muy concretas. Establece las bases en las que se sustentarán el resto de asignaturas de esta área de conocimiento.

Brief Description

This subject establishes the basic principles of programming. It allows students to learn concepts such as algorithms, programming languages, variables, structured programming and make basic programs that are required to accomplish some requirements. This subject is fundamental and establishes the basis for subjects related to programming.

Requisitos Previos No existen requisitos previos

Objetivos 1. Adquirir los conocimientos básicos sobre programación. 2. Desarrollar programas aplicando técnicas de programación estructurada y usando los

elementos que los entornos de desarrollo proporcionan. 3. Elaborar interfaces de usuario que cumplan los requisitos dados. 4. Conocer el lenguaje de programación C como lenguaje de programación estructurada. 5. Usar las librerías más importantes de C y saber desarrollar librerías nuevas.

Page 4: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

3

6. Evaluar y desarrollar escenarios de prueba para comprobar el correcto funcionamiento de los programas.

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

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.1. Conocer los conceptos de básicos de programación.

RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos en pseudocódigo.

RA 1.3.3. Realizar programas mediante el paradigma de la programación estructurada aplicando esquemas algorítmicos básicos y estructuras de datos sencillas.

RA 1.3.4. Usar las herramientas de un entorno de desarrollo de programación para crear y desarrollar aplicaciones.

RA 1.3.5. Aplicar la recursividad como herramienta de construcción de programas.

Page 5: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

4

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. Introducción a la Programación.

1. Programa.

2. Lenguaje de Programación.

3. Compilador.

4. Algoritmo.

5. Pseudocódigo.

Tema 2. Conceptos básicos de C.

1. Estructura de un programa en C.

2. Elementos de un programa en C.

3. Comentarios.

4. Concepto de variable e inicialización de variables.

5. Concepto de constante e inicialización de constantes.

6. Identificadores y palabras reservadas.

Page 6: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

5

Tema 3. Entrada/Salida Formateada.

1. La función Printf.

2. La función Scanf.

Tema 4. Tipos de Datos.

1. Variables:

a. Enteros.

b. Coma flotante (reales).

c. Caracteres.

d. Booleanos.

2. Constantes

Tema 5. Conversión de Tipos de Datos.

1. Conversiones de tipos:

a. Implícitas (Reglas).

b. Explícitas (Casting).

2. Definiciones de tipos: typedef.

3. El operados sizeof

Tema 6. Operadores y expresiones.

1. Expresiones.

2. Operadores aritméticos.

3. Precedencia de operadores. Asociatividad.

4. Asignación. Asignación compuesta.

5. Operadores de incremento y decremento.

6. Evaluación de expresiones. Orden.

7. Expresiones como sentencias.

Tema 7. Control de flujo: Selección.

1. Estructuras de control.

2. Expresiones lógicas.

3. Operadores relacionales.

Page 7: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

6

4. Operadores lógicos.

5. Evaluación de expresiones.

6. La sentencia if.

7. Expresiones condicionales.

8. Tipo de datos booleano.

9. La sentencia switch.

Tema 8. Control de flujo: Iteración.

1. La sentencia while.

2. La sentencia do.

3. La sentencia for.

4. Saliendo de un bucle: break y continue.

5. Saliendo de un bucle: goto.

6. La sentencia Null (nula).

Tema 9. Funciones.

1. Definiendo una función.

2. Llamadas a funciones.

3. Argumentos y parámetros.

4. Declaración de funciones.

5. Paso de parámetros por valor y por referencia.

6. Conversión de argumentos.

7. La sentencia return.

8. Terminación del programa.

Tema 10. Recursividad.

1. Definición de recursividad.

2. Condiciones en la recursividad.

3. Ventajas e inconvenientes.

4. Ejemplos y ejecución.

Tema 11. Arrays.

Page 8: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

7

1. Arrays unidimensionales.

2. Indexación de elementos.

3. Inicialización de arrays.

4. Arrays y el operador sizeof.

5. Arrays multidimensionales.

6. Arrays constantes.

7. Arrays de tamaño variable .

8. Arrays como argumentos.

Tema 12. Cadenas.

1. Cadenas literales o constantes.

2. Almacenamiento de cadenas.

3. Inicialización.

4. Arrays de caracteres. Punteros.

5. Leer y escribir cadenas.

6. La librería estándar string.h.

7. Arrays de cadenas.

8. Argumentos en la línea de comandos.

Tema 13. Estructuras.

1. Estructuras.

a. Operaciones sobre estructuras.

b. Tipos estructura.

c. Estructuras y funciones.

d. Estructuras y punteros.

e. Combinando arrays y estructuras.

2. Enumeraciones.

3. Typedef.

Page 9: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

8

Programa de la enseñanza práctica Práctica 1. Manejo funciones entrada/salida. Tipos de datos en C. Declaración de constantes. Conversiones implícitas y explícitas de tipos de datos. Manejo avanzados de tipos de datos. Manejo de operadores aritméticos. Orden de evaluación de operadores.

Práctica 2. Manejo de sentencias de control de tipo selectivo. Expresiones lógicas y relacionales. Saber emplear el tipo de datos booleano. Manejo de sentencias de control de tipo iterativo. Interrupción de ejecución iterativa en un programa.

Práctica 3. Declaración e invocación de funciones. Retorno de valores en una función. Modularización de código mediante uso de funciones. Paso de parámetros por valor y referencia. Uso de funciones recursivas en un programa.

Práctica 4. Manejo de arrays. Declaración e inicialización de arrays. Arrays unidimensionales y multidimensionales. Arrays de tamaño fijo y variable. Paso de arrays como parámetros de funciones.

Práctica 5. Declaración y manipulación de cadenas. Arrays de caracteres y arrays de punteros. Manejo de librería <string.h>. Manejo de arrays de cadenas. Declaración y manipulación de tipos de datos compuestos basados en estructuras. Manejo de combinado de estructuras con funciones y arrays. Uso de funciones recursivas en un programa.

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. Se recomienda consultar el plan de trabajo de la asignatura así como los enunciados de prácticas correspondientes.

Relación con otras materias del plan de estudios La asignatura de Fundamentos de Programación I ofrece la formación necesaria para que el alumno afronte con garantías el desarrollo de otras asignaturas de la carrera tales como Fundamentos de Programación II.

Al ser una asignatura que trata los fundamentos básicos en el área de la programación, también está ligada a asignaturas como Programación Orientada a Objetos, Algoritmia o 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 I.

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

Se evaluarán los conocimientos abarcados del tema 1 a 8: tipos de datos, entrada/salida, operadores y expresiones, control de flujo (selección, iteración).

Page 10: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

9

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

Se evaluarán los conocimientos tratados en los temas 9 a 13: funciones, recursividad, arrays, cadenas, estructuras.

- Evaluación de prácticas y problemas: 30% 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, 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%).

- 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)

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

Page 11: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

10

Bibliografía básica • Khamtane Ashok. Programming in C. Ed. Pearson. 2012.

• Teresa G., S. Ososrio, N. Olvera. Introducción a la programación estructurada en C. Pearson Educación. 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.

• Llanos Ferraris, D. R. Fundamentos de Informatica y Programacion en C. Ediciones Paraninfo. 2010.

Bibliografía complementaria • Joyanes, L. Fundamentos de Programación. Ed. McGraw-Hill, 2008.

• 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)

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 docentes facilitados, es sumamente importante que los alumnos hagan uso de las referencias bibliográficas básicas para reforzar los contenidos tratados en clase.

Page 12: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

11

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 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 Code::Blocks, el cuál es descargable gratuitamente a través del siguiente enlace:

http://www.codeblocks.org/downloads

Es un entorno de desarrollo multiplataforma disponible para entornos Windows 200/XP/Vista/7/8, Linux 32/64 bits y Mac OS X.

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 Dev-C++. No obstante es importante tener presente que en los laboratorios se encuentra instalada la herramienta Code::Blocks y los exámenes se desarrollarán haciendo uso de la misma.

Material

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 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.

• 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.

Page 13: Guía Docente 2017/2018...RA 1.3.1. Conocer los conceptos de básicos de programación. RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos

Fundamentos de Programación I

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

12

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 de atención semanal 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.

• 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 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