Está en la página 1de 41

Fundamentos de programacin

Tema 1. Presentacin: La asignatura y la informtica

rea de Lenguajes y Sistemas Informticos

Curso 2007-2008

La informtica

El ordenador: una definicin


Es una mquina capaz de realizar tareas propias de la

mente humana mejorando su velocidad y fiabilidad (por


ejemplo: operaciones de clculo)
Junto con Internet ha dado lugar a la Sociedad de la
Informacin
Puede realizar tareas muy diferentes (escribir texto,
descargar msica, enviar un mensaje, )
Cmo conseguir que un ordenador
realice una determinada tarea?
3

El ordenador y la informtica
Un ordenador es un ejemplo de mecanismo, es
decir, una mquina que, una vez que se pone en
marcha, realiza una tarea de forma automtica, en
un cierto intervalo de tiempo, y luego se detiene.

Informacin

Automtica

Informtica:
Tratamiento automtico de informacin
4

El ordenador : mquina digital


En cualquier instante de ese intervalo de tiempo
(entre el arranque y la parada) decimos que un
mecanismo se encuentra en un cierto estado que
viene determinado por unas magnitudes

Continuas
Mquinas analgicas

Discretas
Mquinas digitales

Un ordenador es un mecanismo digital de propsito general


5

El ordenador y los algoritmos (1)

Un ordenador es una mquina que ejecuta algoritmos

Un algoritmo es una secuencia de instrucciones que


especfica qu acciones tendr que ejecutar y en qu
orden

La ejecucin o procesamiento de un algoritmo


supone la transformacin de una informacin de
entrada o datos en una informacin de salida o
resultados
+
Datos
Algoritmo
Programa
6

El ordenador y los algoritmos (2)


Una tarea ejecutable por un ordenador da lugar a un

problema algortmico
El algoritmo es la solucin a ese problema (software)
Cuando un algoritmo es ejecutado por los circuitos de
un ordenador (hardware) se origina un proceso que
genera resultados a partir de los datos
Un proceso se caracteriza por una sucesin de estados
de determinadas magnitudes que estn almacenadas en
la memoria del ordenador, y que llamaremos variables.

Propiedades de un algoritmo
Finitud. Longitud y duracin finitas (Eficiencia)

Preciso. Determina sin ambigedad las operaciones


que debe ejecutar un ordenador (Determinismo)
Efectividad. Pueden ser ejecutados por un humano con
papel y lpiz
Generalidad. Normalmente un algoritmo resuelve una
clase de problemas y no uno en particular
Entrada/Salida. Un algoritmo puede tener varias
entradas o ninguna, pero al menos una salida (resultado)
8

Los programas
Programa = DATOS + ALGORITMOS.
Algoritmos:

Datos:
Estructuras algebraicas.

Conjunto de valores.

Propiedades y operaciones.

Sencillos y compuestos.

Forma de describir la solucin de un


problema.
Serie ordenada y finita de instrucciones
elementales que trabajan sobre los datos
transformndolos.

Las estructuras de los datos deben ser un


reflejo de las estructuras de la realidad.

A partir de unos datos iniciales calcula los


valores finales.

Los datos concretos cuantifican la realidad.

Casi siempre hay que ir llevando los datos


a travs de mltiples transformaciones.

El algoritmo debe estar escrito en un lenguaje


ejecutable por un ordenador
9

Lenguajes de Programacin
La comunicacin con el ordenador se realiza utilizando un lenguaje
de programacin
Cuanto menos haya que indicar al ordenador, de mayor nivel se
considera el lenguaje:
Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel (llamados de tercera generacin)
Lenguajes de cuarta generacin

10

Lenguaje de mquina (1)


Est formado por las instrucciones que pueden ser interpretadas
por el hardware para realizar operaciones bsicas.
Estas instrucciones (mquina) son las que entiende el hardware.
Para que un algoritmo sea ejecutable debe estar escrito en
lenguaje mquina
Son cadenas de nmeros expresados en binario (unos y
ceros) que ordenan a la computadora realizar sus
operaciones ms elementales una por una.
Problema:
Extremadamente difciles de manejar.
Absolutamente dependientes de la mquina.
11

