Guías Académicas

PROGRAMACIÓN I

PROGRAMACIÓN I

Doble Titulación de Grado en Estadística y en Ingeniería Informática

Curso 2022/2023

1. Datos de la asignatura

(Fecha última modificación: 26-05-22 10:15)
Código
101102
Plan
ECTS
6
Carácter
Curso
1
Periodicidad
Primer Semestre
Idioma
ESPAÑOL
Área
CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL
Departamento
Informática y Automática
Plataforma Virtual

Campus Virtual de la Universidad de Salamanca

Datos del profesorado

Profesor/Profesora
María Angélica González Arrieta
Grupo/s
A y B (Teoría)
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Ciencia de la Computación e Inteligencia Artific.
Despacho
F3003
Horario de tutorías
Consultar su página web
URL Web
http://informatica.usal.es/angelica
E-mail
angelica@usal.es
Teléfono
923294500, Ext. 1302
Profesor/Profesora
Juan Andrés Hernández Simón
Grupo/s
PA1 y PB2
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Lenguajes y Sistemas Informáticos
Despacho
D1515
Horario de tutorías
Consultar su página web
URL Web
http://diaweb.usal.es/diaweb/personas/jahsimon
E-mail
jahsimon@usal.es
Teléfono
923 294500, Ext. 6098
Profesor/Profesora
Guillermo Hernández González
Grupo/s
PA2 Y PB4
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Ciencia de la Computación e Inteligencia Artific.
Despacho
F3003
Horario de tutorías
Consultar su página web
URL Web
https://produccioncientifica.usal.es/investigadores/147991/detalle
E-mail
guillehg@usal.es
Teléfono
923 294500, Ext. 1302
Profesor/Profesora
María Resurrección Gutiérrez Rodríguez
Grupo/s
PA3
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Lenguajes y Sistemas Informáticos
Despacho
D1515
Horario de tutorías
Consultar su página web
URL Web
http://diaweb.usal.es/diaweb/personas/resu
E-mail
resu@usal.es
Teléfono
1309
Profesor/Profesora
Fernando de la Prieta Pintado
Grupo/s
PA4 y PB1
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Ciencia de la Computación e Inteligencia Artific.
Despacho
Ed. Ciencias, D1514
Horario de tutorías
Consultar su página web
URL Web
http://bisite.usal.es/es/grupo/equipo/delaprieta
E-mail
fer@usal.es
Teléfono
923 294500, Ext. 6590
Profesor/Profesora
Iván Alvarez Navia
Grupo/s
PB3
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Lenguajes y Sistemas Informáticos
Despacho
F3021
Horario de tutorías
Consultar su página web
URL Web
http://diaweb.usal.es/diaweb/personas/inavia
E-mail
inavia@usal.es
Teléfono
6078

2. Sentido de la materia en el plan de estudios

Bloque formativo al que pertenece la materia.

Materia “Programación”, que consta de las siguientes asignaturas:

  • Programación I
  • Programación II
  • Programación III
  • Estructuras de Datos y Algoritmos I
  • Estructuras de Datos y Algoritmos  II
  • Informática Teórica
  • Programación Avanzada
  • Animación Digital (optativa)
  • Desarrollo de Aplicaciones Avanzadas(optativa).

Papel de la asignatura.

Esta asignatura es el primer contacto del alumno con las cuestiones relacionadas con Programación, y aporta unas bases que se desarrollarán posteriormente en Programación II, Programación III (POO) y las demás asignaturas de esta Materia. La programación, con distintos paradigmas y lenguajes, constituye el esqueleto de esta titulación, puesto que permite implementar los conceptos que se aportan a lo largo y ancho de todo el Plande Estudios. Es imprescindible dominar los métodos y conceptos que se aportan en estas asignaturas para llegar aun correcto aprovechamiento en el Grado en Informática.

Perfil profesional.

Los alumnos que cursan el Grado en Informática tienen como objetivo laboral la industria, o quizá el mundo académico. Tanto la Empresa como la Universidad exigen resultados concretos, o más exactamente programas que resuelvan problemas. Los métodos y conceptos que se aportan en esta materia tienen como fin la creación de software correcto, robusto, eficiente y reutilizable, que deberá estar dotado de una interfaz de usuario que satisfaga criterios de usabilidad, portabilidad y mantenibilidad. Para alcanzar un desarrollo profesional, se necesitan como mínimo las asignaturas básicas y obligatorias de esta materia, sin olvidar las asignaturas optativas que contiene, y que ofrecen lo necesario para construir software avanzado.

De este modo, el perfil profesional de los graduados será el adecuado para entrar en el mercado laboral, o quizá para abordar la realización de un Máster que complemente su formación.

3. Recomendaciones previas

