Chapter 1 - Introduction to Computers
and the Internet
Outline
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
Introduction
What Is a Computer?
Types of Programming Languages
Other High-Level Languages
Structured Programming
History of the Internet
Personal Computing
History of the World Wide Web
World Wide Web Consortium (W3C)
Hardware Trends
Key Software Trend: Object Technology
JavaScript: Object-Based Scripting for the Web
Browser Portability
C and C++
Java
1.16
1.17
Microsoft .NET
Dynamic HTML
 2004 Prentice Hall, Inc. All rights reserved.
1
2
1.2 What is a Computer?
• Computadora
– Equipo capaz de:
• Ejecutar cómputos
• Tomar decisiones lógicas
– Trabaja billones de veces más rápidas que los seres humanos
– Las computadoras más rápidas de la actualidad:
• Ejecutan cientos de billones de sumas por segundo (la
computadoras solo suma)
 2004 Prentice Hall, Inc. All rights reserved.
3
1.2 What is a Computer?
• Programs
– Conjunto de instrucciones que procesan datos
– Guía a la computadora a través de una serie de acciones
especificada por los programadores
• Computer system
– Incluye varios equipos de hardware
•
•
•
•
•
Keyboard
Screen (monitor)
Disks
Memory
Processing Units
 2004 Prentice Hall, Inc. All rights reserved.
4
1.2 What is a Computer?
• Cada computadora de divide en seis unidades principales
1. Input unit
• Es la sección de la computadora que “recibe” datos
• Obtiene datos de los input devices
– Usualmente las unidades de input son; keyboard, mouse, disk o
scanner
• Pone los datos a disposición de otros periferales
2. Output unit
• Es la sección de la computadora que “envía” datos
• Pone información procesada en varios periferales de output
– Usualmente las unidades de output son; Screens, paper printouts,
speakers
• Pone información disponible fuera de la computadora
 2004 Prentice Hall, Inc. All rights reserved.
5
1.2 What is a Computer?
3. Memory unit
• Acceso rápido, poca capacidad de almacenamiento
• Retiene información de entrada a través de las unidades de
input
• Retiene información que ha sido procesada hasta que pueda ser
enviada a una unidad de salida
• Con frecuencia se le dice; memory, primary memory, or
random access memory (RAM)
4. Arithmetic and Logic Unit
• Sección de la computadora en donde se “produce”
• Ejecuta cálculos (suma, resta, multiplicación y división)
• Contiene mecanismos de decisión y puede hacer
comparaciones
 2004 Prentice Hall, Inc. All rights reserved.
6
1.2 What is a Computer?
5. Central Processing Unit (CPU)
• Sección de la computadora en donde se “administra”
• Coordina y supervisa otras secciones
6. Secondary storage unit
• Almacenamiento Long-term, high-capacity
• Almacena programas y/o datos que no se están utilizando por
otras unidades en unidades secundarias como los discos.
• Toma mucho más tiempo en accederlo que la memoria
primaria
 2004 Prentice Hall, Inc. All rights reserved.
7
1.3 Types of Programming Languages
• Computer programs
– Se les conoce como software
– Los programadores escriben instrucciones en diferentes lenguajes
de programación
• Three general types of programming languages
– Machine languages
– Assembly languages
– High-level languages
 2004 Prentice Hall, Inc. All rights reserved.
8
1.3 Types of Programming Languages
• Machine languages
–
–
–
–
–
Lenguaje natural de una computadora en particular
Se define por el diseño de hardware de la computadora
Consiste generalmente de cadena de números
Son machine dependent (depende del modelo de computadora)
Dificil de manejar para los seres humanos
• Ejemplo: Sumar la paga extra a la paga básica y almacenar el
resultado en paga total (gross pay)
+1300042774
+1400593419
+1200274027
– Lento y tedioso para la mayoría de los programadores
 2004 Prentice Hall, Inc. All rights reserved.