Lenguaje de mquina (2)


El cdigo mquina usa cdigo binario, es decir cualquier
instruccin o dato se representa mediante una secuencias de
ceros y unos.
Las unidades de un ordenador estn constituidas por circuitos
formados por unos componentes electrnicos denominados
puertas.
Las puertas se caracterizan porque slo manejan seales
elctricas que se pueden encontrar en uno de dos voltajes
posibles (0 V y 5 V) 0 y 1 (cdigo binario)
Cuando un dispositivo puede encontrarse en uno de dos
estados posibles decimos que contiene un bit de
informacin

1 byte = 8 bits
12

Lenguaje de mquina (3)


El tamao de una celda de memoria se expresa en bytes

13

Lenguaje ensamblador (1)


Lenguajes que utilizan smbolos mnemotcnicos en los
que cada nombre simblico se corresponde con una
instruccin en lenguaje mquina.
Para ejecutar un programa en ensamblador es
necesario convertirlo en lenguaje mquina.
Problema:
Poco poder expresivo.
Absolutamente dependientes de la mquina.

14

Lenguaje ensamblador (2)

15

Lenguajes de alto nivel (1)


Son independientes de la mquina en la que se
usan.
Agrupan en una sola instruccin tareas
complejas que requeriran el uso de ms de una
instruccin de cdigo mquina.
Hay traductores a cdigo mquina de las
distintas plataformas

16

Lenguajes de alto nivel (2)

17

Compiladores e Intrpretes
El nico lenguaje que entiende directamente una mquina es su propio
lenguaje mquina.
Los programas escritos en un lenguaje distinto deben ser traducidos a
lenguaje mquina para poder ser ejecutados.
Ensamblador:
Ensamblador Lenguaje mquina.
Compiladores e intrpretes:
Lenguaje de alto nivel Lenguaje mquina.

Los intrpretes van traduciendo el programa a medida que se ejecuta.


Los compiladores traducen todo el programa antes de ejecutarlo
18

Compiladores e Intrpretes: El caso de Java


Todo programa Java es compilado y despus interpretado

19

Fases de construccin de un programa


Definir el problema
Disear la solucin

JAVA
Editar
Compilar

Programa.java
Nombre1.class
Nombre2.class

CODIGO DE BYTES

Enlazar

JVM (Java Virtual Machine


Machine))
Ejecutar

Intrprete dependiente de la
plataforma

Probar

Mantener el programa

50 % del tiempo !!!


20

Cmo debe ser un programa?


Correcto
Quin quiere un programa incorrecto?, pero...
Existe la perfeccin?

Eficiente
Uso eficaz de los recursos (memoria, disco, CPU ...)

Fcilmente modificable
Los clientes cambian.
Los problemas evolucionan.
La comprensin del problema y de la solucin mejoran.
21

Errores de Programacin
Sintcticos
Los detecta el compilador (errores en tiempo de compilacin).
Mal uso de los elementos lexicogrficos
Ejemplo: Falta un parntesis, falta una coma, etc, ...

Semnticos
Lo que se dice no tiene sentido.
Estticos (los detecta el compilador): p.e
p.e.:
.: intento de sumar churras con merinas.
Dinmicos (errores en tiempo de ejecucin). Algunos se detectan al ejecutar
ejecutar (se
aborta el programa) y otros al observar detenidamente el comportamiento.
comportamiento.
Algunos son extremadamente difciles de detectar y corregir.

Qu se hace con los programas incorrectos?


Se educa al usuario (si el usuario se deja).
Se cambia la especificacin (si el cliente se deja).
Se modifica el programa!
programa!
22

Componentes de un sistema informtico


