Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio...

21
Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez

Transcript of Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio...

Page 1: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Introducción a la Programación

Profesores:

Pedro Campos

Manuel Crisosto

Tatiana Gutiérrez

Claudio Gutiérrez

Page 2: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

CONTEXTO DE LA ASIGNATURA (ICI e IECI)

La programación y el Ingeniero en Informática

Page 3: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Perfil Profesional (ICI)

• El Ingeniero Civil en Informática es un profesional competente y capacitado para aplicar conocimientos relevantes y actualizados en las Ciencias de la Computación y en una amplia gama de áreas como: Ingeniería de Software, Redes y Comunicaciones, Sistemas de Información, Arquitectura de Sistemas y Seguridad Informática. Además, demuestra eficiencia e idoneidad en el ámbito de la gestión estratégica pudiendo formular y evaluar proyectos, proponer soluciones con las más adecuadas y avanzadas tecnologías de información y comunicaciones.

 • Se encuentra capacitado para realizar trabajo colaborativo e

interdisciplinario con una mentalidad proactiva y analítica, de liderar equipos de trabajo y manejar adecuadamente el idioma inglés.

 • Se desenvuelve con autonomía y un alto sentido de

responsabilidad, de ética y de respeto por las diferencias en la sociedad del conocimiento.

Page 4: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Competencias a desarrollar durante la carrera (ICI)

Relativas a nivel de Conocimiento (Especificas)Ingeniería de softwareTecnologías de redesArquitectura de sistemasGestión estratégicaProgramaciónPlataformas tecnológicasMejoramiento de procesosTeoría de la informaciónNormativas legalesAnálisis y desarrollo organizacional

Relativas a Habilidades o Destrezas (Genéricas)Formular, dirigir, implementar y evaluar proyectosComunicación eficaz en forma oral y escritaProponer soluciones y resolver problemas con TIC’sLiderar equipos de trabajoGestión de procesosLeer y hablar en inglésAdministrar personasDiseñar y modelar sistemasDemostrar capacidades de crítica/ autocríticaDesarrollo de pensamiento lógicoActualización permanenteDesarrollo de la abstracciónTrabajo colaborativoRigurosidad matemáticaComprometido con la calidad del trabajoElaborar distintas propuestas de solución

Relativas a Valores y ActitudesDemostrar responsabilidadHonestoÉticoDisposición al trabajo colaborativo e interdisciplinarioSer analíticoProactivoCreativoAsertivoTolerancia /RespetoSer consiente del entorno (respeto y armonización)AutónomoIndependienteLíderEmprendedorAuto aprendizajeCooperación / ColaboraciónDisciplinaCompromiso con la calidad

Page 5: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

A.- MALLA CURRICULAR INGENIERÍA CIVIL EN INFORMÁTICA

Page 6: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Perfil Profesional del Ingeniero de Ejecución en Computación e Informática

• El Ingeniero de Ejecución en Computación e Informática es un profesional capacitado para aplicar conocimientos en una amplia gama de áreas como, programación, Ingeniería de Software, Plataformas Tecnológicas, Tecnología de Redes, Análisis y funcionamiento de Sistemas Computacionales y Arquitectura de Sistemas. Al tiempo que es capaz de operar y mantener redes, utilizar tecnología, analizar e interpretar datos y resolver problemas con tecnologías de la información.

• Es un profesional formado con alto sentido de responsabilidad y ética, se desenvuelve con prestancia en equipos de trabajo, es creativo y posee un adecuado manejo del idioma Inglés.

Page 7: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Competencias a desarrollar (IECI)

RELATIVAS A CONOCIMIENTOS

ProgramaciónIngeniería de SoftwarePlataformas tecnológicasTecnología de redesAnálisis y funcionamiento de Sistemas ComputacionalesOperación y mantención de redesMejoramiento de ProcesosArquitectura de SistemasTeoría de la InformaciónNormativas Legales

RELATIVAS A HABILIDADES O DESTREZAS

Resolver problemas con TICSUtilizar tecnologíasExpresarse correctamenteDiseñar y modelar sistemasAnalizar e interpretar datosHablar y leer inglésRealizar diagnósticosTrabajar en equiposDirigir e implementar proyectos

RELATIVAS VALORES A ACTITUDES

Efectuar trabajo colaborativo e interdisciplinarioDemostrar actitudes emprendedoras en su desempeñoCreatividadAsertividad Pro actividadSer tolerante(flexibilidad ante las diferencias)Ser consiente del entorno (respeto y armonización)Demostrar responsabilidad

