Guía Docente 2018-19
FUNDAMENTOS DE LA PROGRAMACIÓN

DATOS BÁSICOS DE LA GUÍA DOCENTE:

Materia: FUNDAMENTOS DE LA PROGRAMACIÓN
Identificador: 33406
Titulación: DOBLE GRADO EN INGENIERÍA INFORMÁTICA Y BIOINFORMÁTICA
Módulo: PROGRAMACION Y DESARROLLO
Tipo: MATERIA BASICA
Curso: 1 Periodo lectivo: Anual
Créditos: 6 Horas totales: 150
Actividades Presenciales: 62 Trabajo Autónomo: 88
Idioma Principal: Castellano Idioma Secundario: Inglés
Profesor: ECHEVERRIA OCHOA, JORGE (T) Correo electrónico: jecheverria@usj.es

PRESENTACIÓN:

La asignatura supone la primera toma de contacto del alumno con la programación informática en la universidad. Se trata de un pilar fundamental para el buen desarrollo académico y profesional. En el mundo profesional, se trata de uno de los campos en el mundo de la informática de mayor dimensión tanto social como económicamente.

El alumno aprenderá a analizar y resolver problemas de tratamiento de información de complejidad baja o media y a construir algoritmos que los resuelvan. Para ello el alumno deberá aprender a representar la información asociada a cada problema y deberá ser capaz de diseñar y documentar las acciones algorítmicas que los resuelvan de forma eficaz y eficiente.

El alumno aprenderá a codificar los algoritmos utilizando para ello el lenguaje de programación C.

COMPETENCIAS PROFESIONALES A DESARROLLAR EN LA MATERIA:

Competencias Generales de la titulación G02 Capacidad innovadora para proponer y encontrar formas nuevas y eficaces de realizar cualquier tarea y/ o función dentro de su entorno profesional con una elevada motivación por la calidad
G05 Capacidad para adaptarse a diferentes entornos con una actitud positiva y optimista y orientar su conducta a la consecución de metas
G06 Capacidad para analizar y resolver los problemas o imprevistos complejos que puedan surgir durante la actividad profesional dentro de cualquier tipo de organización socio-económica
G08 Habilidad para comunicarse eficazmente sobre distintos temas en una variedad de contextos profesionales y con los diferentes medios disponibles
G09 Capacidad para tomar decisiones de manera imparcial y desde un punto de vista racional
G10 Capacidad crítica y analítica en la evaluación de información, datos y líneas de actuación
G13 Capacidad para utilizar estrategias de aprendizaje individuales orientadas a la mejora continúa en el ejercicio profesional y para emprender estudios posteriores de forma autónoma
G14 Capacidad de abstracción para manejar diferentes modelos complejos de conocimiento y aplicarlos al planteamiento y resolución de problemas
Competencias Específicas de la titulación E03 Capacidad para reconocer los principios teóricos y aplicar satisfactoriamente los métodos prácticos apropiados para el análisis y la resolución de problemas de ingeniería
E04 Capacidad para mantener una actitud abierta a la innovación y la creatividad en el marco de la profesión de ingeniería
E08 Capacidad para comunicarse productivamente con clientes, usuarios y colegas, tanto de modo oral como por escrito, con el fin de transmitir ideas, resolver conflictos y alcanzar consensos
E09 Capacidad para mantener las competencias profesionales mediante el aprendizaje autónomo y la mejora continua
E11 Capacidad para mantenerse al día en el mundo tecnológico y empresarial en el ámbito de las tecnologías de la informática y comunicaciones
E12 Capacidad para gestionar la complejidad a través de la abstracción, el modelado, las ?best practices?, los patrones, los estándares y el uso de herramientas apropiadas
E13 Capacidad para identificar, evaluar y usar tecnologías actuales y emergentes, considerando su aplicabilidad en función de las necesidades de individuos y organizaciones
E16 Capacidad para comprender un dominio de aplicación hasta el punto de ser capaz de desarrollar aplicaciones IT adecuadas para el mismo
E17 Capacidad para identificar y analizar las necesidades de los usuarios con el objetivo de diseñar soluciones IT efectivas y usables que puedan integrarse en el entorno operativo del usuario.
E18 Capacidad para identificar y definir los requisitos que deben ser satisfechos por los sistemas IT para satisfacer las necesidades planteadas por organizaciones o individuos
E20 Capacidad para realizar el diseño detallado de los componentes del proyecto (procedimientos, interfaz de usuario, características de equipos, parámetros de los sistemas de comunicaciones, etc.).
E27 Capacidad para elaborar y mantener documentación descriptiva de la génesis, producción y operatividad de los sistemas informáticos

REQUISITOS PREVIOS:

No es necesario poseer ningún requisito previo. Es recomendable tener un buen conocimiento de los contenidos matemáticos elementales.

PROGRAMACIÓN DE LA MATERIA:

Contenidos de la materia:

1 - Introducción
    1.0 - Introducción
    1.1 - Origen del lenguaje
    1.2 - Características del lenguaje
    1.3 - Compilación y ejecución
    1.4 - Estructura de un programa
2 - Variables y operadores
    2.1 - Variables y datos
    2.2 - Constantes
    2.3 - Palabras clave
    2.4 - Comentarios
    2.5 - Operadores
    2.6 - Entrada/Salida
    2.7 - Directivas
    2.8 - Variables y memoria
3 - Control de flujo
    3.1 - if
    3.2 - for
    3.3 - while/do...while
    3.4 - switch
