Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS DE
PROGRAMACIÓN
Introducción a la Ing. Software
Semana
02
Ing. Ernesto Nicho Córdova
ncordova@usat.edu.pe
www.usat.edu.pe
www.usat.edu.pe
Objetivo
Comprender
conceptos básicos de
los fundamentos de
la programación.
2 www.usat.edu.pe
Contenidos
Conceptos básicos de informática
Lenguajes de programación
Paradigmas de la programación
Resolución de problemas
Caso de aplicación
3 www.usat.edu.pe
Informática y computadora (RAE)
RETROALIMENTACIÓN
5 www.usat.edu.pe
Memoria Auxiliar
Computadora • Disco Duro
• CD
• Pendrive
Unidad de Control
Elementos Elementos
de Entrada de Salida
• Teclado • Monitor
• Mouse • Impresora
• Scanner Unidad aritmético-Lógica • Parlantes
• Etc. (Operaciones matemática) • Etc.
Memoria principal
(RAM)
6 www.usat.edu.pe
Almacenamiento – La memoria
7 www.usat.edu.pe
Capacidades de almacenamiento
• 1 bit = 0/1
• 1 byte = 8 bits
• 1 kilobyte = 1024 bytes
• 1 megabyte = 1024 kilobytes (700 Mb = 80 minutos de música)
• 1 gigabyte = 1024 megabytes (4.97 Gb = capacidad de un DVD)
• 1 terabyte = 1.024 gigabyte = 260.000 canciones |20 Tb = Las fotos que los usuarios
suben mensualmente al Facebook) | 120 Tb = Todos los datos e imágenes recogidos por
el telescopio Hubble | 330 Tb = La información semanal obtenida en el LHC |530 Tb =
Todos los videos de Youtube
• 1 petabyte = 1024 terabytes = La información procesada por Google en 72 minutos | 20
Pb = producción mundial de discos duros en 1995
• 1 exabyte = 1024 petabytes | 1 zettabyte = 1024 exabyte |1 yottabyte = 1024 zettabytes
• 1 brontobyte = 1024 yottabytes | 1 geopbyte = 1024 brontobytes
8 www.usat.edu.pe
Indicar a la
Conceptos a diferenciar computadora
•Secuencia de qué es lo que
instrucciones que tiene que hacer
entiende la Programa Programar
computadora Proceso de diseñar,
•Y que persiguen un
objetivo: ¡resolver un
codificar, depurar y
problema! mantener el código
Programador Programación fuente de programas
computacionales.
10 www.usat.edu.pe
Representación de los
lenguajes de programación
11 www.usat.edu.pe
Lenguaje de Máquina
• Son aquellos que están escritos en lenguaje directamente inteligible por
la máquina (computadora), ya que sus instrucciones son cadenas
binarias.
• Generalmente, en la codificación de los programas se empleaba el
sistema hexadecimal para simplificar el trabajo de escritura.
Instrucción Significado
A0 2F Acceder a la celda de memoria 2F
3E 01 Copiarlo el registro 1 de la ALU
A0 30 Acceder a la celda de memoria 30
3E 02 Copiarlo en el registro 2 de la ALU
1D Sumar
B3 31 Guardar el resultado en la celda de memoria 31
12 www.usat.edu.pe
Lenguaje ensamblador
• Son más fáciles de utilizar que los lenguajes de máquina, pero al igual
que ellos dependen de la máquina en particular.
• Las instrucciones en lenguaje ensamblador son conocidas cómo
nemotécnicos: A0 READ 3E REG 1D ADD …
Mayor legibilidad:
assembly
READ 2F
REG 01
READ 30 assembler
REG 02
ADD
WRITE 31
13 www.usat.edu.pe
Lenguaje de alto nivel
• Son los más utilizados por los programadores. Están diseñados para las
personas escriban y entiendan los programas de un modo mucho más
fácil que los lenguajes Maquina y ensambladores
14 www.usat.edu.pe
Traductores de lenguaje - Intérpretes
Un intérprete es un traductor que toma un
Programa
programa fuente, lo traduce y, a
fuente
continuación, lo ejecuta.
El sistema de traducción consiste en: traducir
la primera sentencia del programa a lenguaje
máquina, se detiene la traducción, se ejecuta Interprete
la sentencia; a continuación, se traduce la
siguiente sentencia, se detiene la traducción,
se ejecuta la sentencia y así sucesivamente Traducción y
hasta terminar el programa. ejecución línea
a línea
15 www.usat.edu.pe
Traductores de lenguaje - Compiladores
• Son programas que traduce los programas fuente
escritos en lenguaje de alto nivel a lenguaje Programa
máquina. fuente
• La traducción del programa completo se realiza en
una sola operación; es decir, se traducen todas las
instrucciones del programa en un solo bloque. Compilador
• El programa compilado y depurado (eliminados los
errores del código fuente) se denomina programa
ejecutable porque ya se puede ejecutar Programa
directamente y cuantas veces se desee; sólo deberá objeto
volver a compilarse de nuevo en el caso de que se
modifique alguna instrucción del programa.
16 www.usat.edu.pe
Fases de la compilación
class HolaMundo {
Código fuente public static void main (string [ ] args) {
System.out.println(“Hola Mundo”); HolaMundo.java
}
}
Compilador
Enlazador
Hola
Programa Mundo
Ejecutable
17 www.usat.edu.pe
Paradigmas de programación
• Enfoques alternativos a los procesos de programación. Un paradigma de
programación representa fundamentalmente enfoques diferentes para
la construcción de soluciones a problemas y por consiguiente afectan al
proceso completo de desarrollo de software.
Imperativa: (El más mas usual). Describe Declarativo: Describe que se debe
cómo debe realizarse el cálculo, no el calcular, sin explicitar el cómo. Los
porqué. En otras palabras es aquel tipo de lenguajes de programación que
programación donde se debe detallar paso aplican este paradigma están llenos
a paso toda instrucción escrita desde una de funciones y operaciones recursivas
simple mensaje hasta un calculo puramente matemáticas que se
matemático para obtener un valor. ejecutan para resolver una tarea.
18 www.usat.edu.pe
Características de los Paradigmas de programación
Paradigmas de programación
Imperativos Declarativos
Estructurado Orientado a objetos Funcional Lógicos
Abstracción de datos.
Encapsulamiento de Las funciones son
Dividido en bloques. datos y elementos de primer Los programas están
Secuencia, selección comportamientos en orden. construidos de hechos,
e iteración objetos. Uso del cálculo predicados y relaciones
Paso de mensajes Lambda
entre objetos
Prolog
19 www.usat.edu.pe
20 www.usat.edu.pe
Introducción a la Ingeniería de Software
Se citan las definiciones más reconocidas, formuladas por prestigiosos
autores:
• Ingeniería de software es el estudio de los principios y metodologías para el
desarrollo y mantenimiento de sistemas software(Zelkovitz, 1978).
• Ingeniería de software es la aplicación práctica del conocimiento científico
al diseño y construcción de programas de computadora y a la
documentación asociada requerida para desarrollar, operar y mantenerlos.
Se conoce también como desarrollo de software o producción
de software (Bohem, 1976).
• La ingeniería de software trata del establecimiento de los principios y
métodos de la ingeniería a fin de obtener software de modo rentable, que
sea fiable y trabaje en máquinas reales (Bauer, 1972).
21 www.usat.edu.pe
Resolución de problemas
La programación de computadores es un proceso que se origina en la
concepción de una idea y que continua con su adecuada representación
en estructuras lógicas que deben ser transformadas a comandos
procesables por un lenguaje de programación, su ejecución
computacional, la validación de los resultados y su puesta en
funcionamiento.
22 www.usat.edu.pe
Definición Análisis del Diseño del Codificación del Implantación Mantenimiento
del problema problema problema programa del programa del programa
Ejercicio de aplicación
• Soy un maestro de la construcción y me dedico a construir
piscinas, mi problema es calcular el agua necesaria para llenarlo
según el espacio donde realizaré la piscina.
24 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa
Esta fase requiere una clara definición que contemple exactamente lo que
se espera que una solución computacional logre para satisfacer el objetivo
expuesto en el problema. Para ello lo recommendable es descomponer la
situación en tres aspectos:
¿Cuál es el resultado ¿Qué entradas se ¿Qué proceso
esperado? requieren? realizaremos?
Es decir, ¿qué clase de Es decir, ¿qué clase de Es decir, ¿ qué método u
respuesta debería información o datos son operación puede conducir a
obtener?, cuántos valores requeridos para poder la salida deseada a partir de
conforman la respuesta llegar a la respuesta los valores dados como
esperada? esperada? entrada?
25 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa
Ejercicio de aplicación
Realizar un programa que permita calcular el
volumen de agua de una piscina
¿Qué proceso
¿Qué entradas se
¿Cuál es el resultado realizaremos?
requieren?
esperado? A partir de la fórmula se
Se requiere conocer las
Se debe calcular el volumen puede obtener el volumen
dimensiones de esta
del prisma rectangular que de la piscina:
piscina: largo, ancho y
representa a la piscina. volumen=largo*ancho*prof
profundidad
undidad
26 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa
29 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa
Ejercicio de aplicación
30 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa
31 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa
Ejercicio de aplicación
• Para el caso del ejemplo de la piscina, la situación es tan sencilla, que
podría pensarse que con la ejecución funcional ya esta listo. Pero en la
vida real, esta situación podría ser apenas un elemento dentro de un
software mas complejo o podría requerir de todo un plan administrativo
para que entre en funcionamiento. Esta etapa esta por fuera del alcance
de este curso y, por tanto, no será abordada.
32 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa
El entorno digital cambia con el paso del tiempo, esto hace que las
necesidades cambien y que un programa se vuelva obsoleto, por ello es
necesario realizarle continuas optimizaciones.
33 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa
Ejercicio de Aplicación
Para el ejemplo de la piscina, el programa generado podría requerir
mantenimiento cuando se describa una nueva situación no contemplada
inicialmente, por ejemplo, que dentro de la piscina se incluirá una fuente
que ocupa cierto espacio, y por lo tanto la formula para calcular el
volumen del agua requiere alguna modificación, esto solo a manera de
comentario pues en este curso no se desarrollara la etapa de
mantenimiento a los programas desarrollados.
34 www.usat.edu.pe
Referencias
• Casale, J. (2012). Introducción a la programación. Manual del desarrollador (Primera
ed.). Buenos Aires: Fox Andina.
• Gómez, D., Gómez, U., & Viola, J. (2018). Fundamentos de programación. Medellin:
Editorial Universidad Pontificia Bolivariana.
• Joyanes, L. (2008). Fundamentos de Programación. Algoritmos, estructura de datos y
objetos (Cuarta ed.). Madrid: McGRAW-HILL.
35 www.usat.edu.pe
Ing. Ernesto Nicho Córdova
ncordova@usat.edu.pe
http://www.facebook.com/usat.peru
https://twitter.com/usatenlinea
https://www.youtube.com/user/tvusat
https://plus.google.com/+usateduperu
www.usat.edu.pe