Sunteți pe pagina 1din 54

Introducción a la Programación

Profesores:
Luis Ángulo Mura (secciones 2 y 6)
Manuel Crisosto Muñoz (Sección 1)
Jazna Meza Hidalgo (Sección 5)
Grisell Osses Díaz (Sección 3 y 4))

Concepción, Marzo 2011


CONTEXTO DE LA ASIGNATURA (ICI e IECI)

La programación y el Ingeniero en Informática


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.
Competencias a desarrollar durante la carrera (ICI)
Relativas a nivel de Conocimiento (Especificas)
Ingeniería de software
Tecnologías de redes
Arquitectura de sistemas
Gestión estratégica
Programación
Plataformas tecnológicas
Mejoramiento de procesos Relativas a Valores y Actitudes
Teoría de la información Demostrar responsabilidad
Normativas legales Honesto
Análisis y desarrollo organizacional Ético
Disposición al trabajo colaborativo e interdisciplinario
Relativas a Habilidades o Destrezas (Genéricas) Ser analítico
Formular, dirigir, implementar y evaluar proyectos Proactivo
Comunicación eficaz en forma oral y escrita Creativo
Proponer soluciones y resolver problemas con TIC’s Asertivo
Liderar equipos de trabajo Tolerancia /Respeto
Gestión de procesos Ser consiente del entorno (respeto y armonización)
Leer y hablar en inglés Autónomo
Administrar personas Independiente
Diseñar y modelar sistemas Líder
Demostrar capacidades de crítica/ autocrítica Emprendedor
Desarrollo de pensamiento lógico Auto aprendizaje
Actualización permanente Cooperación / Colaboración
Desarrollo de la abstracción Disciplina
Trabajo colaborativo Compromiso con la calidad
Rigurosidad matemática
Comprometido con la calidad del trabajo
Elaborar distintas propuestas de solución
A.- MALLA CURRICULAR INGENIERÍA CIVIL EN INFORMÁTICA
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.
Competencias a desarrollar (IECI)
RELATIVAS A CONOCIMIENTOS

Programación
Ingeniería de Software
Plataformas tecnológicas
Tecnología de redes
Análisis y funcionamiento de Sistemas Computacionales
Operación y mantención de redes
Mejoramiento de Procesos RELATIVAS VALORES A ACTITUDES
Arquitectura de Sistemas
Teoría de la Información Efectuar trabajo colaborativo e interdisciplinario
Normativas Legales Demostrar actitudes emprendedoras en su desempeño
Creatividad
Asertividad
Pro actividad
RELATIVAS A HABILIDADES O DESTREZAS Ser tolerante(flexibilidad ante las diferencias)
Ser consiente del entorno (respeto y armonización)
Resolver problemas con TICS Demostrar responsabilidad
Utilizar tecnologías
Expresarse correctamente
Diseñar y modelar sistemas
Analizar e interpretar datos
Hablar y leer inglés
Realizar diagnósticos
Trabajar en equipos
Dirigir e implementar proyectos
Malla Curricular IECI
Condiciones del Curso
Compromisos 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 definitivas a la semana siguiente de
realizado el control
•Publicar mensualmente asistencia de alumnos y profesor
• 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.
Deberes del alumno:
• Asistir a clases y Ayudantías (75% mínimo para aprobar el curso)
• Asistir al 100% de laboratorios
• Celulares en silencio
• 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.
Programa de la Asignatura (ICI e IECI)

Introducción a la Programación
Programa: Introducción a la Programación

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.

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.
Programa: Introducción a la Programación

OBJETIVOS ESPECÍFICOS (COMPETENCIAS)


 
• Interpretar algoritmos y programas para la solución de problemas básicos de
programación.
• Construir algoritmos y programas para la solución de problemas básicos de
programación.
• Descomponer un problema en subproblemas para facilitar el proceso de
definir una solución.
• Trabajar colaborativamente, cumpliendo un rol y responsabilizándose de él.
Programa: (III) Algoritmos
Introducción a la Programación
•Elementos de algoritmos
•Datos
CONTENIDOS •Entrada/salida
  •Estructuras de control
