Fundamentos de programación

18
pág. 1 Fundamentos de Programación

Transcript of Fundamentos de programación

Page 1: Fundamentos de programación

pág. 1

Fundamentos de Programación

Page 2: Fundamentos de programación

pág. 2

1.- DATOS DE LA ASIGNATURA

Nombre de la asignatura: Fundamentos de programación

Carrera: Sistemas Computacionales

Clave de la asignatura: SCD-1008

SATCA1 2-3-5

2.- PRESENTACIÓN

Caracterización de la asignatura.

Esta asignatura aporta, al perfil del ingeniero, la capacidad para desarrollar

un pensamiento lógico, identificar el proceso de creación de un programa

y desarrollo de algoritmos para resolver problemas.

La asignatura proporciona al estudiante de ingeniería unas herramientas

para resolver problemas de aplicaciones de la vida ordinaria y de

aplicaciones de la ingeniería.

Está diseñada para el logro de competencias específicas dirigidas al

aprendizaje de los dominios: manejo de consola y diseño de algoritmos.

Comprenderá los conceptos básicos de la programación y escribirá

expresiones aritméticas y lógicas en un lenguaje de programación. Así

como el uso y funcionamiento de las estructuras secuenciales, selectivas,

arreglos unidimensionales y multidimensionales en el desarrollo de

aplicaciones. Será capaz de aplicarlos al construir y desarrollar

aplicaciones de software que requieran dichas estructuras.

Este curso genera las competencias necesarias para que el alumno

desarrolle aplicaciones que den solución a los problemas que le plantee la

vida diaria.

Fundamentos de programación es el soporte directo de las asignaturas:

programación orientada a objetos, estructura de datos, tópicos avanzados

de programación y de forma indirecta se relaciona con el desarrollo de

sistemas de software, sistemas operativos y programación de sistemas.

Page 3: Fundamentos de programación

pág. 3

Intención didáctica.

La asignatura proporciona al alumno los conceptos esenciales del diseño

algorítmico, el temario se organiza en cinco unidades.

En la primera unidad se estudian los conceptos básicos para introducir al

estudiante en la programación con la finalidad de obtener las bases

conceptuales para abordar las siguientes unidades temáticas.

El análisis y desarrollo de algoritmos, como segunda unidad, es con la

finalidad de dar Sistema de asignación y transferencia de créditos

académicos solución a problemas reales utilizando el razonamiento lógico.

La tercera unidad, tiene la finalidad de obtener y aplicar herramientas

necesarias para diseñar e implementar soluciones en un lenguaje de

programación, utilizando los conceptos adquiridos.

La cuarta unidad tiene como objetivo que el alumno identifique,

comprenda, seleccione e implemente la estructura de control más

adecuada a un problema específico, así como el diseño de bloques de

códigos reutilizables, dado que es común encontrar en la práctica

problemas cuyas operaciones están condicionadas o deban ejecutarse un

número repetido de veces.

La quinta unidad tiene la finalidad de implementar arreglos para una gran

variedad de propósitos que proporcionan un medio conveniente de

agrupar variables relacionadas y organizar datos de una manera que

puedan ser fácilmente procesados.

Page 4: Fundamentos de programación

pág. 4

3.- COMPETENCIAS A DESARROLLAR

Competencias específicas:

Analizar, diseñar y desarrollar soluciones de problemas reales utilizando

algoritmos computacionales para implementarlos en un lenguaje de

programación.

Competencias genéricas:

Competencias instrumentales

• Capacidad de análisis y síntesis.

• Capacidad de pensamiento lógico, algorítmico, heurístico, analítico y

sintético.

• Resolución de problemas.

• Toma de decisiones.

• Destrezas tecnológicas relacionadas con el uso de maquinaria, destrezas

de computación.

• Búsqueda y manejo de información.

Competencias interpersonales

• Capacidad crítica y autocrítica

• Trabajo en equipo

• Habilidades interpersonales Competencias sistémicas

• Capacidad de aplicar los conocimientos en la práctica

• Habilidades de investigación

• Capacidad de aprender

• Capacidad de generar nuevas ideas (creatividad).

• Habilidad para trabajar en forma autónoma.

Búsqueda del logro

Page 5: Fundamentos de programación

pág. 5

5.- OBJETIVO(S) GENERAL(ES) DEL CURSO

Analizar, diseñar y desarrollar soluciones de problemas reales utilizando

algoritmos computacionales para implementarlos en un lenguaje de

programación.

Page 6: Fundamentos de programación

pág. 6

TEMARIO

Unidad Temas Subtemas

1 Conceptos Básicos 1.1 Clasificación del software de: sistemas y

aplicación.

1.2 Algoritmo.

1.3 Lenguaje de Programación.