9
1.3 Types of Programming Languages
• Assembly languages
– Los programadores comenzaron a utilizar abreviaciones de
palabras en Inglés para sustituir el lenguaje de máquina
– Representan operaciones elementales de la computadora
– Programas que traducen llamados ensambladores
(asemblers) convierten de assembly-language a machinelanguage
– Ejemplo:
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
 2004 Prentice Hall, Inc. All rights reserved.
10
1.3 Types of Programming Languages
• High-level languages
– Se fueron desarrollando a medida que aumentó el uso de la
computadora. El lenguaje ensamblador se volvió
inadecuado y consumía mucho tiempo para poder desarrollar
un programa en ese formato
– Oraciones sencillas se pueden escribir las cuales realizaban
varias tareas
– Los programas que traducían se llaman compiladores
– Permite a los programadores escribir instrucciones similares
al lenguaje Inglés de uso diario
– Ejemplo:
grossPay = basePay + overTimePay
 2004 Prentice Hall, Inc. All rights reserved.
11
1.3 Types of Programming Languages
• High-level languages (II)
– Mucho más deseables para los programadores
– Algunos lenguajes en específico son:
• C, C++, Visual Basic and Java
• Scripting languages: JavaScript, VBScript and Perl
– Los Interpretadores ejecutan programas de alto nivel (high-level)
sin la necesidad de compilar.
• Son populares en medio ambiente de desarrollo
– Una vez que el programa se desarrolla, se crea la versión
compilada
 2004 Prentice Hall, Inc. All rights reserved.
12
1.4 Other High-Level Languages
• Hundreds developed, only few widely used
– COBOL (COmmon Business Oriented Language)
• Se utiliza primordialmente para aplicaciones que requieren
manipulación precisa y efectiva de grandes cantidades de datos
• Mitad de todo el software de negocios todavía se programa en
COBOL
– BASIC
• Lenguaje sencillo para ayudar a los principiantes a familiarizarse con la
programación
– Pascal
• Lenguaje que enfatiza la programación estructurada. Sustituyó en un
momento dado el lenguaje BASIC
 2004 Prentice Hall, Inc. All rights reserved.
13
1.5 Structured Programming
• 1960’s
– Los programadores se dieron cuenta que el desarrollo del
software era más complejo de lo que imaginaban
– Como resultado evolucionó la programación estructurada
• Es una disciplina para escribir programas de computadoras
• Mucho más fácil de depurar (debug) y modificar que los
programas no estructurados (código espagueti)
• Pascal
– Diseñado para enseñar programación estructurada en ambientes
académicos
– Se convirtió en el lenguaje preferido en muchas universidades
 2004 Prentice Hall, Inc. All rights reserved.
14
1.5 Structured Programming
• Ada programming language
– Desarrollado bajo el patrocinio del Departamento de Defensa
– Se buscaba un solo lenguaje que llenara todas las necesidades
del Departamento de Defensa
– Se basaba en Pascal pero tenía sus diferencias
– Tiene la capacidad de manejar multitareas (Multitasking)
• Muchas actividades se pueden procesar en paralelo
• Esto no lo tiene C ni C++
• Similar a la técnica de Java llamada multithreading
 2004 Prentice Hall, Inc. All rights reserved.
15
1.6 History of the Internet
• ARPANET
– Implementado a finales de los 60’s por ARPA (Advanced
Research Projects Agency of DOD)
– Interconectaba sistemas de computadoras de una docena de
universidades e instituciones con líneas de comunicación de
56KB
– Fue el abuelo del Internet actual
– La intención fue permitir que las computadoras fueran
compartidas
– El beneficio clave fue permitir una comunicación rápida
entre los investigadores (e-mail)
 2004 Prentice Hall, Inc. All rights reserved.