(I) Conceptos básicos de computación e •Representación de algoritmos
informática •Gráfica
• Conceptos básicos •Lenguaje natural
•Arquitectura básica de un computador •Construcción de algoritmos
•Etapas
(II) Conceptos de algoritmos y •Refinamiento sucesivo
programación •Prueba de algoritmos
  (IV) Programación y lenguajes
• Definición de algoritmo • Definición de programa y lenguaje de
•Problemas Algorítmicos programación
•Limitaciones en la resolución de •Tipos de lenguajes de
problemas programación
•Traducción de programas (sintaxis,
semántica, compilación,
interpretación)
•Construcción de programas
•Tipo de datos
•Entrada/salida de datos
•Estructuras de control
•Subprogramas
•Prueba de programas
•Diseño de casos de prueba
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 Presentación
Certamen 1 Conceptual / práctico 20 %
Certamen 2 Conceptual / Práctico 25 %
Certamen 3 Conceptual / Práctico 35 %
Test (sin aviso), Tareas / Conceptual / Práctico 20 %
Laboratorios

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

Si la nota de tareas/laboratorio y la nota final es mayor a 60 el estudiante se


exime de dar el examen final.

Requisitos de aprobación de asignatura


• Asistencia mínima de un 75 % a las clases teóricas
• Asistencia de un 100% a laboratorios
Programa: Introducción a la Programación

BIBLIOGRAFIA
 
 Básica

• Caro A., Soto A., Apuntes de Informática. U. del Bio Bio. 2001.
• Deitel y Deitel, Cómo Programar en Java. Prentice Hall. 2005.
• C. Gutiérrez-Soto, y Manuel Crisosto, Apunte de programación en lenguaje C.
2008
• Uribe R. Programación de Computadores y el Lenguaje C. Ediciones Universidad
de Magallanes. Chile, 2005.
• Joyanes Aguilar Luis “et al”, Programación en C Libro de problemas. McGraw Hill,
2002.

Complementaria
• Ken Arnold y James Gosling. El Lenguaje de Programación Java. 2da. edición.
Pearson, Addison Wesley. 2001.
• Mark Allen Weiss. Estructuras de datos en Java. Addison Wesley. 2000.
• Gottfried B., Programación en C. Schaun, Segunda Edición, MCGraw Hill. 1997
• P. Bishop. Conceptos de Informática. Editorial Anaya. 1990
• Mª. Ángeles Sánchez “et al”., Programación Estructurada y Fundamentos de
Programación. McGraw Hill. 1996
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).
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)


EJEMPLO

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

ENTRADA Programa SALIDA


Angulo 1, Angulo 2 Angulo 3 (resultado)
Transformación
Reglas de validación
Transformación
Angulo 3 = 180 – Angulo 1 – Angulo 2
Reglas de validación
• Ángulos ingresados > 0
• Ángulos ingresados < a 180
• Suma de ángulos ingresados < 180
Problema/Enunciado: Construir un programa que permita calcular, dado dos ángulos de un triangulo, el valor del
tercer ángulo.
Algoritmo en Pseudocódigo:

Algoritmo Ejemplo
Variables
Reales D1, D2, Res
Inicio
Leer (D1, D2)
Algoritmo en Diagrama de Flujo Si (D1 > 0) y (D2 > 0)
Programa escrito en
Inicio
Lenguaje C
Si (D1+D2 < 180)
Inicio Inicio
#include <stdio.h>
Res = 180 – D1 – D2
float d1,d2,res;
Imprimir (“Resultado: “, Res)
D1,D2 main()
Fin
{
Si no Imprimir (“Error_2”)
scanf("%f%f",&d1,&d2);
Fin
f D1 > 0
y
v Si no Imprimir (“Error_1”)
if ((d1>0)&&(d2>0))
{
D2 > 0 Fin
if (d1+d2 < 180)
{
“Error 1” res=180.0-d1-d2;
f D1+D2 < v printf("Resultado: %f",res);
180
}
else printf("Error 2");
“Error 2” }
Res = 180 – D1 – D2 else printf("Error 1");
getchar();getchar();
“Resultado: “ }
Res