Page 8: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Malla Curricular IECI

Page 9: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Condiciones del CursoCompromisos del profesor:

• Realizar todas las clases e iniciarlas puntualmente• Informar oportunamente cambios en la planificación del curso • Ver todo el programa de la asignatura• Intentar responder en forma clara todas las preguntas• Publicar notas de controles a la semana siguiente de realizado el control• Respetar horario de atención de alumnos (confirmar por correo)• Que terminen el curso con un nivel adecuado en el uso del computador y en la construcción de programas.

Compromisos del alumno:• Asistir a clases y Ayudantías (75% mínimo para aprobar el curso)• Asistir al 100% de laboratorios• Apagar los celulares• Participar en forma activa en las clases• Respetar a compañeros cuando realicen una pregunta• En caso de inasistencia, conseguir materia y realizar trabajos solicitados• En caso de llegar después de iniciada la clase….entrar sin golpear y sin interrumpir.

Page 10: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Programa de la Asignatura (ICI e IECI)

Introducción a la Programación

Page 11: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

DESCRIPCION Curso teórico práctico, que entrega los conceptos básicos de programación, permite resolver problemas por medio de algoritmos y su implementación en un lenguaje de programación.

Programa: Introducción a la Programación

OBJETIVO GENERAL Resolver problemas básicos a través de la construcción de programas basados en algoritmos y un lenguaje de programación, generando acciones hacia la búsqueda de propuestas pertinentes.

Page 12: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

APRENDIZAJES ESPERADOS (COMPETENCIAS) 

• Descompone un problema en sub-problemas para darle una solución más sencilla.• Interpreta algoritmos y programas para la solución de problemas básicos de programación relativos a la matemática.• Construye algoritmos y programas para la solución de problemas básicos de programación relativos a la matemática. • Trabaja colaborativamente, cumpliendo un rol y responsabilizándose de él.• Comprende el entorno de las situaciones problemáticas que tienen un componente informático.

Programa: Introducción a la Programación

Page 13: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Programa: Introducción a la Programación

 (I)Conceptos básicos de computación e informática

• Arquitectura básica de un computador• Problemas Algorítmicos y Nociones acerca de la Computabilidad• Visión General del Proceso de desarrollo de Software

(II)Conceptos de algoritmos y programación 

• Definición de algoritmos y programa• Elementos de algoritmos (Tipos de datos, Secuencia, selección e iteración. Conceptos de entrada y salidas)

(III) Algoritmos

• Conceptos de algoritmos y programación• Representación de algoritmos• Construcción de algoritmos• Prueba de algoritmos

(IV) Programación y lenguajes• Lenguaje de programación• Los lenguajes• Características• Construcción de programas• Definición de datos• Estructuras de control• Lectura e impresión de datos• Subprogramas

CONTENIDOS

Page 14: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Programa: Introducción a la Programación

Evaluación: la nota de presentación se calculara a partir de las siguientes evaluaciones.

Instrumento Descripción Fecha % Nota Final

Certamen 1 Conceptual / práctico 18-abril 10 % Certamen 2 Conceptual / Práctico 30 mayo 25 %

Certamen 3 Práctico 20/06 35 % Test (s) Conceptual / Práctico 15 % Ejercicios / Tareas / Laboratorios

Asociado a las Ayudantías

15 %

Requisitos de aprobación de asignatura•Asistencia mínima de un 75 % a las clases teóricas•Asistencia de un 100% a laboratorios

Nota Final = 50% Nota Presentación + 50 % Nota Examen

Si la nota final es mayor a 60 el estudiante se exime de dar el examen final.

Page 15: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Programa: Introducción a la Programación

BIBLIOGRAFIA  Uribe R. 2005. Programación de Computadores y el Lenguaje C. Ediciones Universidad de Magallanes. Chile.