Al tratarse  de una asignatura de primer curso,  es posible recomendar  asignaturas anteriores. Sin   embargo, se observa  lo  siguiente:

  • Un conocimiento razonable del manejo de ordenadores personales (con nivel de usuario) facilita los primeros pasos. Resulta especialmente necesario conocer los conceptos básicos de los sistemas de archivos, tanto desde el punto de vista de la línea de órdenes como empleando alguna interfaz gráfica de usuario. En general, el conocimiento de sistemas operativos facilitará la comprensión de esta asignatura.
  • El desarrollo de capacidades lógicas, especialmente las que se adquieren mediante el estudio de disciplinas científicas, facilita mucho la comp- rensión y utilización de las herramientas de programación.
  • La enorme cantidad de información disponible en Internet, y especialmente en lo tocante a Programación, hace que sea muy conveniente saber usar los principales buscadores de la red.
  • El correcto conocimiento del idioma Inglés resulta esencial, puesto que un porcentaje muy elevado de los contenidos de Internet hacen uso de este idioma. En general, el conocimiento de idiomas (inglés, francés, alemán, italiano y cualquier otro) es realmente muy deseable, tanto a efectos de obtener información como desde un punto de vista laboral, por cuanto la empresa (y la Universidad) aprecian mucho la capacidad de comunicación con el resto de la UE.

Finalmente, el interés por cuestiones relacionadas con el manejo de ordenadores para resolver problemas de todo tipo es realmente el único requisito imprescindible para abordar con éxito esta asignatura.

4. Objetivo de la asignatura

Objetivos Generales

  • Conocer el modelo que utilizan los lenguajes de programación para llegar a la resolución de problemas
  • Conocer las bases de la Programación Estructurada
  • Adquirir buenos hábitos de programación
  • Llegar a la construcción de software correcto, robusto y eficiente
  • Conocer el proceso de creación de aplicaciones, desde la creación eficiente de código fuente hasta la generación de aplicaciones
  • Conocer algunos algoritmos clásicos, y ser capaz de formular soluciones algorítmicas para las aplicaciones que deba construir

Objetivos Específicos

  • Conocer un lenguaje basado en el paradigma de programación estructurada
  • Conocer y manejar tipos de datos primitivos
  • Conocer y manejar tipos estructurados homogéneos
  • Conocer y manejar las estructuras de control de flujo
  • Conocer y manejar subprogramas
  • Conocer y manejar técnicas básicas de compilación.

5. Contenidos

Teoría.

1.- Diseño de programas. Lenguajes de programación

2.- Elementos básicos del C.

3.- Operadores, expresiones y funciones de biblioteca.

4.- Sentencias de control alternativas.

5.- Sentencias de control repetitivas.

6.- Arrays: vectores y matrices. Cadenas de caracteres.

7.- Punteros. Relación entre los punteros y los arrays.

8.- Funciones. Paso de parámetros por valor y por referencia.

6. Competencias a adquirir

Básicas / Generales.

-CECB3. Capacidad para comprender y dominar 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.

. CECB4 –Conocimientos básicos  sobre el uso y programación de  los  ordenadores, sistemas operativos, bases de datos y programas informativos máticos con aplicación en ingeniería.

. CECB5-Conocimiento dela estructura,organización, funcionamiento  e interconexión de los  sistemas  informáticos,los  fundamentos de  su programación,y su aplicaciónpara la resolución de problemaspropios de la ingeniería.

Comunes:

. CECC1- Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conformea principios éticos y a la legislación ynormativa vigente.

. CECC6-Conocimiento yaplicación delosprocedimientos algorítmicosbásicos de las tecnologías informáticas paradiseñar soluciones a problemas.

.CECC7 - Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.

.CECC8 - Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente.

 

Específicas.

  • De  tecnología específica:
    • Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una forma computable para la resolución de problemas mediante un sistema.
    • CECO6 - Capacidad para desarrollar yevaluar sistemas interactivos y de presentación de información y su aplicación a la resolución de problemas sencillos dediseñode interacción persona computadora.

Transversales.

  • Conocimientos generales básicos
  • Conocimientos básicos de la profesión
  • Capacidad de análisis y síntesis
  • Capacidad de organizar y planificar
  • Comunicación oral y escrita en la lengua propia
  • Conocimiento de una segunda lengua (preferentemente inglés)
  • Habilidades básicas en el manejo del ordenador
  • Habilidades de gestión de la información
  • Resolución de problemas
  • Trabajo en equipo
  • Responsabilidad y compromiso ético
  • Capacidad de aplicar los conocimientos en la práctica
  • Capacidad de aprender
  • Capacidad de generar nuevas ideas
  • Habilidad para trabajar de forma autónoma y cumplir plazos.

7. Metodologías

Actividades no presenciales

  • Estudio autónomo por parte del estudiante, con especial atención a un enfoque práctico.
  • Revisión bibliográfica y búsqueda de información, especialmente en Internet.
  • Realización de prácticas y trabajos individuales y autónomos.

Actividades presenciales:

  • Lección magistral: exposición de teoría y resolución de problemas
  • Realización de prácticas guiadas en laboratorio
  • Sesiones de tutorías, seguimiento y evaluación, individuales o en grupo
  • Exposición de trabajos y pruebas de evaluación

8. Previsión de Técnicas (Estrategias) Docentes

9. Recursos

