PDF de programación - Java y Servicios Web I - Master en Ingeniería Matemática

Imágen de pdf Java y Servicios Web I - Master en Ingeniería Matemática

Java y Servicios Web I - Master en Ingeniería Matemáticagráfica de visualizaciones

Publicado el 14 de Enero del 2017
879 visualizaciones desde el 14 de Enero del 2017
1,7 MB
67 paginas
Creado hace 7a (08/05/2012)
Introducción

Java y Servicios Web I

Master en Ingeniería Matemática

Manuel Montenegro

Dpto. Sistemas Informáticos y Computación

Desp. 467 (Mat)

montenegro@fdi.ucm.es

Contenidos

● Acerca de la asignatura.
● Un poco de historia (I).
● Tipos abstractos de datos.
● Características de la programación orientada a

objetos.

● Un poco de historia (II).
● Primeros pasos en Java.

8/Mayo/2012

1. Introducción

2

Objetivos del curso

● Diseño orientado a objetos con Java.
● Utilización de librerías existentes en Java.
● Introducción a:

● Diseño de interfaces gráficas (Swing).
● Acceso a bases de datos (JDBC).
● Servicios web.

8/Mayo/2012

1. Introducción

3

Requisitos

● Conocimientos básicos de programación

estructurada.
● Pascal
● Python
● C
● Basic
● …

8/Mayo/2012

1. Introducción

4

Contenidos

● Módulo I: Java y POO

1.Introducción.
2.Java para programadores.
3.Clases y objetos.
4.Herencia.
5.Polimorfismo.
6.Excepciones y E/S

8/Mayo/2012

1. Introducción

5

Contenidos

● Módulo II: Librerías de Java

7.Librerías básicas de Java.
8.Interfaces gráficas con Swing.
9.Introducción a la programación concurrente.
10. Acceso a bases de datos.
11. Aplicaciones y servicios web.

8/Mayo/2012

1. Introducción

6

¿Por qué Java?

● Es un lenguaje de propósito general.

● Aplicaciones de escritorio.
● Aplicaciones móviles (Android).
● Aplicaciones web.

● Orientado a objetos.
● Multiplataforma.

8/Mayo/2012

1. Introducción

7

¿Por qué Java?

TIOBE Programming Community Index for January 2012

8/Mayo/2012

1. Introducción

8

¿Por qué Java?

TIOBE Programming Community Index for April 2012

8/Mayo/2012

1. Introducción

9

Aplicaciones

● Cálculo numérico.
● Simulación.
● Servicios web: obtención automática de datos

desde fuentes externas.

● Programación orientada a objetos:

● Desarrollo de sistemas de complejidad media-alta.
● Extendida en el ámbito empresarial.

8/Mayo/2012

1. Introducción

10

Evaluación

● 40% - Evaluación continuada.

● 30% - Ejercicios.
● 10% - Asistencia y participación.

● 60% - Práctica final.

8/Mayo/2012

1. Introducción

11

Tutorías

● Tutorías

● Jueves y Viernes 11h-13h (Desp. 467)
● PPH en la Facultad de Informática.

● Foro del Campus Virtual
● Correo-e: montenegro@fdi.ucm.es

8/Mayo/2012

1. Introducción

12

Bibliografía básica

● P. Deitel, H. Deitel

Java. How to Program (9th Edition)

● B. Eckel

Thinking in Java (3rd Edition)
Disponible en http://mindview.net
● Documentación de librerías de Java

http://docs.oracle.com/javase/6/docs/api/

8/Mayo/2012

1. Introducción

13

Contenidos

● Acerca de la asignatura.
● Un poco de historia (I).
● Tipos abstractos de datos.
● Características de la programación orientada a

objetos.

● Un poco de historia (II).
● Primeros pasos en Java.

8/Mayo/2012

1. Introducción

14

Un poco de historia: Años 50 y 60

● Inicialmente, los programadores introducían las

