Perfilado de sección

  •  

     

    Datos identificativos de la Asignatura

    • Asignatura: Programación I

    • Código: 5407

    • Departamento / Área: Matemáticas, Estadística y Computación

    • Título: Ingeniero en Informática

    • Profesores: Michael González Harbour / José Luis Montaña Arnáiz


     

    Objetivos Generales

    Aprender los conceptos básicos de algorítmica, así como la codificación de algoritmos sencillos en un lenguaje de programación concreto.

     

    Objetivos Específicos

    Conocimientos

    - Conocer y comprender la sintaxis y semántica de las expresiones e instrucciones de un lenguaje de programación imperativo.

    - Conocer el concepto de clase y objeto como elementos constituyentes de los programas

    - Conocer y saber utilizar los tipos de datos elementales, las tablas y las secuencias.

    - Conocer los conceptos de método y paso de parámetros.

    - Conocer los principios de la entrada/salida interactiva simple

     

    Habilidades

    - Especificar problemas sencillos de programación

    - Saber aplicar a problemas sencillos el razonamiento inductivo para construir algoritmos.

    - Codificar estos algoritmos en un lenguaje de programación imperativo

    - Utilizar un sistema de desarrollo para editar, compilar y ejecutar programas

    - Razonar informalmente sobre la corrección de los algoritmos

     

    Capacidades

    - Dotar de capacidad para la abstracción (simplificación) y para el razonamiento semiformal pero riguroso.

    - Capacidad para comprender los problemas, desde el enunciado, saber especificar y distinguir datos, resultados y datos/resultados.

    - Capacidad para enfrentarse a los problemas, siendo capaz de resolver nuevas situaciones desde los conocimientos adquiridos.

    - Dotar de capacidad para abordar con éxito el estudio de nuevas materias de la titulación de Ingeniería Informática.

     

     

    Programa

    BLOQUE I: CONCEPTOS Y TÉCNICAS BÁSICAS EN PROGRAMACIÓN

    1. Introducción.

    - Programas y lenguajes.

    - Necesidad de la programación modular.

    - Ciclo de vida de los programas

    - Concepto de algoritmo

    - Noción de proceso.

    - Variables y estado de un programa

    - Traza de un proceso

     

    2. Datos y expresiones. Especificación de algoritmos

    - Tipos primitivos

    - Variables y constantes

    - Operadores y expresiones

    - Noción de especificación

    - Noción de predicado

    - Corrección de un algoritmo

    - Reglas de consecuencia de una especificación

    - Encapsulamiento: Concepto de clase y objeto

    - Diagramas de clases

    - Métodos y paso de parámetros

    - Especificación de clases y objetos

     

    3. Estructuras algorítmicas básicas.

    - La asignación

    - Corrección de la asignación. Regla de inferencia

    - Composición secuencial de instrucciones

    - La instrucción alternativa simple

    - La instrucción alternativa múltiple

    - Alternativa exclusiva y general

     

    4. Iteración y recursión.

    - Diseño iterativo. Instrucción de bucle

    - Corrección de la implementación iterativa: Trazas, invariantes y cotas

    - Fases del diseño iterativo

    - Otras instrucciones de bucle

    - Recursión

    - Corrección de la implementación recursiva

    - Fases del diseño recursivo

     

    5. Iteración y recursión sobre secuencias.

    - Introducción

    - Descripción de la secuencia. Interfaz

    - Recorridos sobre secuencias

    - Búsquedas en secuencias

    - Esquemas mixtos

     

    6. Iteración y recursión sobre tablas.

    - Concepto de tabla. Sintaxis

    - Operaciones sobre tablas

    - Recorrido de tablas

    - Búsqueda en tablas

    - Búsqueda binaria

    - Algoritmos sencillos de ordenación en tablas

     

    BLOQUE II: ELEMENTOS DEL LENGUAJE DE PROGRAMACIÓN JAVA

     

    1. Introducción a los lenguajes de programación

    - El software del sistema.

    - Lenguajes de Programación.

    - Lenguajes de alto y bajo nivel.

    - Ensambladores, compiladores e intérpretes.

    - Algunos lenguajes de alto nivel.

    - El proceso de compilación.

    - El ciclo de vida del software

     

    2. Estructura de un programa

    - Introducción al lenguaje Java

    - Clases y objetos en Java

    - Estructura de un programa

    - Estructura de una clase

    - Estructura de una operación

     

    3. Datos y expresiones simples

    - Tipos primitivos

    - Los datos en Java

    - Operadores y expresiones

    - Conversión de tipos

    - Uso de funciones matemáticas

    - Declaración de clases y objetos

    - Strings

    - Composición de objetos

     

    4. Instrucciones de control

    - Instrucciones simples y compuestas

    - Instrucción condicional simple

    - Instrucción condicional múltiple

    - Instrucciones de bucle

    - Bucle con condición de permanencia al principio

    - Bucle con condición de permanencia al final

    - Bucle con variable de control

    - Instrucciones de salto en bucles

     

    5. Entrada/Salida simple

    - Entrada salida de texto

    - Entrada/salida de números

    - Dibujos

    - Gráficas de funciones

    - Menús

     

    6. Arrays, secuencias y tablas

    - Construcción de tablas mediante arrays

    - Arrays unidimensionales

    - Uso de arrays

    - Recorrido y recorrido parcial

    - Búsqueda

    - Arrays multidimensionales

    - Tablas de tamaño variable

     

     

    BLOQUE III: HERRAMIENTAS DE LABORATORIO

     

    1. Sistemas operativos

    - Conceptos básicos

    - Sistemas operativos comunes

    - Inicio y terminación de sesiones

    - El sistema de ficheros

    - Nombres de ficheros en Unix

    - Directorio de trabajo

    - Intérprete de órdenes

    - Órdenes más usuales

    - Gestión de directorios

    - Gestor gráfico de ficheros

    - Uso de memorias USB

    - Aspectos avanzados

     

    2. Entorno integrado de desarrollo de programas

    - Proceso de desarrollo de programas

    - El editor de texto

    - Compilar y ejecutar programas Java

    - Uso del entorno de desarrollo

    - Gestión de proyectos

    - La compilación

    - La depuración

    - Generación de documentación

    - Empaquetamiento del programa