16
1.6 History of the Internet
• ARPA’s goals
– Permitir a múltiples usuarios enviar y recibir información a la
misma vez
– Network operated packet switching technique
• Los datos digitales se enviaban en pequeños paquetes llamados
packets
• Esos paquetes contienen datos, información sobre direcciones
(address), información sobre error-control e información sobre
secuencia (sequencing info)
• Reducía grandemente los costos de transmisión de las líneas
dedicadas de comunicación
– El Network fue diseñado para operar sin tener un control
centralizado
• Si alguna parte del network falla, las porciones restantes siguen
teniendo la capacidad de enviar y recibir paquetes (route
packets)
 2004 Prentice Hall, Inc. All rights reserved.
17
1.6 History of the Internet
• Transmission Control Protocol (TCP)
– Nombre de los protocolos de comunicación a utilizarse en el
ARPAnet
– Se aseguraba de que los mensajes fueran enviados adecuadamente
y de que llegaran intactos a su destino
• Organizations implemented own networks
– Utilizado para comunicarse dentro de la organización (intraorganization) y para comunicaciones
 2004 Prentice Hall, Inc. All rights reserved.
18
1.6 History of the Internet
• Huge variety of networking hardware and software
appeared
– ARPA logró inter-comunicación entre todas las plataformas con el
desarrollo del IP
• Internetworking Protocol
• Es la arquitectura actual del Internet
– Combina un conjunto de protocolos llamados TCP/IP
• The Internet
– Limitado a universidades e instituciones de investigación
– La rama militar se convirtió en uno de sus mayores usuarios
– Luego, el gobierno decidió accede el Internet para propósitos
comerciales
 2004 Prentice Hall, Inc. All rights reserved.
19
1.6 History of the Internet
• Internet traffic grew
– Los negocios gastaron mucho para mejorar el Internet
• Mejor servicio a sus clientes
– Fuerte competencia entre los suplidores de hardware, software y
equipos de comunicación
– Resultado:
• EL Bandwidth (capacidad de transmitir información) del Internet
aumento considerablemente
• Los costos bajaron dramáticamente
 2004 Prentice Hall, Inc. All rights reserved.
20
1.7 Personal Computing
• IBM
– En el 1981, se introduce la computadora personal IBM
– Esto hizo que la computación personal (personal computing)
fuese legítimo en los negocios, industria y organizaciones del
gobierno
– Las computadoras eran unidades “stand-alone”
• En otras palabras la información solo se compartía con el
intercambio de discos
– Las computadoras se pudieron comunicar por:
• Líneas telefónicas
• Red Local (Local Area Networks (LANs))
– Esto era dirigido a la computación distribuida (distributed
computing)
 2004 Prentice Hall, Inc. All rights reserved.
21
1.7 Personal Computing
• Computers today
– Más poderosas que las computadoras que costaban millones de
dólares hace 20 años atrás
– Workstations
• Los desktops más poderosos en la actualidad
• Provee al usuario de mucha capacidad de computación
– La información se comparte fácilmente por los networks
• Los Networks son controlados por los servidores (servers)
– Concepto de cliente-servidor en donde programas y datos de
uso común son utilizados por el cliente
– Popular operating systems
• UNIX, Mac OS X, Windows, Windows NT, Linux
 2004 Prentice Hall, Inc. All rights reserved.
22
1.8 History of the World Wide Web
• WWW
– Permite a los usuarios de computadoras localizar y ver
documentos con elementos de multimedios
– Se introdujo en el 1990 por Tim Berners-Lee
• Internet today
– Mezcla de computación con tecnologías de comunicaciones
– Permite que la información este disponible constantemente y
al instante para cualquier persona que tenga una conexión
 2004 Prentice Hall, Inc. All rights reserved.
23
1.9 World Wide Web Consortium (W3C)
• W3C
– Fundado en el 1994 por Tim Berners-Lee
• Dedicado al desarrollo de tecnologías no-propietarias e interoperables para el World Wide Web y permite que el Web pueda
ser universalmente accesible
– Estandarizar
• Recomendaciones del W3C: tecnologías a estandarizar por W3C
– Incluye; Extensible HyperText Markup Language
(XHTML), Cascading Style Sheets (CSS) y Extensible
Markup Language (XML)
• Para someter una recomendación, se debe pasar por las siguientes
fases;
– Working Draft
– Candidate Recommendation
– Proposed Recommendation
 2004 Prentice Hall, Inc. All rights reserved.