1.4 Programa.

1.5 Programación.

1.6 Paradigmas de programación.

1.7 Editores de texto.

1.8 Compiladores e intérpretes.

1.9 Ejecutables.

1.10 Consola de línea de comandos.

2 Algoritmos 2.1 Análisis de problemas.

2.2 Representación de algoritmos: gráfica y pseudocódigo.

2.3 Diseño de algoritmos aplicados a problemas.

2.4 Diseño algorítmico de funciones

3 Introducción a la

Programación

3.1 Características del lenguaje de programación

3.2 Estructura básica de un programa.

3.3 Traducción de un programa: compilación, enlace de un programa,

errores en tiempo de compilación.

3.4 Ejecución de un programa.

3.5 Elementos del lenguaje: datos, literales y constantes, identificadores,

variables, parámetros, operadores, entrada y salida de datos.

3.6 Errores en tiempo de ejecución.

4 Control de flujo. 4.1 Estructuras secuenciales.

4.2 Estructuras selectivas: simple, doble y múltiple.

4.3 Estructuras iterativas: repetir mientras, hasta, desde

4.4 Diseño e implementación de funciones

5 Arreglos 5.1 Unidimensionales: conceptos básicos, operaciones y

aplicaciones.

Page 7: Fundamentos de programación

pág. 7

5.2 Multidimensionales: conceptos básicos, operaciones y aplicaciones.

Page 8: Fundamentos de programación

pág. 8

8.- SUGERENCIAS DIDÁCTICAS

El profesor debe:

Ser conocedor de la disciplina que está bajo su responsabilidad.

Desarrollar la capacidad para coordinar y trabajar en equipo; orientar el

trabajo del estudiante, potenciar en él la autonomía, el trabajo cooperativo

y la toma de decisiones. Mostrar flexibilidad en el seguimiento del proceso

formativo y propiciar la interacción entre estudiantes.

10.- UNIDADES DE APRENDIZAJE

Unidad 1: Conceptos Básicos

Competencia específica a desarrollar Actividades de Aprendizaje

Dominar los conceptos básicos de la programación.

• Investigar la clasificación del software.

• Reconocer los conceptos básicos: algoritmo, programa, programación,

paradigmas de programación utilizando mapas conceptuales, mentales,

cuadros sinópticos, etc.

• Conocer el entorno de un lenguaje de programación

• Manejar la consola para compilar y ejecutar programas.

11.- FUENTES DE INFORMACIÓN

1. Luis Joyanes Aguilar, Fundamentos de Programación, Ed. Prentice Hall.

2. Jesús J. García Molina Introducción a la programación un Enfoque

Algorítmico, Ed.

Paraninfo.

3. Leobardo López Román, Metodología de la Programación Orientada a

Objetos, Ed. Alfaomega.

4. Cairo Osvaldo, Metodología de la Programación, Ed. Alfaomega.

5. Deitel y Deitel. Como Programar en C++ quinta Edición. Prentice Hall.

6. Deitel y Deitel. Como Programar en C# quinta Edición. Prentice Hall.

7. Deitel y Deitel. Java como programar. Séptima edición. Prentice Hall.

Page 9: Fundamentos de programación

pág. 9

Índice Unidad 3 Introducción a la programación ....................................................................... 11

Forma de evaluar ................................................................................................................ 11

Programa en Asignatura ......................................................................................................... 11

Objetivos docentes específicos ..................................................................................... 12

Competencias específicas ............................................................................................... 12

Contenidos de la asignatura ........................................................................................... 12

Actividades formativas de primer cuatrimestre ......................................................... 12

Horas presenciales por video llamada: 36 .................................................................. 13

Horas no presenciales: 45 ............................................................................................... 13

Metodología de enseñanza aprendizaje ....................................................................... 13

Competencias que desarrolla ......................................................................................... 14

Prácticas de Laboratorio .................................................................................................. 14

Horas no presenciales: 45 ............................................................................................... 14

Metodología de enseñanza aprendizaje: ...................................................................... 14

Competencias que desarrolla ......................................................................................... 14

Actividades formativas de segundo cuatrimestre ..................................................... 15

Clases teóricas ................................................................................................................... 15

Horas presenciales: 36 ..................................................................................................... 15

Horas no presenciales: 45 ............................................................................................... 15

Metodología de enseñanza aprendizaje: ...................................................................... 15

Competencias que desarrolla ......................................................................................... 16

Evaluación ordinaria ......................................................................................................... 16

Evaluación alternativa ....................................................................................................... 16

Unidad 3 Introducción a la Programación ......................................................................... 16

Objetivo: ................................................................................................................................. 16

UNIDAD 3 Introducción a la Programación ...........................Error! Bookmark not defined.

Objetivo: .....................................................................................Error! Bookmark not defined.

Teoría de Introducción a la Programación ....................................................................... 17

3.1 Características del lenguaje de programación .......................................................... 17

1. ACTIVIDAD DE INTRODUCION ALA PROGRAMACION ................................................... 18

Page 10: Fundamentos de programación

pág. 10

Page 11: Fundamentos de programación

pág. 11

Unidad 3 Introducción a la programación

Grupo F1

Forma de evaluar

Examen%30(Practico en línea)

Prácticas%40(Programas)

Tareas%30(Investigaciones o aportaciones)

Programa en Asignatura

Fecha 01-08-2014 Hora 10:58 am

Page 12: Fundamentos de programación

pág. 12

Objetivos docentes específicos

Aprender una metodología para el diseño, implementación y documentación de

programas

Apreciar el papel central que juega la abstracción en la tarea de programar

Conocer estructuras de datos, algoritmos y esquemas de uso general

Introducir el paradigma de la POO

Aprender un lenguaje de programación orientado a objetos

Aprender nociones básicas del lenguaje de programación C

Competencias específicas

E03: 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

E04: 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

E05: 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

Contenidos de la asignatura

Introducción a la Programación Orientada a Objetos

Elementos del lenguaje Java

Diseño de tipos

Colecciones

Tratamientos secuenciales

Implementación y reutilización

Introducción al lenguaje de programación C

Actividades formativas de primer cuatrimestre

Clases teóricas

Page 13: Fundamentos de programación

pág. 13

Horas presenciales por video llamada: 36

Horas no presenciales: 45

Metodología de enseñanza aprendizaje

Las clases de teoría son aquellas en las que el profesor expone los

principales conceptos teóricos, correspondientes a los temas del

programa. Se imparten en un aula de teoría con la pizarra como medio

didáctico fundamental y con el apoyo del ordenador para mostrar

esquemas algorítmicos complejos o código fuente. La labor del alumno en

estas clases consistirá básicamente en trasladar a sus apuntes las

principales ideas que el profesor transmita y preguntar las dudas que le

puedan surgir.

Las clases de problemas se centran, sobre todo, en la resolución de

ejercicios y ejemplos, una vez expuestos los conceptos sobre los cuales

estos están basados. Los ejercicios consisten en la resolución de

algoritmos mediante la aplicación de esquemas de creciente dificultad a

lo largo del curso; dichos esquemas se describen en el lenguaje de

programación que se utilizará posteriormente en las clases de laboratorio.

La labor del alumno en estas clases consistirá básicamente en participar

en la resolución de los ejercicios y problemas propuestos por el profesor.

Una vez en su casa, el alumno debería repasar la clase, comprendiendo

los conceptos teóricos y repasando los ejercicios, por si hubiera alguna

duda o alternativa en su solución. Estas dudas podrán ser planteadas al

profesor en la siguiente clase o más tranquilamente en su horario de

tutorías.

Cada tema del curso tendrá asociado uno o varios boletines de

problemas. Algunos problemas de estos boletines se resolverán en clase

de problemas, otros se resolverán en el laboratorio y el resto deberá

realizarlos el alumno por su propia cuenta.

Page 14: Fundamentos de programación

pág. 14

Competencias que desarrolla

Conocimientos básicos de la profesión

Capacidad de análisis y síntesis

Resolución de problemas

Capacidad de aplicar los conocimientos a la práctica

Inquietud por la calidad

E03: 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

Prácticas de Laboratorio

Horas no presenciales: 45

Metodología de enseñanza aprendizaje:

Las clases de prácticas se realizan en un aula de laboratorio que dispone

de ordenadores con el software necesario para implementar los

programas. El grupo de clase se divide en dos o tres subgrupos de

prácticas y cada subgrupo recibe docencia de un profesor.

El profesor comenzará la clase repasando los conceptos que se

trabajarán en la misma. Seguidamente planteará y resolverá varios

ejercicios del boletín de problemas con la participación de los alumnos.

Competencias que desarrolla

Resolución de problemas

Habilidades básicas de manejo de ordenador

Capacidad de aplicar los conocimientos a la práctica

Habilidad para trabajar de forma autónoma

Inquietud por la calidad

E04: 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

E05: 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

Page 15: Fundamentos de programación

pág. 15

Actividades formativas de segundo cuatrimestre

Clases teóricas

Horas presenciales: 36

Horas no presenciales: 45

Metodología de enseñanza aprendizaje:

Las clases de teoría son aquellas en las que el profesor expone los

principales conceptos teóricos, correspondientes a los temas del

programa. Se imparten en un aula de teoría con la pizarra como medio

didáctico fundamental y con el apoyo del ordenador para mostrar

esquemas algorítmicos complejos o código fuente. La labor del alumno en

estas clases consistirá básicamente en trasladar a sus apuntes las

principales ideas que el profesor transmita y preguntar las dudas que le

puedan surgir.

Las clases de problemas se centran, sobre todo, en la resolución de

ejercicios y ejemplos, una vez expuestos los conceptos sobre los cuales

estos están basados. Los ejercicios consisten en la resolución de

algoritmos mediante la aplicación de esquemas de creciente dificultad a

lo largo del curso; dichos esquemas se describen en el lenguaje de

programación que se utilizará posteriormente en las clases de laboratorio.

La labor del alumno en estas clases consistirá básicamente en participar

en la resolución de los ejercicios y problemas propuestos por el profesor.

Una vez en su casa, el alumno debería repasar la clase, comprendiendo

los conceptos teóricos y repasando los ejercicios, por si hubiera alguna

duda o alternativa en su solución. Estas dudas podrán ser planteadas al

profesor en la siguiente clase o más tranquilamente en su horario de

tutorías.

Cada tema del curso tendrá asociado uno o varios boletines de

problemas. Algunos problemas de estos boletines se resolverán en clase

de problemas, otros se resolverán en el laboratorio y el resto deberá

realizarlos el alumno por su propia cuenta.

Page 16: Fundamentos de programación

pág. 16

Competencias que desarrolla

Conocimientos básicos de la profesión

Capacidad de análisis y síntesis

Resolución de problemas

Capacidad de aplicar los conocimientos a la práctica

Inquietud por la calidad

E03: 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

Evaluación ordinaria

La evaluación ordinaria consiste en el desarrollo y defensa de un trabajo

práctico, que se hará de forma continuada a lo largo del curso, y la realización

de una prueba escrita al final del mismo. La calificación obtenida en el trabajo

práctico será válida para todas las convocatorias del curso.

Evaluación alternativa

La evaluación alternativa consiste en el desarrollo y defensa de un trabajo

práctico, que se hará de forma continuada a lo largo del curso, y la realización

de dos pruebas escritas, una por cada cuatrimestre. Los alumnos que hayan

superado una de las pruebas escritas pueden presentarse únicamente a la otra

en el examen final.

UNIDAD 3 Introducción a la Programación

Objetivo:

Presentar todo el panorama histórico desde los inicios hasta los más recientes

avances a fin de que el estudiante comprenda ideas y principios básicos que

llevaron al desarrollo de las computadoras modernas.

Que el estudiante conozca la arquitectura de un computador y sus componentes

de hardware y software.

Page 17: Fundamentos de programación

pág. 17

Teoría de Introducción a la Programación

3.1 Características del lenguaje de programación

Un lenguaje de programación es un idioma artificial diseñado para

expresar procesos que pueden ser llevadas a cabo por máquinas como las

computadoras. Pueden usarse para crear programas que controlen el

comportamiento físico y lógico de una máquina, para expresar algoritmos con

precisión, o como modo de comunicación humana.1 Está formado por un

conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura

y el significado de sus elementos y expresiones. Al proceso por el cual se

escribe, se prueba, se depura, se compila y se mantiene el código fuente de

un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de

un programa de computadora, mediante la aplicación de procedimientos lógicos,

a través de los siguientes pasos:

El desarrollo lógico del programa para resolver un problema en particular.

Escritura de la lógica del programa empleando un lenguaje de programación

específico (codificación del programa).

Ensamblaje o compilación del programa hasta convertirlo en lenguaje de

máquina.

Prueba y depuración del programa.

Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de

programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los

lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje

para el marcado de páginas web que no es propiamente un lenguaje de

programación, sino un conjunto de instrucciones que permiten diseñar el

contenido de los documentos).

Permite especificar de manera precisa sobre qué datos debe operar una

computadora, cómo deben ser almacenados o transmitidos y qué acciones debe

tomar bajo una variada gama de circunstancias. Todo esto, a través de

un lenguaje que intenta estar relativamente próximo al lenguaje humano o

natural. Una característica relevante de los lenguajes de programación es

Page 18: Fundamentos de programación

pág. 18

precisamente que más de un programador pueda usar un conjunto común de

instrucciones que sean comprendidas entre ellos para realizar la construcción de

un programa de forma colaborativa.

1. ACTIVIDAD DE INTRODUCION ALA PROGRAMACION INSTALAR CMAPTOOL

REALIZAR UN MAPA CONCEPTUAL DEL TEMA INTRODUCCIÓN A LA PROGRAMACIÓN CON

AYUDA DEL PROGRAMA CMAPTOOL Y ENTREGAR EVIDENCIAS DE LA INSTALACIÓN Y

MANDARLO AL CORREO YA INDICADO