4 - Algoritmia y seudocódigo
    4.1 - Fases de desarrollo
    4.2 - Diagramas
    4.3 - Estructuras básicas
    4.4 - Traza
5 - Funciones
    5.1 - Introducción
    5.2 - Ventajas
    5.3 - Carcaterísitcas
    5.4 - Ámbito
    5.5 - Modos de almacenamiento
6 - Array y punteros
    6.1 - Arrays
    6.2 - Punteros
    6.3 - Arrays y punteros
    6.4 - Operaciones con vectores
    6.5 - Vectores como parámetros
    6.6 - Cadenas
7 - Estructuras y memoria dinámica
    7.1 - Introducción
    7.2 - Estructuras
    7.3 - Uniones
    7.4 - Enumeracioes
    7.5 - Datos propios
    7.6 - Memoria dinámica
8 - Funciones complejas
    8.1 - Recursividad
    8.2 - Estructuras y funciones
    8.3 - Punteros a funciones
    8.4 - Preprocesado
9 - Entrada y salida
    9.1 - Entrada y salida formateada
    9.2 - Ficheros

La planificación de la asignatura podrá verse modificada por motivos imprevistos (rendimiento del grupo, disponibilidad de recursos, modificaciones en el calendario académico, etc.) y por tanto no deberá considerarse como definitiva y cerrada.


METODOLOGÍAS Y ACTIVIDADES DE ENSEÑANZA Y APRENDIZAJE:

Metodologías de enseñanza-aprendizaje a desarrollar:

 

a)    Sesiones teóricas

El profesor expondrá apoyado en recursos TIC (portátil, proyector, Internet) y la pizarra la mayor parte teórica básica de la asignatura. El material utilizado en cada sesión estará siempre en la PDU con antelación para que los alumnos puedan realizar una lectura previa. Se aconseja encarecidamente a los alumnos leer con anterioridad los temas a tratar en clase. 

b)    Aprendizaje basado en resolución de ejercicios y problemas

Los contenidos teóricos se apoyan en la resolución de problemas que serán propuestos por el profesor y resueltos por los alumnos. Estos problemas serán solucionados, en su mayoría, por los alumnos como parte de su trabajo autónomo en horario fuera de las clases lectivas. De forma puntual algunos problemas se resolverán en las clases presenciales previa petición de los alumnos.

c)     Aprendizaje basado la solución de prácticas y proyectos

Una parte muy importante del aprendizaje  de la asignatura, y de la nota, se conseguirá con la resolución de las cuatro prácticas a resolver de manera individual por los alumnos. Se proporcionará a los alumnos los enunciados de las prácticas y se solicitará su entrega en un tiempo prudencial. Cada práctica estará centrada en un bloque de la temática de la asignatura, sin olvidar el carácter continuo del aprendizaje de la misma. La resolución correcta de estas prácticas, junto con los problemas citados en el apartado b, preparará al alumno para adquirir con una gran eficiencia las competencias propias de la asignatura.

d)    Sesiones de tutoría

Los estudiantes podrán preguntar al profesor aquellas dudas que no han podido ser resueltas durante las clases o que hayan surgido en su tiempo dedicado al trabajo autónomo. Para las sesiones de tutoría se podrán utilizar los distintos medios tecnológicos útiles para dicho fin.

El horario de tutorías se fijará acorde a la disponibilidad de los alumnos al inicio de las clases.

 

Volumen de trabajo del alumno:

Modalidad organizativa Métodos de enseñanza Horas estimadas
Actividades Presenciales
Clase magistral 20
Casos prácticos 5
Resolución de prácticas, problemas, ejercicios etc. 28
Exposiciones de trabajos de los alumnos 2
Prácticas de laboratorio 2
Actividades de evaluación 5
Trabajo Autónomo
Asistencia a tutorías 3
Estudio individual 33
Preparación de trabajos individuales 37
Realización de proyectos 6
Tareas de investigación y búsqueda de información 5
Lecturas obligatorias 1
Lectura libre 3
Horas totales: 150

SISTEMA DE EVALUACIÓN:

Obtención de la nota final:

Pruebas escritas: 40 %
Trabajos individuales: 40 %
Prueba final: 15 %
Participación y evaluación continua: 5 %
TOTAL 100 %

*Las observaciones específicas sobre el sistema de evaluación serán comunicadas por escrito a los alumnos al inicio de la materia.

BIBLIOGRAFÍA Y DOCUMENTACIÓN:

Bibliografía básica:

Kerningham, N.B., Ritchie, M.D. El lenguaje de programación C. ISBN: 9688802050
Joyanes Aguilar, L., Zahonero Martínez Ignacio. Programación en C. ISBN: 8448198441

Bibliografía recomendada:

Byron Gottfrieg. Programación en C. ISBN: 8448198468
Kerningham, N.B., Pick, R. La práctica de la programación
G. Brassard, P. Bratley. Fundamentos de Algoritmia ISBN: 848966000X
Javier García de Jalón y otros, Aprenda lenguaje ANSI C como si estuviera en primero
Andrés Marzal, Introducción al lenguaje C
Carlos López, Programación en C

Páginas web recomendadas:

Site con información sobre programación en C ý C http://www.cprogramming.com/
Página con compiladores de C ý C http://www.thefreecountry.com/compilers/cpp.shtml
Todo tipo de información relacionada con el lenguaje C http://www.elrincondelc.com/nuevorincon/index.php