24
1.9 World Wide Web Consortium (W3C)
• W3C Structure
– 3 Hosts
• Massachusetts Institute of Technology (MIT)
• European Research Consortium for Informatics and
Mathematics (ERCIM)
• Keio University of Japan
– 400 Miembros
• La página de W3C es www.w3.org
• Metas de W3C
– User Interface Domain
– Technology and Society Domain
– Architecture Domain and Web Accessibility Initiatives
 2004 Prentice Hall, Inc. All rights reserved.
25
1.10 Hardware Trends
• Mejoramiento en las tecnologías
– La comunidad del Internet continua mejorando en:
• Hardware
• Software
• Communications
– Cost of products and services
• Ha bajado considerablemente en las últimas décadas
– Computer capacity and speed
• Se duplica cada dos años (promedio)
– Microprocessor chip
• Su desarrollo ha sido dramático desde finales de los 70 hasta la
actualidad
 2004 Prentice Hall, Inc. All rights reserved.
26
1.11 The Key Software Trend:
Object Technology
• Costs
– Los costos de Hardware han bajado considerablemente
– Los costos por concepto del desarrollo del Software han
aumentado
• Cada vez se desarrollan programas más sofisticados y
poderosos
• Objects
– Componentes reusables de software que representan items
de modelos del mundo real
– Permite desarrollar software mas productivo
– Los programas orientados a objetos (Object-oriented
programs) con frecuencia son fáciles de entender, corregir y
modificar que el estilo de programación estructurada
 2004 Prentice Hall, Inc. All rights reserved.
27
1.11 The Key Software Trend:
Object Technology
• Structured Programming
– Dirigido a mejorar la tecnología del software
• Larger improvements
– El más significativo apareció con el concepto de
programación orientada a objetos en los 80 y 90
• Object technology
– Comenzó en los 60
– C++ - Desarrollado en los 80, basado en dos lenguajes
• C – Desarrollado para implementar UNIX OS a principios de
los 70
• Simula 67 – Lenguaje de programación para simulaciones
creado en el 1967
– C++ - absorbió capacidades de C y Simula 67 en cuanto a
la manipulación de objetos se refiere
 2004 Prentice Hall, Inc. All rights reserved.
28
1.11 The Key Software Trend:
Object Technology
• Object technology
– Esquema de empaque (Packaging scheme) que ayuda a crear
unidades de software importantes
• Enfocado en áreas particulares de aplicaciones
– Antes de que apareciera este concepto, los lenguajes de
programación se enfocaban en acciones (verbos) en lugar de
objetos (nombres)
• El programador debía programar principalmente con verbos
• Esto hace que la programación sea tediosa
• Nosotros vivimos en un mundo lleno de objetos complejos y
de acciones simples
 2004 Prentice Hall, Inc. All rights reserved.
29
1.11 The Key Software Trend:
Object Technology
• Object technology (continued)
– Object-oriented programming
• Los programadores trabajan de una forma similar a como ven
el mundo
• Es un proceso mucho más natural
• Mejora significativamente la productividad
– Procedural programming
• No puede rehusarse tan fácilmente
• Fuerza a que el programador constantemente reinvente la rueda
– Por consiguiente esto genera una perdida de tiempo y
recursos
– Objects
• Módulos de Software
• Se mantienen en librerías
• Rehusable – Economizan tiempo y recursos
 2004 Prentice Hall, Inc. All rights reserved.