Fin
Conceptos Básicos
• ¿Qué es computación?
– La Ciencia de la Computación es el estudio de los
fenómenos que rodean a los computadores
(Boden, 1994)
• ¿Qué es informática?
– La Informática es el tratamiento automático de la
información, utilizando computadores
Conceptos Básicos
• ¿Qué es un computador?

– Es un dispositivo electrónico capaz de procesar


información a partir de un grupo de instrucciones
denominado programa.

– Puede realizar tareas muy diversas usando


distintos programas
Conceptos Básicos
• ¿Qué es un computador?

– Es una herramienta capaz de almacenar y


procesar datos que luego son convertidos en
información a disposición de los seres humanos
para tomar decisiones
Conceptos Básicos
• ¿Por qué estudiar informática?

– Los computadores nos permiten salir más


rápidamente de los supermercados, realizar
operaciones bancarias las 24 horas del días,
conocer el clima a través de los satélites y
distraernos con entretenidos videojuegos
Conceptos Básicos
• ¿Por qué estudiar informática?

– Internet es una prueba palpable del impacto de


las computadoras y la informática en nuestra
sociedad
Conceptos Básicos
• ¿Por qué estudiar informática?
– Rápido avance de la tecnología permite hacer
cosas inimaginables hasta hace pocos años
– Si la industria automotriz hubiese tenido un
progreso semejante, hoy un auto nuevo viajaría a
miles de km/h y costaría menos que un litro de
gasolina
Conceptos Básicos
• Algunos mitos sobre computadores
– El computador lo hizo: El computador no puede
tomar decisiones. Sólo hace lo que se le ordena.
– Los computadores pueden hacer cualquier cosa:
Los programadores son los que pueden hacer
muchas cosas con los computadores, pero tienen
limitaciones tecnológicas
Debe entregarle las órdenes precisas
en un lenguaje específico

Máquina sin Inteligencia


Ser Inteligente
Pero con un gran poder
(con criterio, sentido
de procesamiento
común, experiencia)
Herramienta

Problemas del
mundo real
solución

¿ Por qué usamos el computador?


Dato Información

Entrada Salida
Proceso computacional

¿ Cual es el papel del computador ?


“ El gran Desafío es cómo entender un
problema, encontrarle una solución y
cómo traspasar esa solución al
computador para que la ejecute”
“Desarrollo Histórico”
Los primeros orígenes
• La necesidad de calcular
impulsó el desarrollo del
ábaco como primera
calculadora.
• Muhammad ibn Musa
Al’khowarizmi (S. XII)
desarrolló el concepto de
un proceso escrito a seguir
para alcanzar un objetivo.
Siglo XVII
• 1642, Blaise Pascal creo
una máquina de sumar
que acarreaba de una
posición a la siguiente.
• Fue conocida como
PASCALINA
Siglo XIX (I)
• 1822, Charles Babbage
diseñó una máquina
diferencial para mejorar los
cálculos de las tablas de
navegación.
Siglo XIX (II)

• 1842, Ada Augusta King,


Lady Lovelace (hija de Lord
Byron) colabora con
Babbage considerandose la
primera programadora.
Siglo XIX (3)
• Problemas en el recuento
del censo de Población USA
en 1890, provocó que
Herman Hollerith
desarrollase una máquina
tabuladora, creando una
empresa que en 1924 pasó
a llamarse IBM.
1937
• Alan Turing desarrolló la
idea de máquina universal
capaz de ejecutar cualquier
algoritmo. Lo cual formó la
base de la computabilidad.
1940-1944
• Durante la segunda guerra
mundial, la necesidad de
descifrar los mensajes
encriptados de los
alemanes, se desarrolló
con la ayuda de Turing, con
una máquina denominada
Colossus.
1943
• Comenzó este año en la
Moore School of Electrical
Engineering en
Pennsylvania el trabajo en
el ENIAC (Electronic an
Numeric Integrator and
Computer)
1944
• El primer calculador
electromecánico
automático de propósito
general a gran escala fue el
Mark I, ideado por Howard
Aiken y desarrollado por
IBM.
1945
• John von Neumann escribe
su borrador sobre la
arquitectura de los
ordenadores el cual sirve
de base al concepto actual
de ordenador.
La CPU de von Neumann
Flags

ALU:
Bus de Arithmetic
datos Logic Arithmetic Registros
Circuits Logic del
Unit Procesador
AC

DR
Control Bus de
Main
Memory
Unit control
PC IR
AR

C0
C1
Control Circuits C2
Devices ...
C12

Bus de
direcciones
1947
• William Shockley, John
Bardeen y Walter Brattain
inventan la “resistencia de
transferencia” que más
tarde se conocerá como
transistor.
1956
• John McCarthy and Marvin Minsky fundan en una
reunión en el Darmouth College el concepto de
Inteligencia Artificial.
1975-1982
• Edward Roberts, William Yates y Jim Bybee desarrollan lo
que podría considerarse el primer ordenador personal, el
Altair 8800. Tenía 256 bytes de memoria y no tenía pantalla,
ni teclado ni dispositivo auxiliar de memoria.
• Bill Gates y Paul Allen escribieron el primer programa para el
Altair 8800, un compilador de Basic y fundan Microsoft.
• Se desarrolla el CRAY I el primer superordenador.
• Steve Jobs y Steve Wozniak desarrollan el Apple II
• IBM crea el PC actual
Historia de la Computación
• Primera Generación
– Tubos de vacío
– Programadas en Lenguaje de máquina
– Grandes y muy costosas
• Segunda Generación
– Circuitos de Transistores
– Programadas en lenguajes de alto nivel
Historia de la Computación
• Tercera Generación
– Circuitos Integrados
– Control a través de Sistemas Operativos
• Cuarta Generación
– Microprocesadores
– Primeros Microcomputadores
– Aparición de ARPANET
Historia de la Computación
• Quinta Generación
– Microelectrónica.
– Competencia internacional por el dominio de la
informática.
– Internet se masifica.
– Aparición de Computadores portátiles.
– Manejo de Lenguaje Natural e Inteligencia
Artificial.
Arquitectura básica de un Computador

Hardware

Sistema Operativo
Máquina
Extendida
Comunicándose con el computador

Lenguaje Humano

Aplicación (software)

Sistema Operativo (Software)

Lenguaje Binario

Hardware
Herramienta: Computador
01 rda 80
02 rda 81
03 lda 80
CPU 04 jmz 15
05 jml 15
06 lda 81
07 jmz 15
08 jml 15
UE Memoria US 09 add 80
10 sub 180
11 jml 18
12 lda #-2
Lenguaje de Maquina (001101100100….)
13 wrt
Lenguaje Ensamblador 14 jmp 19
#include <stdio.h>
15 lda #-1
float d1,d2,res;
main() 16 wrt
{
scanf("%f%f",&d1,&d2); 17 jmp 19
if ((d1>0)&&(d2>0))
{
if (d1+d2 < 180)
Lenguaje de Alto nivel (Lenguaje C) 18 wrt
{
res=180.0-d1-d2;
19 end
printf("Resultado: %f",res);
}
else printf("Error 2");
}
else printf("Error 1");
getchar();getchar();
}
Ciencia y ficción: El ordenador
invisible
A largo plazo, el ordenador personal y la terminal
de trabajo desaparecerán porque el acceso a la
informática estará en todas partes: en las paredes,
en nuestras muñecas y en “ordenadores para
borrador” (como el papel para borrador)
distribuidos para ser utilizados cuando sea
necesario.

Mark Weiser
Xerox PARC
Ciencia y ficción: Efecto
multiplicador de la tecnología

Si la industria automotriz hubiera experimentado un


desarrollo parecido a la informática, se podría disponer
de un Rolls-Royce por menos de 1.000 pesos. Además el
vehículo dispondría de la potencia de un trasatlántico
para ser capaz de recorrer un millón de kilómetros (25
veces la vuelta al mundo) con sólo un litro de gasolina.
Tom Forester
Fin Unidad 1
¿Preguntas?

S-ar putea să vă placă și