Los usuarios (personas u otros ordenadores o programas).
Los programas de aplicacin (procesadores de texto, hojas de
clculo, compiladores, bases de datos, videojuegos,...)
Definen cmo hay que utilizar estos recursos para resolver
los problemas de los usuarios.
El sistema operativo
Controla y coordina el uso del hardware por parte de los
distintos programas de aplicacin.
El hardware (CPU, memoria, dispositivos de e/s ...)
Facilita los recursos bsicos de la computacin.
23

El hardware: Unidades Funcionales del Ordenador


CONTROLADORES

CPU
UC
UAL

MEMORIA
CENTRAL

Ctrl_1

Ctrl_N

Unidades
de E/S
Unidad_1

Unidad_N
Unidad_
N

Bus del Sistema: datos + direcciones + control

Unidad central de proceso (CPU)


Memoria o unidad de almacenamiento primario (RAM)
Controladores especializados en e/s
Bus del sistema que comunica todas las unidades
Unidades de almacenamiento secundario
24

Esquema de la Memoria Central

Registro de direcciones Contiene la direccin de la celda a la que se va a acceder.


Registro de intercambio Recibe los datos en operaciones de lectura y almacena los
datos en las operaciones de escritura.
Selector de memoria Se activa cada vez que hay que leer o escribir conectando la
celda de memoria con el registro de intercambio.
Seal de control Indica si una operacin es de lectura o escritura.

25

Unidad central de proceso (CPU)


Coordina, controla y realiza todas las operaciones
Extrae las instrucciones de memoria central
Analiza las instrucciones y emite las rdenes para
su ejecucin
Est compuesta por la unidad de control (UC) y
unidad aritmtico/lgica (UAL)

26

Esquema de la Unidad de Control


Bus de datos e
instrucciones

Registro de
Instrucciones

Contador de
Programa

Decodificador

Bus de
Direcciones

Secuenciador

Reloj

Seales de Control del Sistema

Registro de instruccin Contiene la instruccin que se est ejecutando.


Contador de programa Contiene permanentemente la direccin de memoria de la
siguiente instruccin a ejecutar y la enva por el bus de direcciones.
direcciones.
Decodificador Se encarga de extraer el cdigo de operacin de la instruccin en
en
curso.
Secuenciador Genera las micrordenes necesarias para ejecutar la instruccin.
Reloj Proporciona una sucesin de impulsos elctricos a intervalos constantes.
con stantes.
27

Esquema de la Unidad Aritmtico-Lgica

Circuito Operacional Realiza las operaciones con los datos de los registros de
entrada.
Registros de Entrada Contienen los operandos de la operacin.
Registro acumulador Almacena los resultados de las operaciones.
Registro de estado Registra las condiciones de la operacin anterior.

28

Ciclo de ejecucin de un ordenador

Esta estructura de ordenador se denomina


Arquitectura de Von Neumann

El ciclo de ejecucin es el siguiente:


1. La UC toma una instruccin de memoria principal e
incrementa el contador de programa que almacena la
direccin de la siguiente instruccin
2. La UC decodifica la instruccin
3. La UC ejecuta la instruccin enviando a la ALU las
seales necesarias
4. Volver al paso 1.
29

El sistema operativo
Programa que acta de interfaz entre el usuario de un ordenador y el
hardware del mismo, ofreciendo el entorno necesario para que el usuario
pueda ejecutar programas.
Objetivos:
Facilitar el uso del sistema informtico.
Emplear el hardware del ordenador de forma eficiente.
Servicios dirigidos al usuario:

Servicios dirigidos a mejorar el sistema:

Ejecucin de programas.
Operaciones de E/S.

Asignacin de recursos.
Contabilidad.

Manipulacin de ficheros.
Deteccin de errores

Proteccin.

30

La asignatura

31

Los profesores de la asignatura


Responsable: Brbara lvarez Torres
Tutoras: Lunes 11 a 12 horas
Jueves de 16 a 17 horas
Despacho: Dpto. Tecnologas de la Informacin y Comunicaciones,
2 planta
balvarez@upct.es
www.tic.upct.es
Prcticas: Noelia Ortega (noelia.ortega@upct.es )
Francisco J. Escrib (paco.escriba@upct.es)
32

