BIENVENIDO AL CURSO
Fundamentos de
Programación
FUNDAMENTOS DE PROGRAMACIÓN
Logro de la semana
Al finalizar la semana, el alumno:
Comprenderá la importancia del
software en la computación, así como los
paradigmas de programación en
ciencias de la computación.
2
FUNDAMENTOS DE PROGRAMACIÓN
Introducción
El software es importante para la informática,
sin este, el hardware no tendría sentido. El
software es quien da las órdenes e indica que debe
hacer la máquina con sus elementos, cuándo y
cómo.
Una computadora sin software sería simplemente
un conjunto de chips, cables, periféricos e
interruptores totalmente inertes y sin función
alguna. Es el software quien ordena todo ese
material, lo reconoce, le asigna una función según
sus características, y permite que funcione todo
en su conjunto.
En este contexto, desde el punto de vista de
ciencias de la computación, existen diversos
paradigmas para el desarrollo de software, los
cuales veremos también en esta sesión.
3
Índice
Tema 1 Software
Tema 2 Tipos de software
SEMANA
3 Tema 3 Paradigmas de
Programación
4
FUNDAMENTOS DE PROGRAMACIÓN
Software
5
FUNDAMENTOS DE PROGRAMACIÓN
Software
Definición
→ Se conoce como software al sistema formal de un sistema informático, que comprende el conjunto de los
componentes lógicos necesarios que hace posible la realización de tareas específicas.
→ El software son los programas que se utilizan para una acción específica a realizar (Alegsa, 2016). Hay que
tener en cuenta que el software se desarrolla dentro del hardware.
Clasificación
El software se clasifica de dos maneras:
→ Sistema operativo.
→ Sistema de gestión de base de datos.
6
FUNDAMENTOS DE PROGRAMACIÓN
Software básicos – Sistema operativo Software básicos – Sistema de Gestión de Base
de Datos
• Administrador de recursos informáticos • SGBD: es un conjunto de programas que
(CPU, memoria, Discos, I/O) controla la creación, mantenimiento y uso
• Interfaz entre el hardware y el usuario de bases de datos por parte de una
• Implementación de Control de organización y sus usuarios finales.
Autenticación de Usuarios y Seguridad de la Ejemplo:
Información. • Oracle
Ejemplos: • MySQL
• Windows • Microsoft SQL.
• Linux • Etc.
• Unix
7
FUNDAMENTOS DE PROGRAMACIÓN
Software básicos – Aplicaciones Software básicos – Utilitarios
Ejemplos: Ejemplos:
• Microsoft Office
• Editor de textos de word • Compresor de archivos (ejemplo:
• Excel Winzip).
• Banco de Datos Access
• PowerPoint • Antivírus (ejemplo: Norton).
• Outlook • Etc.
• Publisher
• Administrativos
• Científicos
• Educacionales
8
FUNDAMENTOS DE PROGRAMACIÓN
Paradigmas de
programación
9
9
FUNDAMENTOS DE PROGRAMACIÓN
¿Qué es un paradigma?
Definición
• En ciencias (general)
Según Thomas Kuhn: “Un modelo particular
que, en un período de tiempo más o menos
largo y más o menos explícito, guía el
desarrollo de una investigación”.
• En Ciencias de la Computación
Según Peter Van Roy: “Un sistema formal que
define cómo se realiza la programación. Cada
paradigma tiene su propio conjunto de
técnicas y formas de estructurar el
pensamiento en la composición del software”.
10
03
FUNDAMENTOS DE PROGRAMACIÓN
Evolución de los paradigmas Observa la evolución de los paradigmas en las
ciencias de la computación.
Machine FORTRA C
Languag N Procedural
e Assembl
y
LIS
P Functional
SIMUL Smalltal C+ Jav
A k + a
PROLO
G Logic
Emergent
Banaszewski, R. (2009)
1950 1960 1970 1980 1990 2000
11
03
FUNDAMENTOS DE PROGRAMACIÓN
Actuales paradigmas de programación
Taxonomía de paradigmas de programación (Van Roy, 2009).
En la imagen se observa
los principales
paradigmas de
programación.
Para conocer un poco
más, revisa el siguiente
enlace: Programming
paradigms for dummies:
What every programmer
should know.
12
03
FUNDAMENTOS DE PROGRAMACIÓN
Actuales paradigmas de programación
• Como se observa, los Paradigma de
actuales paradigmas de programación
programación se dividen
en dos: paradigma
imperativo y el
paradigma declarativo
Paradigma imperativo Paradigma declarativo
• En el paradigma
imperativo se observa el
paradigma
procedimental y el
orientado a objetos. Paradigma Paradigma Paradigma Paradigma
procedimental orientado a funcional lógico
• Por otro lado, en el objetos
paradigma declarativo
tenemos el paradigma
funcional y el paradigma
lógico. Programación
Programación Basada en
Orientada a Reglas
Eventos
13
FUNDAMENTOS DE PROGRAMACIÓN
Lenguajes de programación
Los paradigmas emergentes, generalmente, se materializan sobre los lenguajes de los paradigmas dominantes,
como C++ y Java.
Si bien algunos de estos paradigmas tienen sus propios lenguajes, los conceptos de los mismos son más
comúnmente aplicados a los lenguajes de los Paradigmas Dominantes.
Tipos de lenguajes de programación
Lenguajes de programación
Lenguaje de bajo nivel: Lenguaje de alto nivel:
Lenguaje Ensamblador e.g. lenguajes Declarativos
(Assembly) (Prolog , LISP)
(e.g. C++, Object Pascal,...)
(e.g. C, Pascal, ...)
Lenguajes imperativos
(procedimentales, orientado a objetos)
14
FUNDAMENTOS DE PROGRAMACIÓN
Orientación a objetos (OO) Lenguaje C y C++
• Es un paradigma (“modelo genérico”, • Es un lenguaje muy importante para el Ing.
conjunto de ideas) para el diseño e Electrónica e Ing. Informática que tienden a
implementación de software, tal como lo trabajar con sistemas
es el paradigma procedimental. electrónico-computacional (por ejemplo, con
fines de optimización y ahorro de memoria)
• En cuanto a la implementación de como los sistemas integrados.
software, existen lenguajes de • Es un lenguaje ampliamente utilizado con
programación que soportan una sintaxis difundida, sirviendo como
(“naturalmente”) este paradigma, inspiraciones tecnológicas.
destacando aquí C++. • Características:
• Un lenguaje multinivel: permite crear
• En este contexto, un objeto puede programas con enfoques que van desde
entenderse como un módulo del 'bajo a alto nivel'.
software. • Organización: funciones y estructuras de
datos, así como la división del código
fuente en varios archivos.
• Flexibilidad: permite la independencia
de la memoria preasignada.
15
FUNDAMENTOS DE PROGRAMACIÓN
Lenguaje C y C++
• Soporte tecnológico:
• Los lenguajes C/C++ son compatibles con varios entornos/tecnologías, por ejemplo:
• Borland C++.
• C++ Builder da Borland .
• Microsoft Visual C++.
• Microsoft Visual C++ .Net
• Microsoft Visual C++ .Net (Express Edition)
• G++
• Dev C++
• Codeblocks
• Influencia Tecnológica de C/C++:
• Ejemplos de Tecnologias Influenciadas:
• MatLab.
• Java.
• C#.
16
FUNDAMENTOS DE PROGRAMACIÓN
Orientación a objetos- Ventajas
• Mayor seguridad del sistema.
• Paradigma actual más utilizado en el desarrollo Cada objeto "encapsula" sus datos, permitiendo que
de software. otros objetos accedan solo a aquellos miembros
• Más fácil de representar la solución prevista. (atributos y métodos) que están permitidos. Es decir,
Presenta una forma más sencilla de modelar cada objeto debe ser responsable de su estado
el software, buscando identificar los objetos interno.
de la realidad donde será insertado.
• Mejor interacción entre las fases del proyecto.
• Reducción del coste de mantenimiento. Permite el mismo enfoque desde la fase de elicitación
Cuando es necesario realizar cambios en el de requisitos (o necesidades) hasta la
software, solo se modifican los objetos implementación efectiva.
involucrados. Como consecuencia, el
software tiende a tener un ciclo de vida más • Técnicas de documentación más avanzadas, que
largo. permiten representar aspectos estructurales y de
comportamiento de los objetos.
• Mayor reutilización de código.
Un método (es decir, una operación) de un • Hace que el trabajo en equipo sea más productivo.
objeto puede ser accedido por otros objetos Porque los miembros no necesitan conocer todos los
que lo agregan, y diferentes objetos pueden detalles de implementación de cada objeto, que
compartir los mismos métodos. incluso puede representar subsistemas completos
17
FUNDAMENTOS DE PROGRAMACIÓN
REFLEXIONAMOS:
Reflexionamos
¿Cuál crees que será la principal diferencia entre un
lenguaje ensamblador y un lenguaje imperativo?,
¿qué impacto tienen?
¡Quiero escucharte!
1. Comparte tu opinión con nosotros en nuestra
sesión semanal.
2. Investiga más sobre el tema revisando los
materiales de la semana.
¡Éxitos!
18
18
FUNDAMENTOS DE PROGRAMACIÓN
REFERENCIAS
Referencias
o Alegsa, L. (21 de Junio 2016). Diccionario de informática y
tecnología. http://www.alegsa.com.ar/Dic/software.php
o Banaszewski, R. (2009). Paradigma orientado a
notificações: avanços e comparações. Disertación para
grado de Magister. CPGEI/UTFPR - CuritibaPR.
o Kernighan, B. y Ritchie, D. (1988). The C programming
language. Pearson Educación.
o Deitel, H. y Deitel, P. (2001). C++ como programar. (3ra ed.).
Prentice Hall.
o Lippman S. y Lajoie J. (1998). C++ Primer. (3ra ed.).
Addison-Wesley.
o Stroustrup B. (2000). C++ Programming Language The
Special Edition. Addison-Wesley (Pear)
19
¡GRACIAS!