IIC1102 - Introducción a la Programación - Sección 4 Introducción Programa y Carla Vairetti cvairetti@gmail.com Pontifícia Universidad Católica 5 de Marzo de 2009
Esquema 1 Programa del curso 2 3
Esquema 1 Programa del curso 2 3
Esquema 1 Programa del curso 2 3
Esquema Programa del curso 1 Programa del curso 2 3
Programa del curso El objetivo primordial del curso es evaluar la capacidad para resolver problemas de diversa índole mediante la programación del computador. Usando el enfoque de la programación orientada a objetos (modelos + algoritmos) Utilizando el lenguaje de programación Java.
Esquema Programa del curso 1 Programa del curso 2 3
Programa del curso El contenido mínimo que veremos en el curso será: Introducción a la programación orientada a objetos. Manejo de objetos y clases de objetos. Integración de clases y objetos. Control de flujo y tipos de datos. Strings. Arreglos, ordenamiento y búsqueda. Recursión. Archivos. Simulación.
Esquema Programa del curso 1 Programa del curso 2 3
Programa del curso Las cátedras se dictarán en el aula B11 los días: Martes Módulo 4 Jueves Módulo 4 Las ayudantías se dictarán los días: Martes Módulos 1 y 2 Los laboratorios se dictarán los días: Jueves Módulos 1 y 2
Observaciones Laboratorio Deben tener en cuenta los siguientes puntos: Los laboratorios son estríctamente individuales Se penaliza con un 1.0 la copia. Hay software para detectar. No se arriesguen. SOLO se puede usar material de la página Web: http://web.ing.puc.cl/ cmvairet/iic1102-4/ No se aceptan entregas atrasadas. Los laboratorios evaluados solamente se enviarán al buzón indicado.
Esquema Programa del curso 1 Programa del curso 2 3
Programa del curso La nota final del curso se basará en: 3 interrogaciones. 3 laboratorios evaluados (mas una recuperativa en caso de necesidad) 3 tareas 1 examen final. Todas las evaluaciones son obligatorias y de carácter estríctamente individual.
Pruebas Programa del curso Las fechas de interrogaciones son: Interrogación 1: 2 de Abril Interrogación 2: 7 de Mayo Interrogación 3: 11 de Junio La fecha del examen es: Examen: 1 de Julio
Laboratorios evaluados Programa del curso Las fechas de los laboratorios evaluados son: Laboratorio 1: 9 de Abril Laboratorio 2: 14 de Mayo Laboratorio 3: 18 de Junio Laboratorio recuperativo: 25 de Junio
Tareas Programa del curso Las fechas de las tareas son: Tarea 1: 13 de Abril Tarea 2: 18 de Mayo Tarea 3: 22 de Junio
Promedio Final Programa del curso Ii la nota de la interrogación número i. L el promedio de notas de los laboratorios evaluados. T el promedio de notas de las tareas. E la nota del examen. Para aprobar el curso, es necesario cumplir 3 condiciones: 2/3(I 1+I 2+I 3+T + L)+1/3E 4,0 L 4,0 T 3,0 E 3,5 Cumple NF =2/3(I 1+I 2+I 3+T + L)+1/3E No cumple NF = min{3,9, 2/3(I 1+I 2+I 3+T + L) + 1/3E}
Observaciones Importantes Existen varias consideraciones a tener presente: Asistencia a clases no es obligatoria. Se les recomienda asistir y participar en clases esto puede ser considerado en el cierre de notas. Todas las evaluaciones de este curso deben ser respondidas por los alumnos usando lápiz pasta. Aquellos alumnos que no rindan una interrogación. Justificado: reemplazarán la nota con la nota del examen. Injustificado: la nota será un 1,0. Cualquier forma de deshonestidad académica será sancionada con la máxima rigurosidad permitida por el reglamento.
Esquema Programa del curso 1 Programa del curso 2 3
Observaciones Importantes Libros: Web: C. Thomas Wu. An introduction to Object Oriented Programming with Java. McGraw-Hill, 2001. H.M. Deitel, P.J. Deitel. Java - How to Program (5th ed.). Prentice Hall, 2003. http://java.sun.com/docs/books/tutorial http://www.programacion.com/java/tutorial/java basico http://www.cica.es/formacion/javatut/intro/tabla.html
Esquema 1 Programa del curso 2 3
Definición Un problema suele ser un asunto del que se espera una solución. Lo cual requiere destreza. Programar es la disciplina para solucionar problemas utilizando el computador como herramienta. CUIDADO!!: Las soluciones no son únicas. Algunas son mejores que otras. No evaluamos eficiencia en este curso.
Pasos para encontrar una solución Para llegar desde el problema a la solución, podemos identificar varios pasos: Encontrar el problema. Describir el problema (detalles). Identificar entradas y salidas. Distinguir los elementos que intervienen en la solución y caracterizarlos. Escribir el algoritmo no ambiguo que solucione el problema.
Definición El lenguaje de programación debe ser parte de la solución, no parte del problema. Un computador facilita el trabajo de un ser humano. Ej: multiplicar números. Qué se hace para obtener una solución? Diseñar (Pensar) un algoritmo. El programador codifica este algoritmo en un Lenguaje de Programación que el computador sea capaz de entender. Se ejecuta el programa codificado en el computador. El computador entrega resultado.
Definición Algoritmo: secuencia finita de pasos (no ambiguos) para dar solución a un problema. Se utiliza en Informática, cocina, vida cotidiana,..., etc. Existen variedad de técnicas para diseñar algoritmos. Ej. algoritmos paralelos, probabiĺısticos, divide y vencerás,..., etc.
Definición Un algoritmo nace en respuesta a la aparición de un determinado problema. Una algoritmo esta compuesto de una serie finita de pasos que convergen en la solución de un problema, pero además estos pasos tienen un orden específico. Ejemplo: considere el algoritmo que se elaboraría para el problema o situación de levantarse todas las mañanas para ir al trabajo: 1 Salir de la cama 2 Quitarse el pijama 3 Ducharse 4 Vestirse 5 Desayunar 6 Arrancar el automóvil para ir al trabajo o tomar transporte.
Resolución de Problemas Pasos para lograr resolver cualquier problema: 1 Análisis del Problema: en este paso se define el problema, se lo comprende y se lo analiza con todo detalle. 2 Diseño del Algoritmo: se debe elaborar una algoritmo que refleje paso a paso la resolución del problema. 3 Resolución del Algoritmo en la computadora: se debe codificar el algoritmo.
Formas de expresar un algoritmo: Existen diferentes formas para expresar un algoritmo que solucione nuestro problema: Lenguaje Natural: es lo primero que surge en nuestra mente. Puede ser ambiguo. Ejemplo: Agregar una dosis de agua Lenguaje de Programación: es el medio de comunicación entre el hombre y la máquina. Ejemplos: Java, C, C++, Python, Ada, Haskell, etc. En este curso se utilizaremos JAVA como lenguaje de programación. Definición Cada día existen problemas más diversos y complejos y los lenguajes de programación deben ser capaz de adaptarse y entregar eficiencia en la ejecución.
Paradigmas de lenguajes de programación Existen diferentes paradigmas, entre ellos están: Lenguaje Imperativo o Procedural. Lenguajes Funcionales. Lenguajes Lógicos. Lenguajes Orientados a Objetos.
Paradigmas de lenguajes de programación Lenguaje Imperativo o Procedural Consiste en una secuencia de instrucciones que deben ser ejecutadas y que producen un determinado resultado deseado. Incorporan sentencias como: ciclos, asignaciones, flujos de control,...,etc Algunos lenguajes imperativos: C, Perl, Algol, Ada, Pascal Lenguajes Lógicos El programador, parar solucionar un problema, todo lo que tiene que hacer es describirlo vía axiomas y reglas de deducción. Ejemplo: PROLOG
Paradigmas de lenguajes de programación Lenguajes Funcionales Están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, basado en lógica. Ejemplo: Haskell, Scheme Lenguajes Orientados a Objetos Se introducen los conceptos de objetos, clases y métodos. La idea de la POO es poseer un conjunto de objetos que se comunican y colaboran entre sí para dar solución a un problema.
Paradigmas de lenguajes de programación Los lenguajes de programación se ajustan a reglas sintácticas y semánticas: Ejemplo Sintaxis: estudia las formas en que se combinan las palabras (o símbolos). Semántica: aspectos del significado o interpretación del significado de un determinado símbolo, palabra, lenguaje o representación formal. Casa - Hogar Sintácticamente diferentes. Semáticamente iguales
Problema Solución Pasos necesarios para llegar a la solución. Algoritmo Lenguaje natural vs. Lenguaje de programación. Paradigmas de lenguajes de programación. Sintaxis vs. Semántica
Consultas