instrucciones de su programa mediante el sistema de
códigos del computador destino (código máquina).
● Directamente interpretable por la máquina.
● Específico de cada máquina.

● Hacia 1953, los programas eran cada vez más

complejos, y muy caros de programar.

● Programación automática: herramientas que generan

automáticamente programas a partir de notaciones
de más alto nivel.

● Su viabilidad era cuestionable en los inicios.

8/Mayo/2012

1. Introducción

15

Un poco de historia: Años 50 y 60

● Lenguajes de alto nivel (1954)
● FORTRAN (FORmula TRANslating system)

[Backus 1957]
● Vectores, matrices, variables con subíndices,

instrucción DO para construir iteraciones.

● Código eficiente, comparable al construido por un

programador.

● Primer lenguaje de alto nivel independientemente

de la máquina.
● Gran difusión.

8/Mayo/2012

1. Introducción

16

Un poco de historia: Años 50 y 60

● ALGOL 60 (ALGOrithmic Language)

[Bauer, Naur 1958]
● Gran influencia en lenguajes posteriores.
● Instrucciones estructuradas, tipos, recursividad.

● COBOL (COmmon Business-Oriented Language)
● Lenguaje adaptado a la programación de gestión.
● Énfasis en aspectos de descripción de datos, y manipulación de

ficheros.

● LISP (LISt Processing Language)

[McCarthy, 1956]
● Lenguaje funcional.
● Aplicaciones de inteligencia artificial.

8/Mayo/2012

1. Introducción

17

La crisis del software

● Años 60: Fase de burbuja, optimismo desmesurado.

● Se podían realizar programas más grandes con menos

esfuerzo.

● Programas cada vez más grandes.

● Sistemas operativos.
● Compiladores, editores de texto.
● Multiprogramación.

● Sonados fracasos:

● OS/360 del IBM 360 (1964)
● Sonda espacial Mariner I

8/Mayo/2012

1. Introducción

18

La crisis del software

● Búsqueda de un lenguaje que “sirviera para

todo”

● PL/I (IBM 360)

● Lenguaje con muchas características, no

ortogonales.

● ALGOL 68

● Lenguaje poco comprensible, y difícil de

implementar.

● Conclusión: no basta un lenguaje de

programación; hace falta una metodología.

8/Mayo/2012

1. Introducción

19

Años 70

● Programación estructurada.

● Utilizar lenguajes más modestos que los existentes

hasta el momento, pero sobre los que se pueda
razonar (evitar sentencia goto).

● Permite la verificación matemática de programas.
● Abstracción procedimental.

[6, 9, 1, 3, 4]

for i = 1..n
for j = 1..n-i
if a[j] > a[j+1]
extra a[j]
a[j] a[j+1]
a[j+1] extra





[1, 3, 4, 6, 9]

8/Mayo/2012

1. Introducción

20

Años 70

● Programación estructurada.

● Utilizar lenguajes más modestos que los existentes

hasta el momento, pero sobre los que se pueda
razonar (evitar sentencia goto).

● Permite la verificación matemática de programas.
● Abstracción procedimental.

[6, 9, 1, 3, 4]

ORDENAR

[1, 3, 4, 6, 9]

8/Mayo/2012

1. Introducción

21

Años 70

● PASCAL [Wirth, 1970]
● C [Ritchie, 1973]
● ADA [DoD EEUU, 1975-1983]

8/Mayo/2012

1. Introducción

22

Contenidos

● Acerca de la asignatura.
● Un poco de historia (I).
● Tipos abstractos de datos.
● Características de la programación orientada a

objetos.

● Un poco de historia (II).
● Primeros pasos en Java.

8/Mayo/2012

1. Introducción

23

Tipos abstractos de datos

type Fecha = record
dia, mes, año: integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin


end;

8/Mayo/2012

1. Introducción

24

Tipos abstractos de datos

type Fecha = record
dia, mes, año: integer;
end;

var actual, f: fecha;

write(f.dia, '/', f.mes, '/', f.año)

