Analisis y Diseño de Sistemas de Computación

Anuncio
Introducción a la Programación
11‐O
Humberto Cervantes Maceda
Información del profesor
Humberto Cervantes Maceda
T‐138
www.humbertocervantes.net/cursos
Acerca de ustedes
Nombre
Carrera
¿ Qué experiencia tienes respecto a programación ?
¿ Qué te interesa en relación a la programación ?
Su carrera
Usted está aqui
Licenciatura en computación
Ciencias de la computación
Ingeniería de Software
¿ Qué son ? ¿ Qué diferencias hay entre ellas ?
Programar
¿ Qué es programar ?
Programar
¿ Qué es programar ?
El proceso de diseñar, escribir, probar, depurar y mantener el código fuente de los programas de cómputo. Dicho código fuente está escrito en algún lenguaje de programación. El propósito de programar es crear un programa que exhiba algún comportamiento deseado. El proceso de escribir código fuente requiere conocimiento en distintos temas incluyendo el dominio aplicativo, algoritmos especializados y lógica. (Wikipedia)
Recordando: Computadora
Arquitectura de Von Newmann
Representa un modelo para diseñar computadoras digitales (1945) que es la base de las computadoras que se usan hoy en día
5 Partes principales
ALU
Unidad de control
Memoria
Dispositivos de entrada y salida
Bus de datos
Arquitectura de Von Newmann
Dispositivos de Entrada y Salida
Permiten realizar comunicación hacia el exterior
Recordando: Computadora
Ratón
Procesamiento
Pantalla
Teclado
Información
Datos
CD
Unidad Central
Impresora
Escáner
Red
Bocinas
Arquitectura de Von Newmann
ALU
Arithmetic Logic Unit
Realiza operaciones aritméticas (suma, resta, multiplicación) y operaciones lógicas (si, y, o, no)
Arquitectura de Von Newmann
Unidad de Control
Obtiene instrucciones en la memoria principal, las interpreta y las ejecuta
Arquitectura de Von Newmann
Memoria
Almacenamiento de datos
Unidad Central
Memoria
Microprocesador
Disco duro
Dentro de la unidad central se encuentran
Microprocesador
Almacenamiento volátil (Memoria)
Almacenamiento no‐volátil (Discos duros)
Arquitectura de Von Newmann
Bus de datos
Permite que se comuniquen los datos entre las distintas partes
Programa
Conjunto de instrucciones almacenadas en la memoria que van a dirigir al procesador para realizar una tarea especifica
En la memoria, un programa se ve como un conjunto de unos y ceros
100100011101101010010011001
Los unos y ceros son el lenguaje de la máquina
El único que entiende el procesador
Ejem. 0110 1001 1010 1011 = SUMA M, N, P
Algoritmo
De manera informal, un algoritmo es cualquier procedimiento computacional bien definido que toma uno o más valores como entrada y produce uno o más valores como salida. Un algoritmo es entonces una secuencia de pasos que transforman entradas en salidas
Ejemplo: Ordenamiento de números
Un algoritmo es correcto si para cada entrada dada, se detiene y produce la salida correcta. El algoritmo resuelve entonces el problema computacional.
Aplicación de algoritmos
Rutear datos en la red
Decodificar genomas
Realizar transacciones seguras
Corregir rumbo de un avión
Controlar procesos industriales
Programa y algoritmo
¿ Cuál es la diferencia ?
Programa y algoritmo
Un programa es la implementación de un algoritmo, es decir su representación en algún lenguaje de programación
Una estructura de datos es una manera de almacenar y organizar datos con el fin de facilitar su acceso y modificación. No existe una sola estructura de datos que funcione bien para todos los propósitos, por ello, es importante conocer las fortalezas y limitaciones de las mismas.
Representación de un algoritmo
Existen distintas representaciones para un algoritmo
Pseudocódigo
Diagramas de flujos de datos
Estructuras de datos
Una estructura de datos es una manera de almacenar y organizar datos con el fin de facilitar su acceso y modificación. No existe una sola estructura de datos que funcione bien para todos los propósitos, por ello, es importante conocer las fortalezas y limitaciones de las mismas.
Software y tipos de Software
Software
Colección de programas y datos que proporcionan instrucciones a una computadora sobre qué hacer y cómo hacerlo
Distintos tipos de Software
Aplicaciones
Sistemas operativos
Drivers
Herramientas de programación
Drivers
Software en todos lados…
¿ Por qué programamos ?
¿ Por qué programamos ?
En general, se realizan programas para resolver problemas o necesidades de forma automática mediante el uso de computadoras
problema
1011100011
0110010001
1011100011
1111011111
0110010001
1001000111
1111011111
1011100011
0011101110
1001000111
0110010001
1110110111
1011100011
0011101110
1111011111
1110000111
0110010001
1110110111
1001000111
1111011111
1110000111
0011101110
1001000111
1110110111
0011101110
1110000111
1110110111
1110000111
Hay un problema…
Las computadoras y los humanos no hablamos el mismo idioma...
10100011101010010010
10011001001000010011
01110001101010011011
?
Lenguajes de programación
Para poder programar las computadoras, se inventaron lenguajes de “alto nivel”, es decir, entendibles por los humanos
Primeros lenguajes
Fortran (1954)
Cobol (1959)
B (1969)
Lenguajes comunes hoy en día
Pascal (1970)
C (1971)
C++ (1983)
Java (1995)
C# (2000)
Ejemplo de programa
Programa que escribe “hola mundo!” en la pantalla en lenguaje C
#include <stdio.h>
void main()
{
printf(“Hola, mundo !\n”);
}
Un programa se escribe en un editor, y se guarda en un archivo
Compilador
Los lenguajes de alto nivel no son entendibles por la computadora, es necesario traducirlos antes de que puedan ser ejecutados
La traducción la realiza un programa llamado compilador
#include
<stdio.h>
main()
{
printf(“Hola!\n”
);
}
Compilador
1011100011
0110010001
1111011111
1001000111
0011101110
1110110111
1110000111
Una vez compilado, el programa ya puede ser ejecutado por la computadora
Depurador
El depurador es un programa que permite ejecutar paso a paso el programa que estamos realizando con el fin de poder encontrar problemas
Entornos de desarrollo integrado
Es un programa que incluye varios otros programas para realizar desarrollo de software
Editor de código fuente
Compilador / interprete
Depurador
Builder
Etc…
El proceso de dessarrollo
El proceso representa una serie de etapas que se siguen para desarrollar una aplicación de software
Entre las etapas principales se encuentran
Entender qué se quiere hacer
Proponer y diseñar una solución
Construcción de la solución
Probar la solución
Entregar la solución al cliente
Realizar mantenimiento
Una analogía
Un programa pequeño, así cómo una casa pequeña pueden ser diseñados y construidos por una sola persona
De forma un poco 'artesanal'
Una analogía
Un proyecto complejo requiere sin embargo de un proceso de desarrollo que permita coordinar un numero grande de programadores
Torre Mayor
Información del curso
www.humbertocervantes.net
Descargar