Gutiérrez-Soto C., y otros. 2008, Apunte de programación en lenguaje C.( http://pva.face.ubiobio.cl/pva/)

Joyanes Aguilar Luis y otros. 2002, Programación en C Libro de problemas. McGraw Hill.

Gottfried B. 1997, Programación en C. Schaun, Segunda Edición, MCGraw Hill.

Bishop P., 1990. Conceptos de Informática. Editorial Anaya.

Sánchez Mª. y otros. 1996, Programación Estructurada y Fundamentos de Programación. McGraw Hill.

Page 16: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

INTRODUCCIÓN : Construcción de un Programa (Programación)

PROGRAMA: Conjunto de instrucciones, con una secuencia lógica, escrito en algún Lenguaje de Programación que permite resolver un Problema. El programa recibe datos de entrada, realiza las operaciones de transformación requeridas, y entrega los resultados esperados.

LENGUAJE DE PROGRAMACIÓN: Lenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente un Computador. Estos se componen de un conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán ejecutadas por el procesador del computador.

PROBLEMA: Situación del mundo real que puede ser resuelto/apoyado a través de un computador (Computabilidad). Para esta asignatura el “Problema” viene descrito mediante un Enunciado.

COMPUTADOR: Herramienta de trabajo el cual está formado por dos componentes básicos: Hardware / Software (los programas corresponden a componentes software).

Page 17: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

INTRODUCCIÓN : Pasos para la CONSTRUCCIÓN de un programa

• Entender el problema (Contexto, resultados, transformaciones)

• Definir datos de entrada, salidas (información/resultados), reglas de validación, transformaciones

• Construir un Algoritmo (pseudocódigo, Diagrama de Flujo)

• ALGORITMO: Una secuencia de pasos (modelo) para realizar una tarea

• Probar el algoritmo

• Transformar el algoritmo en un programa escrito en un lenguaje de programación

• Probar el programa (transformarlo a lenguaje de máquina y ejecutarlo)

Page 18: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Problema/Enunciado: Construir un programa que permita calcular, dado dos ángulos de un triangulo, el valor del tercer ángulo.

• Entender el problema/enunciado (Contexto, resultados, transformaciones)• Definir datos de entrada, salidas (información/resultados), reglas de validación, transformaciones

ProgramaENTRADA SALIDA

TransformaciónReglas de validación

Angulo 1, Angulo 2 Angulo 3 (resultado)

Transformación Angulo 3 = 180 – Angulo 1 – Angulo 2Reglas de validación

•Angulos ingresados > 0•Angulos ingresados < a 180 •Suma de ángulos ingresados < 180

EJEMPLO

Page 19: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Problema/Enunciado: Construir un programa que permita calcular, dado dos ángulos de un triangulo, el valor del tercer ángulo.

Algoritmo en Pseudocódigo:

Algoritmo EjemploVariables Reales D1, D2, ResInicio Leer (D1, D2) Si (D1 > 0) y (D2 > 0) Inicio Si (D1+D2 < 180) Inicio Res = 180 – D1 – D2 Imprimir (“Resultado: “, Res) Fin Si no Imprimir (“Error_1”) Fin Si no Imprimir (“Error_2”)Fin

#include <stdio.h>float d1,d2,res;main(){ scanf("%f%f",&d1,&d2); if ((d1>0)&&(d2>0)) { if (d1+d2 < 180) { res=180.0-d1-d2; printf("Resultado: %f",res); } else printf("Error 2"); } else printf("Error 1"); getchar();getchar();}

Programa escrito en Lenguaje C

Inicio

Fin

D1,D2

D1 > 0 y

D2 > 0

D1+D2 < 180

“Resultado: “ Res

Res = 180 – D1 – D2

“Error 1”

“Error 2”

v

v

Algoritmo en Diagrama de Flujo

f

f

Page 20: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

Herramienta: Computador

CPU

MemoriaUE US

Lenguaje de Alto nivel (Lenguaje C)

#include <stdio.h>float d1,d2,res;main(){ scanf("%f%f",&d1,&d2); if ((d1>0)&&(d2>0)) { if (d1+d2 < 180) { res=180.0-d1-d2; printf("Resultado: %f",res); } else printf("Error 2"); } else printf("Error 1"); getchar();getchar();}

01 rda 8002 rda 8103 lda 8004 jmz 1505 jml 1506 lda 8107 jmz 1508 jml 1509 add 8010 sub 18011 jml 1812 lda #-213 wrt14 jmp 1915 lda #-116 wrt17 jmp 1918 wrt19 end

Lenguaje Ensamblador

Lenguaje de Maquina (001101100100….)

Page 21: Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez.

AplicaciónAplicación (software) (software)

Sistema Operativo Sistema Operativo (Software)(Software)

HardwareHardware

Lenguaje Humano

Lenguaje Binario

Comunicándose con el computador