30
1.12 JavaScript: Object-Based
Scripting for the Web
• JavaScript
–
–
–
–
Lenguaje avanzado de programación
Está basado en objetos
Apoya técnicas de ingeniería de software
Gratis para bajar (download) y se encuentra en todos los
browsers populares
• Atractivo para los colegios (introducción a lógica)
• Se puede fácilmente obtener nuevas versiones del programa y
arreglo de errores
– Poderoso lenguaje tipo scripting
• Portable
• Se puede ejecutar en modo interpretativo en las computadoras
de los clientes
 2004 Prentice Hall, Inc. All rights reserved.
31
1.13 Browser Portability
• Browser portability
– Fuerte reto
• Gran diversidad de clientes que utilizan el browser
• También hay varias plataformas en uso
• Dificultad en
– Conocer todas las capacidades de todos los browsers y
plataformas en uso
– Conseguir la combinación perfecta entre portabilidad,
complejidad y usabilidad
 2004 Prentice Hall, Inc. All rights reserved.
32
1.14 C and C++
• History of C and C++
– Evolucionó del lenguaje B (desarrollado por Dennis Ritchie)
– C se implementó en el 1972 como contemporáneo de Pascal
• C++ desarrollado por Bjarne Stroustrup en 1980
• C++ Inicialmente se utilizó en Unix, en la actualidad se utiliza
prácticamente en todos los nuevos Sistemas Operativos
– Lo libros de Deitel apoyaban el uso de C sobre Pascal a
principios de los 90
• Muchos pensaba que C era más difícil de aprender y utilizar
• Advantages of C++
– Extiende las capacidades de C con la programación
orientada a Objetos
– El código hecho en C se puede integrar a C++
 2004 Prentice Hall, Inc. All rights reserved.
33
1.15 Java
• History of Java
– Project Green (1991): desarrolló un lenguaje basado en C e
(después llamado Java) para equipos electrónicos
• Su desarrollo se agilizó debido a la explosión del World Wide
Web en el 1993: Ya que tiene el potencial de crear páginas Web
con contenido dinámico
• Java se introdujo en mayo del 1995
• Advantages of Java
–
–
–
–
–
Permite paginas Web con contenido dinámico e interactivo
Permite aplicaciones de gran escala de índole empresarial
Mejora los Web Servers
Provee aplicaciones para los equipos de consumo
Es uno de los lenguajes más ampliamente implementados en
el mundo
 2004 Prentice Hall, Inc. All rights reserved.
34
1.16 Microsoft .NET
• Iniciativa .NET
– junio 2000
– Utiliza multiples lenguajes de programación en un mismo
proyecto
– Internet y desarrollo Web
• ASP.NET permite complejas aplicaciones Web-based clienteservidor
• A dirigiendo la programación hacia el Web
– .NET Framework
• Framework Class Library
 2004 Prentice Hall, Inc. All rights reserved.
35
1.17 Dynamic HTML
• DHTML
– Dos versiones
• Microsoft
• Netscape
– Consiste de varias tecnologías disponibles para download
– Se utiliza para desarrollar aplicaciones basadas en Web de
alto rendimiento
• Gran parte del trabajo de la aplicación se ejecuta en el cliente
en lugar del servidor o del Internet
 2004 Prentice Hall, Inc. All rights reserved.
36
1.18 Internet and World Wide Web How to
Program
• Rise of electronic-commerce (e-commerce)
– Reconstrucción del negocio moderno
• Internet and World Wide Web How to Program
– Teaches programming languages, programming language
principles and Internet and Web-based application
technologies
– Intended audiences
• Introductory courses in C++, Java and Visual Basic
• Upper-level elective programming courses
• Corporate training programs for professional programmers
 2004 Prentice Hall, Inc. All rights reserved.
37
1.18 Internet and World Wide Web How to
Program
• Internet and World Wide Web How to Program
includes treatments of 7 other popular
programming languages
–
–
–
–
–
–
Microsoft Active Server Pages .NET (ASP.NET)
Perl and Common Gateway Interface (CGI)
PHP
ColdFusion
Python
Java Servlets and JavaServer Pages
 2004 Prentice Hall, Inc. All rights reserved.
Descargar

Document