if f.año < … then
diff := DiferenciaFechas(actual, f);
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin


end;

case f.mes of

end;

8/Mayo/2012

1. Introducción

25

Tipos abstractos de datos

¿Puedes hacer la diferencia entre fechas

más eficiente?

Ok.

8/Mayo/2012

1. Introducción

26

Tipos abstractos de datos

type Fecha = record
// número de días transcurridos desde el
// 1 de enero de 1970
numeroDias:integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin
return f2.numeroDias – f1.numeroDias;
end;

8/Mayo/2012

1. Introducción

27

Tipos abstractos de datos

type Fecha = record
// número de días transcurridos desde el
// 1 de enero de 1970
numeroDias:integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin
return f2.numeroDias – f1.numeroDias;
end;

var actual, f: fecha;

write(f.dia, '/', f.mes, '/', f.año)

if f.año < … then
diff := DiferenciaFechas(actual, f);
end;

case f.mes of

end;

8/Mayo/2012

1. Introducción

28

Tipos abstractos de datos

● Un tipo abstracto de datos es aquel cuyas

operaciones relacionadas (interfaz) pueden
describirse independientemente de su
representación interna (implementación).

IMPLEMENTACIÓN

type Fecha = record
// número de días transcurridos desde el
// 1 de enero de 1970
numeroDias:integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin
return f2.numeroDias – f1.numeroDias;
end;

function Dia(f:Fecha):integer;
begin
...
end;
function Mes(f:Fecha):integer;
begin
...
end;

INTERFAZ

tipo Fecha
Operaciones:
Dia(f:fecha);
Mes(f:fecha);
Año(f:fecha);
DiferenciaFechas(f1,f2:Fecha);

8/Mayo/2012

1. Introducción

29

Tipos abstractos de datos

type Fecha = record
// número de días transcurridos desde el
// 1 de enero de 1970
numeroDias:integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin
return f2.numeroDias – f1.numeroDias;
end;

function Dia(f:Fecha):integer;
begin
...
end;
function Mes(f:Fecha):integer;
begin
...
end;

var actual, f: fecha;

write(Dia(f), '/', Mes(f), '/', Año(f)

if Año(f) < 1920 then
diff := DiferenciaFechas(actual, f);
end;

case Mes(f) of

end;

OK

tipo Fecha
Operaciones:
Dia(f:fecha);
Mes(f:fecha);
Año(f:fecha);
DiferenciaFechas(f1,f2:Fecha);

8/Mayo/2012

1. Introducción

30

Tipos abstractos de datos

type Fecha = record
dia, mes, año: integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin
...
end;

function Dia(f:Fecha):integer;
begin
return f.dia;
end;
function Mes(f:Fecha):integer;
begin
return f.mes;
end;

var actual, f: fecha;

write(Dia(f), '/', Mes(f), '/', Año(f)

if Año(f) < 1920 then
diff := DiferenciaFechas(actual, f);
end;

case Mes(f) of

end;

OK

tipo Fecha
Operaciones:
Dia(f:fecha);
Mes(f:fecha);
Año(f:fecha);
DiferenciaFechas(f1,f2:Fecha);

8/Mayo/2012

1. Introducción

31

Contenidos

● Acerca de la asignatura.
● Un poco de historia (I).
● Tipos abstractos de datos.
● Características de la programación orientada a

objetos.

● Un poco de historia (II).
● Primeros pasos en Java.

8/Mayo/2012

1. Introducción

32

Programación orientada a objetos

● Características de la POO:

● Encapsulación.
● Herencia.
● Polimorfismo.

8/Mayo/2012

1. Introducción

33

Encapsulación

● Ocultamiento del estado interno de un objeto,

de modo que sólo puede ser cambiado
mediante las operaciones definidas para ese
objeto.

type Fecha = record
// númer
  • Links de descarga
http://lwp-l.com/pdf811

Comentarios de: Java y Servicios Web I - Master en Ingeniería Matemática (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad