Descripción: Clase 1 de Programación, Prof. Gonzalo Müller,
Programación Clase 1
Prof. Gonzalo Müller
[email protected]
Facultad de Ingeniería Universidad Central de Venezuela
Clases
Clases Teoría: 2 horas académicas. Están estructuradas de la siguiente manera:
Resumen de clase anterior.
Conceptos.
Ejemplos: Profesor.
Ejercicios: Alumnos → Intervenciones.
Resumen de clase.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 2
Clases
Laboratorios: Grupos de dos estudiantes (no fijo - aleatorio). Profesor y Preparador. 1 hora 50 minutos. Están estructurados de la siguiente manera:
Practica Mecanografía.
Análisis y Diseño.
Codificación.
Evaluados y no evaluados (→ se indica en próximo) Programación – Prof. Gonzalo Müller – Clase 1 – GM - 3
Evaluación
Nota Teoría ≥ 9, Nota Laboratorio ≥ 10, Asistencia Teoría > 75% y Asistencia Laboratorio > 75%: Nota Teoría: 60%
Exámenes.
Puntos Extras:
Evaluación continua:
Asignaciones (Obligatoria: –2 puntos c/u). Intervenciones (Opcional: +0.5 puntos c/u). Se reparten los puntos en forma equitativa entre las notas de los exámenes. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 4
Evaluación
Nota Teoría ≥ 9, Nota Laboratorio ≥ 10, Asistencia Teoría > 75% y Asistencia Laboratorio > 75%: Nota Teoría: 60% Nota Laboratorio: 40%
Trabajos de Laboratorio.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 5
Evaluación
Nota Teoría ≥ 9, Nota Laboratorio ≥ 10, Asistencia Teoría > 75% y Asistencia Laboratorio > 75%: Nota Teoría: 60% Nota Laboratorio: 40% Puntos Extras en Definitiva:
+1 punto por Constancia (Definitiva ≥ 13.0 y ±1.5)
+1 punto por Superación (Último examen ≥ 13.0)
+1 punto por Sobresaliente (Definitiva ≥ 10.0 y Nota Examen ≥ 13.0) Programación – Prof. Gonzalo Müller – Clase 1 – GM - 6
Evaluación
Nota Laboratorio < 10 y Asistencia Teoría > 75% y Asistencia Laboratorio > 75%: Nota definitiva: Nota de Laboratorio < 10.
Nota de Teoría < 9, Nota Laboratorio ≥ 10 y Asistencia Teoría > 75% y Asistencia Laboratorio > 75%:
Nota definitiva: Nota Teoría < 9.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 7
Evaluación
Asistencia Teoría ≤ 75% o Asistencia Laboratorio ≤ 75%: NO ASISTIO.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 8
Evaluación
Examen Recuperativo (puede ser fuera de horario) Si Nota Teoría > 7 o Inasistencia Opcional/Global/Sustituye la nota más baja de Teoría o inasistencias a los mismos.
Laboratorios Recuperativo(puede ser fuera de horario) Al finalizar Javascript, Al finalizar el curso Opcional/Global/Sustituye las 2 ó 3 notas más bajas de Laboratorio o inasistencias a los mismos.
Asignación Recuperativa Al finalizar Javascript, Al finalizar el curso Programación – Prof. Gonzalo Müller – Clase 1 – GM - 9
Evaluación Teoría
Consta de 3 parciales:
33,3
1 a 9, Individual
Fecha Tentativa Semana 6
33,3
1 a 15, Grupal
Semana 12
33,3
1 a 20, Individual
Semana 16
%
Descripción
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 10
Asistencia
Asistencia Teoría > 75%: Asistencia a actividades evaluadas de Teoría: Exámenes, Asignaciones.
Asistencia a Laboratorios > 75%. Ejemplo:
Si se realizan 6 evaluaciones y no se asiste a 2 evaluaciones y se asiste a todos los laboratorios, se pierde la materia por inasistencias en la teoría.
Si se realizan 12 laboratorios y no se asiste a 3 de ellos y se asiste a todas las evaluaciones de teoría, se pierde la materia por inasistencias en el laboratorio.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 11
Consultas
Profesor: Oficina. Correo electrónico:
[email protected]
Preparadores. Sala de Computación.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 12
Lenguaje de Programación
Lenguaje: JavaScript, C y C++. Sistema Operativo: Linux. Herramienta de Desarrollo: Linux Editor.
Windows (Casa) Notepad++.
Mozilla Firefox. Google Chrome. Codeblocks.
Mozilla Firefox. Google Chrome. Codeblocks.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 13
Bibliografía
... Laminas: www.scribd.com/gmullerb Material Digital. Guías: programacion.gmullerb.heliohost.org
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 14
Otros
Horario. Celulares.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 15
Evaluación
80% - 100% ? Programación – Prof. Gonzalo Müller – Clase 1 – GM - 16
Evaluación Todos tiene
20 Programación – Prof. Gonzalo Müller – Clase 1 – GM - 17
Evaluación y Estudio Todos tiene
20 Programación – Prof. Gonzalo Müller – Clase 1 – GM - 18
Estudio
Mayor esfuerzo al comienzo Ejercicios Revisión
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 19
Estructura del curso Parte 1
Algoritmia Javascript Parte 2
Datos C Parte 3
Complementos Javascript, C y C++
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 20
El Programador
Un programador es aquel: Tiene la capacidad para describir la solución a un problema a través de un secuencia de pasos. Es capaz de transformar esa secuencia de pasos a un lenguaje que la computadora puede efectuar. Conoce las características, el funcionamiento de la computadora y las tecnología asociadas. Establece los tipos de datos y diseña las estructuras de datos requeridas a utilizar en la resolución de un problema. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 21
El Programador
El programador debe: Analizar un totalmente.
problema
hasta
comprenderlo
Diseñar una estrategia descrita por los pasos requeridos para resolver el problema. Conocer las computador.
capacidades
y
limitaciones
Dominar el lenguaje de programación.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 22
del
Fases de la Programación
Básicamente existen dos fases: 1. Análisis y Diseño. 2. Codificación.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 23
Fases de la Programación
60% Análisis y Diseño. Depende: Conocimiento del problema. Experiencia. 30% Codificación. Depende: Dominio del lenguaje. Conocimiento del computador y asociadas. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 24
tecnologías
Fases de la Programación
Recomendación: Programar directamente el computador es más cómodo, pero:
Analizar, Diseñar, Codificar y Mecanografiar al mismo tiempo.
Esto aumenta las probabilidades de cometer errores.
Realizar las fases por separado: Análisis y Diseño: en papel Codificación: en papel o en computador.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 25
Algoritmia
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 26
Metodología para resolución de un problema
Pasos a seguir en la resolución de un problema: 1. Definición del problema. 2. Análisis del problema. 3. Diseño del Algoritmo. 4. Prueba del Algoritmo. 5. Codificación del Algoritmo.
Definición del problema Análisis del problema Diseño del Algoritmo Prueba del Algoritmo Codificación del Algoritmo
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 27
Metodología para resolución de un problema 1. Definición del problema. Se debe estar claro del objetivo. El enunciado debe ser examinado en busca de:
La información disponible.
La información que debe buscarse.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 28
Metodología para resolución de un problema
Problema → Una Solución Cuál es el Problema ? ≡ Objetivo Objetivo Dirección: Cual es la ruta que se debe tomar para solucionar el problema.
El camino lógico para llegar hasta el.
Meta: Hasta donde se debe llegar para solucionar el problema.
No perder de vista el objetivo Programación – Prof. Gonzalo Müller – Clase 1 – GM - 29
Metodología para resolución de un problema
Camino Lógico
No tener claro el Objetivo! Programación – Prof. Gonzalo Müller – Clase 1 – GM - 30
Objetivo
Metodología para resolución de un problema
Ejemplos de Objetivos: Graduarse de Ingeniero. Comprar el libro Harry Potter 8. Comer una hamburguesa. Generar los primeros 1000 números primos Obtener la solución optima de un problema matemático no lineal con restricciones
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 31
Metodología para resolución de un problema 2. Análisis del problema. Establecer los requerimientos. Establecer las restricciones. Establecer la relaciones entre los elementos que definen el problema. Establecer las entradas y salidas. Utilizar diagramas, esquemas, etc. Es necesario comprender el problema y la teoría asociada. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 32
Metodología para resolución de un problema Ejemplo 1.1: Se requiere un programa para obtener las raíces reales de una ecuación cuadrática, realizar el análisis detallado del mismo.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 33
Metodología para resolución de un problema 3. Diseño del Algoritmo. Es una arte y requiere de práctica.
Se comienza con un bosquejo inicial y se refina continuamente.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 34
Metodología para resolución de un problema 4. Prueba de un Algoritmo: Permite con un cierto grado de certeza establecer que se puede alcanzar el objetivo al ser ejecutado el algoritmo. Corrida en frío. 5. Codificación de un Algoritmo: Proceso por el cual convertimos un algoritmo en un listado de instrucciones que se ajusta al vocabulario del lenguaje de programación.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 35
Metodología para resolución de un problema
Finalmente: Definición del problema Análisis del problema Diseño del algoritmo
Prueba del Algoritmo
Codificación del Algoritmo Programación – Prof. Gonzalo Müller – Clase 1 – GM - 36
Algoritmo Es el conjunto detallado de pasos secuénciales y ordenados que permiten lograr un objetivo
Es el camino que permite llegar al objetivo.
Algoritmo 1 Algoritmo 2 Objetivo Algoritmo 3 Algoritmo 4 Programación – Prof. Gonzalo Müller – Clase 1 – GM - 37
Algoritmo
Un algoritmo debe ser: Secuencial: Cada paso debe ser ejecutado uno detrás de otro. Ordenado: Ya que la posición del paso es fundamental. Detallado: Deben estar lo suficientemente detallado para que no exista ninguna duda en su puesta en marcha.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 38
Algoritmo
Tipos de Algoritmos: Informales: Aquellos que no implementados en un computador.
pueden
ser
El ejecutor es el ser humano El avance de la tecnología esta reduciendo esta clase de algoritmos.
Computacionales: Aquellos algoritmos que deben ser preferiblemente implementados en un computador, debido a su velocidad de procesamiento. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 39
Algoritmo
Ejemplos de Algoritmos Informales: Algoritmo para Graduarse de Ingeniero. Algoritmo para Comprar el libro Harry Potter 8. Algoritmo para Comer una hamburguesa.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 40
Algoritmo
Ejemplos de Algoritmos Computacionales: Algoritmo para Generar los primeros 1000 números primos. Algoritmo para Obtener la solución optima de un problema matemático no lineal con restricciones. Algoritmo para ordenar de n números.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 41
Algoritmos
Características de buen un algoritmo: Finito: Siempre termina luego de la ejecución de un número finito de pasos. Definido: Se obtiene el mismo resultado a partir de los mismos datos. Preciso: No debe contener ambigüedades, no pude ser sujeto de interpretación.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 42
Algoritmos
Partes de un algoritmo: Entrada: Datos necesarios para comenzar el proceso. Proceso: Se realizan todas las operaciones y cálculos necesarios con los datos de entrada. Salida: Se obtiene un resultado.
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 43
Algoritmos
Proceso Entrada
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 44
Salida
Algoritmo Ejemplo 1.3: Objetivo: Graduarse de Ingeniero. Algoritmo: Paso 1: Aprobar Materia A. Paso 2: Aprobar Materia B. . . . Paso n: Aprobar Ultima Materia. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 45
Algoritmo Ejemplo 1.4: Objetivo: Comprar el libro Harry Potter 8. Algoritmo: Paso 1: Hacer una lista de n librerías Paso 2: Si no estamos en la librería k, entonces: Paso 2.1: Salir del lugar donde estamos. Se ejecutan estos pasos Si la condición se cumple Paso 2.2: Dirigirnos a la librería k. Paso 3: Solicitar el libro Paso 4: Si no lo tiene, entonces: Paso 4.1: Hacer k = k + 1 Se ejecutan estos pasos Si la condición se cumple Paso 4.2: Ir al Paso 2 Programación – Prof. Gonzalo Müller – Clase 1 – GM - 46
Algoritmo
Ambos algoritmos tiene errores:
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 47
Algoritmo
Ambos algoritmos tiene errores: El 1º
Es Ambiguo
No es detallado
El 2º
No es Finito
No alcanza el objetivo
Programación – Prof. Gonzalo Müller – Clase 1 – GM - 48
Algoritmo Paso 1: Hacer una lista de n librerías Paso 2: Hacer k = 1 Paso 3: Si no estamos en la librería k, entonces: Paso 3.1: Salir del lugar donde estamos. Paso 3.2: Dirigirnos a la librería k. Paso 5: Solicitar el libro Paso 6: Si lo tiene, entonces: Paso 6.1: Cancelar el libro, Detener Paso 7: Si no, entonces: Paso 7.1: Hacer k = k + 1 Paso 7.2 : Si ya visitamos todas las librerías (k > n), entonces: Paso 7.2.1: No es posible encontrar el libro, Detener Paso 7.3: Si no, Ir al Paso 3 Programación – Prof. Gonzalo Müller – Clase 1 – GM - 49
Ejercicio
Desarrollar un algoritmo para: 1. Comer en el comedor universitario, UCV. Partiendo de que estoy en la universidad. 2. Bajar de peso. 3. Llegar a la universidad, UCV. Partiendo de que me encuentro en la plaza Brion. 4. Lavar la loza. 5. Graduarse de Ingeniero. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 50
Resumen
Pautas de curso. www.scribd.com/gmullerb
[email protected]
Definición de Programador. Fases de la Programación. Metodología para resolución de un problema: Definición, Análisis, Diseño del algoritmo, Prueba del Algoritmo e Implementación
Algoritmo: Definición, Características, Partes. Programación – Prof. Gonzalo Müller – Clase 1 – GM - 51