Objetivos de la asignatura
Aprender las tcnicas bsicas de la programacin
Desarrollar programas correctos no slo desde el punto
de vista computacional, sino desde el punto de vista de su
mantenimiento y uso.
Conocer un lenguaje de programacin concreto (Java) y
aprender a codificar en l.
Aprender a programar usando el lenguaje Java

33

Qu hay que aprender?

Un lenguaje de programacin: Java


- Los conceptos
- La sintaxis

Cmo usarlo
- Organizacin de las estructuras de datos:
Soporte de la realidad que estamos modelando
- Organizacin de los algoritmos:
Soporte de los procesos que estamos modelando

34

Cmo se aprende?

Entendiendo los conceptos

Practicando
- Prcticas y ejercicios del curso
- Plantear problemas propios, variantes de los vistos en la
asignatura
- Hacer evolucionar los programas con nuevas funciones
que no deben destrozar lo que ya funcionaba

35

El programa de la asignatura
Tema 1. Presentacin: La asignatura y la informtica
Tema 2. Tipos de datos primitivos y operadores
Tema 3. Estructuras de control
Tema 4. Estructuras estticas de datos: matrices
Tema 5. Abstraccin funcional
Tema 6. Programacin basada en objetos

36

Las prcticas

Asistencia obligatoria para todos aquellos que no las han cursado


en 2006-2007
Realizacin en el aula de informtica
- Grupos:
Mircoles 16 a 18 horas
Mircoles 18 a 20 horas

Se entregarn boletines de prcticas antes de las sesiones cuyos


resultados habr que mostrar al profesor al finalizar cada sesin

Entorno de desarrollo: RealJ versin 3.6 para plataformas Microsoft


Windows 95/98/2000/XP

Java Development Kit (JDK) http://www.javasoft.com


37

Libros recomendados
C. Muoz, A. Nio, A. Vizcaino. Introduccin a la Programacin con
Orientacin a Objetos. Prentice-Hall, 2000.
Deitel&Deitel. Cmo programar en Java. 5 Ed. Prentice Hall,
2004.
J. Snchez, G. Huecas, B. Fernndez y P. Moreno Iniciacin y
referencia: Java 2 .2 edicin en castellano, Osborne McGraw-Hill,
2005.
K. Arnold, J. Gosling, D. Holmes.El lenguaje de programacin
Java. 3 edicin, Addison-Wesley, 2001.
D. Arnow, G. Weiss. Introduccin a la programacin con Java: un
enfoque orientado a objetos. 1 edicin castellano, Addison-Wesley,
2000
38

Libros complementarios
B. Eckel. Piensa en Java. 2 Ed. Prentice-Hall, 2002.
J. Bishop. Java: Fundamentos de programacin. 2 Ed. AddisonWesley, 1999.
J. Jaworski. Java 1.2 Al descubierto. Prentice-Hall, 1999.
D. Camacho. Programacin, Algoritmos y Ejercicios resueltos en
Java.Ed. Prentice-Hall, 2003.
J.M. Prez, J. Carretero, et al. Problemas resueltos de
Programacin en lenguaje Java. Ed. Thomson, 2002.

39

Evaluacin de la asignatura
Examen escrito sobre 10 puntos
- Cuestiones terico-prcticas acerca de conceptos
impartidos en la asignatura + ejercicios o problemas

Evaluacin prcticas:
- Asistencia y realizacin de los ejercicios

Apto o no apto
Un alumno no apto podr optar a examinarse de las prcticas

40

Asignaturas complementarias
Fundamentos de Programacin es una asignatura
prctica y bsica:
Primera asignatura de naturaleza informtica de la
carrera (primer curso, primer cuatrimestre)
Se complementa con Laboratorio de Programacin
en el segundo cuatrimestre del curso
Opcionalmente, se complementa con Programacin
Avanzada en cuarto curso.
41

También podría gustarte