Heinsohn Privacidad y Ciberseguridad para el sector educativo
Clase 01
1. Escuela de Sistemas, Facultad de Minas
Universidad Nacional de Colombia – Sede Medellín
Fundamentos de Programación
Clase 1
Contenido
Introducción
Presentación del curso y cronograma del semestre
Metodología de trabajo
Conceptos básicos de programación
Profesores:
Jovani Alberto Jiménez Builes
William Álvarez Montoya
Guillermo González
Danilo Bedoya
2. Importancia de la computación
• Los computadores y las redes de computadores se
han convertido en una herramienta imprescindible
en toda área técnica y de ingeniería.
ingeniería.
• Todo técnico y profesional debe manejar y aplicar
eficientemente dicha herramienta, en sus áreas
propias de profesión.
profesión.
3. Objetivos del curso
Desarrollar capacidades lógico - abstractas para
el análisis, implementación y solución de
problemas, mediante un enfoque algorítmico.
algorítmico.
Incentivar el aprendizaje de un lenguaje de
programación específico: Visual Basic for
específico:
Applications (VBA).
(VBA).
4. Contenido del curso
Introducción
Entrada y salida de datos
Secuenciamiento
Condicionales
Iteración definida
Iteración indefinida
Vectores
Tipos de datos definidos por el usuario
Matrices
Funciones y subprogramas
5. Metodología
• Clases magistrales (Auditorio 12-204).
12-204)
• Clases prácticas (Sala de cómputo 41-214)
41-214)
• Tareas extraclase
• Talleres y asesorías semanales
• Seguimiento de la página del curso
• Aprendizaje vía ejemplos y aprendizaje activo.
activo.
Requisitos:
Requisitos: matemáticas básicas
Sobre técnicas básicas de estudio ver el documento: «Cómo estudiar
y aprender una disciplina», por Richard Paul y Linda Elder, de la
Fundación para El Pensamiento Crítico, 2003, www.criticalthinking.org
6. Bibliografía y referencias
Brassard,
Brassard G. y Bratley, P.: «Fundamentos de ALGORITMIA»,
Prentice Hall International, Madrid (España), 1997.
Oviedo,
Oviedo Efraím: “Lógica para programación”, ECOE ediciones,
Agosto 2004. (para la primera parte del curso), Caps.: 1, 2, 3, 4, 5, 6,
7, 8.
Lopez,
Lopez Leobardo: “Programación Estructurada, un enfoque
algorítmico”, AlfaOmega, 2002
Chapra, Steven C. & Canale, Raymond P.: «Numerical Methods
for Engineers», McGraw-Hill, 2002, Caps.: 1, 2, 5, 6, 8, 9, 12, 17, 20,
McGraw-
21, 22, 24.
Walkenbach, J.: «Microsoft Office Excel 2007 VBA Programming
for DUMMIES», Wyley Publishing, Inc., 2007. (puede leerse online en
http://www.docstoc.com/docs/document-
preview.aspx?doc_id=1659168) capítulos: 3, 7, 10, 14, 15, 16, 17, 22.
7. Página Web del curso
http://virtual2.unalmed.edu.co/moodle
Facultad de minas – Fundamentos de programación
Clases prácticas y teóricas
Ejemplos interactivos
Problemateca
Talleres online
Foros y chat
Documentos, manuales y enlaces de interés
Técnicas de estudio
8.
9.
10.
11. Didáctica del curso
Antes:
Clase Teórica Leer guía
Repasar conceptos previos
Durante:
Prestar atención y tomar apuntes
Clase Práctica Guardar proyecto (en la práctica)
Formular preguntas.
Después:
Realizar tareas
Talleres y asesorías Contrastar con lo aprendido anteriormente
Antes:
Repasar conceptos vistos en clase
Trabajo personal Durante:
Prestar atención y tomar apuntes
Formular preguntas
Problemateca Después:
Talleres en línea Hacer los ejercicios de nuevo por si mismos
Libros de texto Realizar tareas
No dejar acumular contenidos
12. Para que el computador?
• En el diseño y cálculo de la estructura de un edificio,
por ejemplo, se tardaría meses hacer las operaciones
Cálculos Repetitivos matemáticas manualmente.
• El computador, mediante los programas respectivos,
realiza tales procesos en pocos minutos.
Grandes volúmenes • En las empresas, los procesos de inventarios, por
ejemplo, con decenas de miles de artículos.
de información • Otros ejemplos son los procesos de nómina, contables,
financieros, de facturación, de proveedores, etc.
• El software, a través de los computadores, puede
Complejidad cálculos manejar procesos complejos de tipo lógico y
matemático.
• Ejemplos: Inteligencia Artificial, Sistemas Expertos, etc.
Velocidad de proceso
• A todo nivel organizacional se requieren respuestas en
y de respuesta tiempo real.
• Las máquinas (los computadores), en general, suelen
ser más precisas que las personas.
• Esta capacidad de las máquinas es especialmente útil
Precisión en los cálculos de Ingeniería.
13. El concepto de algoritmo
¿Qué es un algoritmo?
Es una secuencia de procesos (tareas, operaciones)
ordenada lógicamente que permite obtener ciertos
resultados a partir de ciertos datos.
Diseñar un buen algoritmo exige un buen nivel de
abstracción, lógica, imaginación, creatividad, dominio de
las técnicas de programación, y algo de dominio del área
del problema que se intenta resolver.
Por esta razón es que diseñar un algoritmo se considera
tanto ciencia como arte.
14. Diseño de algoritmos
• Un algoritmo se elabora (construye) mediante ciertos
componentes básicos llamados estructuras
Estructuras básicas • Por esta razón, este tipo de programación se conoce
como programación estructurada
1. Entrada y salida de • Todo algoritmo tiene cero o más entradas y debe mostrar
uno o más resultados
datos
• Todo algoritmo es una secuencia lógica de ciertas
2. Secuencia operaciones
• Permite elegir una de dos o más vías de acción
3. Selección lógica (alternativas)
• Es la repetición de una o más operaciones.
4. Iteración • De antemano, puede conocerse o no cuántas veces se
repetirán las operaciones (iteración definida o indefinida)
15. Diseño de algoritmos
ENTRADA PROCESAMIENTO SALIDA
Datos de Cálculos matemáticos y Muestran Resultados
entrada lógicos Graban
Imprimen
Transmiten
Esquema genérico de un algoritmo secuencial
16. Diseño de algoritmos
Ejemplo
Diseñar un algoritmo para calcular el área de un
triángulo
Análisis:
Análisis:
¿Cuáles son los datos de entrada?
¿Cuáles son los datos de salida?
¿Qué cálculos/procesos deben llevarse a cabo?
17. Diseño de algoritmos
DATOS DE
Base, Altura
ENTRADA
PROCESAMIENTO Área =
(Base*Altura)/2
DATOS DE
Área
SALIDA
18. Representación de algoritmos
Pseudocódigo Diagrama de caja
INICIO INICIO
Leer Base, Altura Leer Base, Altura
Area = (Base*Altura)/2 Area = (Base*Altura)/2
Mostrar Area
Mostrar Area
FIN
FIN
19. Diseño de algoritmos
Ejemplo 2
Diseñar un algoritmo para calcular el perímetro de un
círculo
Análisis:
Análisis:
INICIO
¿Cuáles son los datos de entrada?
¿π es dato de entrada? Leer Radio
¿Cuáles son los datos de salida? Prm = 2*Pi*Radio
¿Qué cálculos/procesos deben Mostrar Prm
llevarse a cabo?
FIN
20. Diseño de algoritmos
Ejemplo 3
Suponga que se necesita un algoritmo para realizar la factura en un almacén
que vende televisores al por mayor (suponiendo que de un solo tipo). La factura
debe mostrar el valor total a pagar y el valor de los impuestos. El costo por
unidad de los televisores es de $700.000 y el impuesto aplicado es del 16%.
Análisis?
Análisis?
INICIO
Leer numero_unidades
Impuestos = numero_unidades* $700.000 * 0.16
Total = numero_unidades* $700.000 + Impuestos
Mostrar Total, Impuestos
FIN
21. Algoritmo, Lenguaje y Programa
Los términos “algoritmo” y “programa” tienden a
confundirse y en algunos casos a utilizarse
indiferentemente. Recordemos que el término
“algoritmo” se refiere a la secuencia de pasos para
resolver un problema, pero independiente del lenguaje
de programación que se utilice, mientras que
“programa” se refiere propiamente a la codificación de
un algoritmo en algún lenguaje de programación.
Un conjunto de programas con un fin específico
constituye un software.
22. Lenguajes y entornos de
programación
• Basic / Visual Basic
• C / C++
• Java
• Pascal
• Fortran / Visual Fortran
• PHP
•…
23. Metodología general de trabajo
1. Análisis del • Entender el problema.
• Identificar las variables (de entrada, de salida
problema e intermedias) y las constantes
• Identificar las restricciones y relaciones
matemáticas y lógicas entre variables y
constantes
2. Diseño de una • Representar la secuencia de pasos
(operaciones, o procesos) de manera lógica,
solución mediante una forma apropiada (pseudocódigo,
diagrama de caja, diagrama de flujo
flujo).
3. Validación de la • Realizar prueba de escritorio al algoritmo para
validar que haga lo que debe hacer
solución
4. Codificación en un • Elaborar la interfaz gráfica del usuario (si se
trata de un lenguaje de programación visual).
lenguaje de programación • Escribir los procedimientos pertinentes.
• Ejecutar y depurar el código
24. Tareas
1. Ingresar a la página del curso y resolver el primer
cuestionario
2. Elaborar algoritmos (en pseudocódigo o
diagrama de caja) para los problemas 1 a 6 de la
Problemateca 1.
3. Efectuar una lectura previa de la clase teórica 2 y
práctica 1
25. Importante
Las clases prácticas comienzan la próxima
semana.
semana.
Se recomienda llevar memoria USB para grabar
los trabajos o emplear el servicio de ftp que está
disponible para todos los estudiantes.
estudiantes.
26. Fundamentos de Programación
Clase 1
FIN DE LA CLASE
Gracias por la atención
Escuela de Sistemas, Facultad de Minas
Universidad Nacional de Colombia – Sede Medellín