Libros de consulta para el alumno.

  • Fundamentos de Programación.  Ed.McGraw-Hill.  JoyanesAguilar
  • Programación estructurada en C.Ed.Prentice Hall.José Rafael García-Bermejo Giner
  • Programación en C. Ed. DIA. Varios autores
  • Programación en C. Ed. McGraw-Hill. Antonakos-Mansfield
  • El   lenguaje deprogramación  C. Ed.Prentice-Hall. Brian Kernighan y Dennis Ritchie
  • Programación en C. Ed. McGraw-Hill. Byron Gottfried
  • Estructuras de datos en C. Prentice-Hall Tannenbaum.
  • El lenguaje de Programación C. Ed. Prentice-Hall. Brian W.Kernighan y Dennins M. Ritchie.

Otras referencias bibliográficas, electrónicas o cualquier otro tipo de recurso.

CodeBlocks        http://www.codeblocks.org/

XCode-Apple     http://developer.apple.com/

Netbeans            http://www.netbeans.org/

Eclipse                 http://www.eclipse.org/

NinGW               http://sourceforge.net/projects/mingw/ 

Gcc-GNU             http://www.gnu.org/

Videos                  http://maxus.fs.usal.es/hothouse/programacion/podcasts.index.html

El servidor maxus (http://maxus.fis.usal.es) contine información relativa a Programación; de hecho se ofrece al alumno una extensa colección de exposiciones teóricas, ejercicios, gráficas, enlaces y sugerencias.

10. Evaluación

Consideraciones generales.

Con objeto de llevar a cabo una evaluación continua, se hace uso de la plataforma virtual para notificar las tareas y fechas de entrega de las mismas.

Entre estas tareas se consideran las asociadas a los temas vistos e teoría y los resultados de las defensas que se soliciten en grupos de prácticas. La evaluación considera especialmente relevantes los aspectos prácticos de la asignatura.

Criterios de evaluación.

Los objetivos generalesyespecíficos de esta asignatura hacen que el conocimiento práctico resulte esencial, y por tanto los criterios de evaluación son básicamente relativos a los aspectos aplicados de los conceptosque se tratan. Seplantearán al alumnovariaspruebas de tipo test, con objeto de comprobar su comprensión de conceptos básicos sin los cuales no es posible abordar los problemas tratados. Adicionalmente, se plantearán trabajos prácticos que, mediante la construcción de programas, muestren un conocimiento práctico adecuado para el estudio de otros temas avanzados (como los que se abordarán en Programación II y III). Por último, se realizará un examen final en que el alumno deberá mostrar por escrito las capacidades adquiridas.

Instrumentos de evaluación.

Se propone una evaluación basada en tres mecanismos:

Evaluación continua: Teoría enfocada a la práctica............................................ ........................................ 10%

Este apartado se refiere a pruebas tipo test efectuadas en Studium o en papel de lectora óptica, en días programados, que se darán a conocer en clase y por la plataforma studium.  El contenido de estas pruebas corresponderá a temas tratados en clases de teoría y de prácticas, con enfoque teórico práctico. Habrá dos pruebas y cada una de ellas tendrá el peso del 5%.

Evaluación continua: Prácticas ............... ................................................................  20%

Se realizarán dos pruebas prácticas sobre papel en días programados, que se darán a conocer en clase y por la plataforma studium. El contenido de estas pruebas corresponderá a temas tratados en las prácticas. Habrá dos pruebas y cada una de ellas tendrá el peso del 10%.

Realización de exámenes . ....................................................................................................       70%

El contenido del examen será teórico-práctico (parte tipo test y ejercicios prácticos a desarrollar sobre papel), y tendrá por objeto comprobar la correcta comprensión de los conceptos abordados en la asignatura, así como las capacidades adquiridas por el alumno.

Nota.- La nota de evaluación continua tipo test y de prácticas será la que se obtenga durante el desarrollo del curso mantendrá la nota para la convocatoria extraordinaria del mismo curso académico.

Recomendaciones para la evaluación.

  • Se recomienda estudiar y practicar los aspectos básicos de la programación estructurada, por ser este el tema principal de Programación I.
  • Se recomienda conocer de forma práctica los aspectos básicos y fundamentales del proceso de compilación (línea de órdenes), relegando. Aspectos más avanzados (IDE) para Programación II.
  • Se recomienda conocer de manera práctica las estructuras de datos y de control vistas a lo largo del curso.
  • Se recomienda conocer de forma práctica el uso de tipos de datos estructurados, así como el de los mecanismos sencillos de iteración.
  • Se recomienda conocer de forma práctica el uso de subprogramas, paso de parámetros y devolución de resultados por distintas vías.
  • Finalmente, se recomienda construir programas partiendo de cero, empleando únicamente las herramientas básicas de edición y compilación. Vistas a lo largo del curso.

Recomendaciones para la recuperación.

Se recomienda utilizar un enfoque totalmente práctico para abordar esta asignatura. Las técnicas memorísticas producen siempre resultados nefastos, puesto que un pequeño cambio en los requisitos de un programa puede dar lugar al uso de técnicas muy distintas de las que quizá se considerasen inicialmente.

Se recomienda “jugar” haciendo programas. Los conocimientos adquiridos de forma autónoma no se olvidan fácilmente, aunque se cuente siempre con la ayuda del profesor.