Introducción a la programación Introducción al entorno Haskell
|
|
- Juan Carlos Rojas Cáceres
- hace 5 años
- Vistas:
Transcripción
1 Introducción a la programación Introducción al entorno Haskell Taller de Álgebra I Segundo cuatrimestre de 2015
2 Taller de Álgebra I De qué se trata el taller de Álgebra I? 1 Dar una introducción a la computación y a la programación, apta tanto para estudiantes de computación como para estudiantes de matemática. 2 Programar los algoritmos que se ven en las teóricas y prácticas usando programación funcional. qué? por qué? 3 horas semanales de clase teórico-práctica (modalidad taller) En los laboratorios de Computación.
3 Régimen de cursada y evaluación Régimen de evaluación: Un parcial a mediados del cuatrimestre que contendrá algún ejercicio de los vistos en clase y alguno nuevo con dificultad similar. Un trabajo práctico en grupos de exactamente tres personas a fines del cuatrimestre. En caso de no aprobar en alguna de las instancias: Recuperatorio del parcial al final del cuatrimestre. Recuperatorio del tp al final del cuatrimestre. Importante: En las instancias de evaluación sólo podrán utilizarse las técnicas y herramientas vistas en clase. No es necesario aprobar el taller para anotarse en las materias correlativas. Sí es necesario aprobar el taller para rendir el final de Álgebra I.
4 Listas de correo del taller Si te inscribiste por el SIU, deberías haber recibido el mail de bienvenida. Si no te llegan los mails o necesitás usar otra dirección, comunicate con nuestro Listmaster: gino.scarpino (arroba) gmail.com Anuncios para alumnos algebra1-alu (arroba) dc.uba.ar Anuncios importantes sobre la cursada ( leé tu mail seguido!) Entre ustedes: para buscar grupo, armar grupos de estudio, etc. Consultas para docentes algebra1-doc (arroba) dc.uba.ar Favor NO enviar consultas a -alu. Cuando la respuesta es de interés general, nosotros cc eamos a -alu. Es mejor enviar tu consulta a -doc que a un docente en privado.
5 Qué hacemos en computación? Resolvemos problemas... pero cómo? Para resolver un problema 1 Identificar el problema a resolver. 2 Pensar una solución con ciertas características (algoritmo) que sirva para resolverlo. 3 Implementar un programa que respete ese algoritmo. Los programas pueden ser vistos como descripciones ejecutables de la solución de un problema. Ejecutables por... Una computadora es una máquina que procesa información automáticamente de acuerdo con un programa almacenado. Claude Bellavoine, Qué es una computadora? Editorial El Ateneo, 1969.
6 Paradigmas de lenguajes de programación Cómo es un lenguaje de programación? Cómo se le dice a una computadora lo que tiene que hacer? Paradigma: Definición del modo en el que se especifica el cómputo (que luego es implementado a través de programas). Representa una toma de posición ante la pregunta: cómo se le dice a la computadora lo que tiene que hacer?. Cada lenguaje de programación usa herramientas de uno o más paradigmas. Lenguajes representativos: Paradigma de programación imperativa: C, Ada, Clu,... Paradigma de programación en objetos: Smalltalk, Ruby,... Paradigma de programación orientada a objetos: C++, Java, Python,... Paradigma de programación en lógica: Prolog, Oz,... Paradigma de programación funcional: LISP, Scheme, ML, F#, Haskell, Erlang, Clojure, Scala,...
7 Haskell: programación funcional Haskell B. Curry ( ) Existen muchos otros lenguajes de programación y otros paradigmas de lenguajes de programación, cada uno adaptado a diferentes situaciones.
8 Por qué la computación es útil para un matemático? La computación comenzó como una rama de la matemática, como una forma de entender (entre otras cosas) si todos los problemas son resolubles. Estas computadoras eran ideales. Con el tiempo, las computadoras se volvieron reales. Y cambiaron el panorama, la forma de hacer matemática. Permiten hacer cuentas que llevarían años de manera manual probar conjeturas chequar todos los casos en un teorema probar que un teorema está bien demostrado y más
9 Veamos un ejemplo: los cuatro colores Cuántos colores hacen falta para colorear un mapa de tal manera que dos regiones limítrofes tengan distintos colores? Ejemplo: el mapa del mundo y sus países se puede colorear con 4 colores. En 1852, Francis Guthrie le preguntó a su hermano matemático si 4 colores alcanzarían para cualquier mapa. Ni el hermano de Guthrie, ni su profesor (Augustus de Morgan) ni otros matemáticos de la época pudieron demostrar que fuese así (ni encontrar un contraejemplo).
10 Cuatro colores En 1879, Alfred Kempe publicó un trabajo donde demostró que era cierto, que 4 colores bastaban para cualquier mapa. En 1890, Percy Heawood probó que la demostración de Kempe estaba mal. En 1977, Appel y Haken demostraron que era cierto, que 4 colores bastaban para cualquier mapa. Pero la demostración de Appel y Haken dividió a la comunidad matemática. El problema: Se reducían a mano todos los mapas a unos Chequear que estos eran todos los casos posibles no es sencillo. Además, en la verificación de estos casos, se encontraron varios errores (que fueron corregidos). Por último, Appel y Haken probaron que en estos casos 4 colores bastaban usando una computadora.
11 Por qué creerle a una computadora? Un programa, decían los críticos de la computación entre los matemáticos, puede fallar (algo que se testea corriendo el mismo programa en distintas máquinas), y mucho más importante: estar mal hecho (tener bugs). En 2004, Georges Gonthier demostró formalmente el teorema de los cuatro colores. Lo hizo con una computadora (no los casos sino todo el teorema) pero escribiendo la demostración en un lenguaje que sirve para verificar demostraciones: Coq. Observación: Coq no es el único lenguaje desarrollado para verificar demostraciones. En el paper freek/comparison/comparison.pdf se muestran programas que prueban que 2 es irracional en 17 lenguajes distintos.
12 Prueba automática de teoremas Es posible escribir un algoritmo que permite probar mecánicamente teoremas? Más precisamente, dar un algoritmo general que dada una fórmula de la lógica de primer orden indique si la misma es un teorema o no. Entscheidungsproblem (problema de decisión) formulado por David Hilbert en Problema de decisión Dados: un conjunto S de datos de algún tipo (por ejemplo, fórmulas de la lógica de primer orden), y una propiedad P de los elementos de S El problema de decisión asociado es dar un algoritmo que termina y devuelve verdadero o falso para cada elemento s S, y retorna verdadero si y sólo si s tiene la propiedad P. Un problema es decidible si existe tal algoritmo
13 Decidibilidad del Entscheidungsproblem Se intentó encontrar la solución al Entscheidungsproblem... sin éxito. Luego la pregunta fue: y si se puede probar que tal algoritmo no existe? Independientemente Turing y Church en 1936/7 probaron que no puede existir. El problema es indecidible (no tiene solución). Dieron una definición precisa de algoritmo. Turing desarrolló las Máquinas de Turing y probó que el problema de la parada (halting problem) no es decidible. Church desarrolló el cáculo lambda y mostró que no existe algoritmo capaz de decidir si dos funciones son equivalentes. Estos enfoques son equivalentes y capturan la noción de los problemas que son computables.
14 Recursos para el Taller Interprete de Haskell GHCI (The Glasgow Haskell Compiler Interactive environment) Ubuntu? sudo apt-get install ghc Mac? brew install haskell-platform Windows? (buu) Editores de Texto Ubuntu? Sublime, Gedit, Geany, vim, etc. Mac? Sublime, Textmate, Atom, TextEdit, vim etc. Windows? Sublime, Atom, Notepad++, etc. Trabajen cómodos!!
15 Más Recursos Cómo compartir Código 1 (no) 2 Dropbox (puede ser) 3 Google Docs (mejor) 4 svn (se hizo la luz) 5 git (vamoo los pibe) Comandos útiles para consolas Qué es una consola??? cd ls (dir en windows) cp, mv, rm (copy, move, del en windows) pwd
16 Ejercicio del día 1 Crear un archivo de texto con el siguiente contenido: suma x y = x - y (sí, sabemos que está mal) 2 Guardarlo con el nombre clase0.hs en alguna carpeta (no se olviden la ubicación) 3 Abrir GHCI (ghci desde la consola o ejecutando el programa en windows) 4 Cargar el archivo: :l <ruta del archivo> (aquí pueden arrastrar el archivo hasta la consola para obtener la ruta) 5 Dentro de GHCI, ejecutar lo siguiente: suma Corregir y guardar la función en el archivo para que efectivamente sea la suma (sin cerrar la consola de GHCI) 7 Recargar el programa: :r 8 Ejecutar suma 2 3 y ver que de 5 :) 9 Si quieren, pueden cerrar el intérprete ejecutando: :q
Introducción a la programación Introducción al entorno Haskell
Introducción a la programación Introducción al entorno Haskell Taller de Álgebra I Primer cuatrimestre de 2015 Taller de Álgebra I De qué se trata el taller de Álgebra I? 1 Dar una introducción a la computación
Introducción a la programación funcional
Introducción a la programación funcional Taller de Álgebra I Verano 2017 Taller de Álgebra I De qué se trata el taller de Álgebra I? 1 Dar una introducción a la computación y a la programación, apta tanto
Octave. Entorno Interactivo. 13/8/2018 Computación 1 - Facultad de Ingeniería 1
Octave Entorno Interactivo 13/8/2018 Computación 1 - Facultad de Ingeniería 1 Agenda Introducción Entorno interactivo Componentes del entorno interactivo Variables Matrices Operaciones Relaciones 13/8/2018
Lenguajes y paradigmas de programación
Lenguajes y paradigmas de programación Temas Que es un programa? Que es un lenguaje de programación? Características de los lenguajes de programación Paradigmas de programación Que es un programa? La unión
Octave. Entorno Interactivo. 19/8/2013 Computación 1 - Facultad de Ingeniería 1
Octave Entorno Interactivo 19/8/2013 Computación 1 - Facultad de Ingeniería 1 Agenda Introducción Entorno interactivo Componentes del entorno interactivo Variables Matrices Operaciones Relaciones 19/8/2013
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
10. COLOREADO DE GRAFOS
10. COLOREADO DE GRAFOS Ejemplo 8. 8 Horario de exámenes finales. Tenemos que hacer un horario para realizar siete exámenes finales, Numeramos las asignaturas de 1 a 7. Hay alumnos matriculados en varias
Laboratorio Análisis Lógico Práctica 1
Laboratorio Análisis Lógico Práctica 1 Pedro Arturo Góngora Luna 1 1 Introducción 1.1 Haskell y la programación funcional En la década de los 30 s, Alonzo Church desarrolló un lenguaje formal llamado cálculo
Temas. Objetivo. Que el estudiante logre:
0 Temas Objetivo Que el estudiante logre: 1) Formalizar problemas de decisión. 2) Identificar conceptos constructivos de la Teoría de la Computabilidad. 1 2 TEORÍA DE LA COMPLEJIDAD COMPUTACIONAL TEORÍA
Introducción a la programación en Fortran
Introducción a la programación en Fortran Santiago de Mello Modelización numérica de la atmósfera Departamento de ciencias de la atmósfera Universidad de la República, Uruguay. Agosto de 2017 Santiago
1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
El origen: Los puentes de Königsberg. Grafos. Algoritmos y Estructuras de Datos III. Leonhard Euler ( )
El origen: Los puentes de Königsberg Grafos Algoritmos y Estructuras de Datos III Leonhard Euler (1707 1783) El origen: Los puentes de Königsberg La ciudad de Königsberg (hoy Kaliningrado) tenía en el
Problemas fáciles, difíciles e imposibles
Problemas fáciles, difíciles e imposibles La computadora lo resuelve todo? Santiago Figueira Departamento de Computación FCEyN, UBA Semana de la Computación 2015 1 Qué son los métodos efectivos? Intuitivamente
Evolución del software y su situación actual
Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su
PROGRAMACIÓN LÓGICA. David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado
PROGRAMACIÓN LÓGICA David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado Introducción Programación Lógica Conceptos clave Lenguajes de programación Ejemplos Ventajas y desventajas Aplicaciones
Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa
Paradigmas de lenguajes de programación Introducción a la programación imperativa Algoritmos y Estructuras de Datos I Paradigma: Definición del modo en el que se especifica el cómputo (que luego es implementado
Laboratorios Linux: mini-curso de supervivencia
Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 13 de septiembre de 2017 (cc) 2015 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se entrega bajo la licencia
Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III
Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen
Variantes del problema de coloreo de grafos
Departamento de Matemática Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 4 de diciembre de 005 Qué es un grafo? Un grafo está formado por un conjunto de vértices y un conjunto de
Programación Funcional
Alberto Pardo Marcos Viera Instituto de Computación, Facultad de Ingeniería Universidad de la República, Uruguay Objetivo del curso Este es un curso introductorio de programación funcional (PF) Veremos
Ciencias de la Computación I
Ciencias de la Computación I Nociones básicas de Computabilidad Problemas y Lenguajes Un problema se describe con un lenguaje Cuanto más formal el lenguaje, más precisa la formulación del problema Los
Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java
Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java José Alfredo Jiménez Murillo Eréndira Miriam Jiménez Hernández Laura Nelly Alvarado Zamora Selecciona el libro para continuar
Lenguajes de Programación
Lenguajes de ción Bloque 1. Complemento a Tema 1 1. Historia 2. Paradigmas de programación 3. Fases creación de un programa 4. Traducción: compilación e interpretación 1ª Generación Ordenadores sólo entienden
Programación Introducción al curso
Programación 2 1 - Introducción al curso Objetivos del curso Presentar y analizar las estructuras de datos y algoritmos que forman la base para la resolución de problemas en computación; Introducir nociones
Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca
Aplicación de la Inducción Matemática Programación Funcional Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Motivación Programación Imperativa Declarativa Procedimental Ejemplo:
Programación 1 Grado de ingeniería Robótica
Programación 1 Grado de ingeniería Robótica Información general Clases de teoría: miércoles de 11:00 a 13:00 aula B12 aulario 2 Clases de prácticas: martes de 11:00 a 13:00 y de 13:00 a 15:00 aula L24
Código de ética. Herramientas. Instalar emacs. Entrar en ubuntu. Abrimos el terminal (desde el menú) Editamos la lista de fuentes de instalación
Código de ética Herramientas Nadie va a copiar partes de trabajo de otros estudiantes, de libros, de sitios web ni de ningún otro lado, con o sin permiso, sin definir claramente la referencia bibliográfica
Clases de complejidad computacional: P y NP
1er cuatrimestre 2006 La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización).
Conceptos básicos. IC-1800 Introducción a la programación. I semestre,
Conceptos básicos IC-1800 Introducción a la programación I semestre, 2017 1 Definiciones Básicas Hardware: componentes físicos. tangibles Software: componentes lógicos. no tangibles DVDs de Ubuntu, Kubuntu
Fundamentos de Ciencias de la Computación
Fundamentos de Ciencias de la Computación Clase 16: Problema de Primer Cuatrimestre de 2005 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Un problema
Teorías. Una teoría acerca de una base de conocimiento Σ contendrá no sólo a Σ sino que a todo lo que se puede deducir de Σ.
Teorías Qué es una teoría? Ya hemos usado antes la noción de base de conocimiento Este concepto se refiere a un conocimiento, representado a través de axiomas. Una teoría acerca de una base de conocimiento
Compiladores e Intérpretes
Programa de la Asignatura: Compiladores e Intérpretes Código: 767 Carrera: Ingeniería en Computación Plan: 2008 Carácter: Obligatoria Unidad Académica: Secretaría Académica Curso: Cuarto Año Primer cuatrimestre
Conceptos básicos. IC-1800 Introducción a la programación. I semestre,
Conceptos básicos IC-1800 Introducción a la programación I semestre, 2016 1 Definiciones Básicas Hardware: componentes físicos. tangibles Software: componentes lógicos. no tangibles DVDs de Ubuntu, Kubuntu
Programación Declarativa Curso
Programación Declarativa Curso 2004-2005 Ingeniería Técnica en Informática de Gestión Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Programación Declarativa 1 Profesorado
ESCRITORIO REMOTO MULTIPLATAFORMA V 1.0. Por, Douglas Vasquez, Eleazar García, Michael Méndez.
2017 Manual de Usuario de USO RemoteDesktop ESCRITORIO REMOTO MULTIPLATAFORMA V 1.0. Por, Douglas Vasquez, Eleazar García, Michael Méndez. Contenido USO RemoteDesktop.... 3 Requerimientos Mínimos para
Un programa es un objeto con un significado matématico (riguroso y preciso) Se pueden probar teoremas acerca de programas.
MFDS Curso 2015-2016 18 3.- Razonamiento automático en el desarrollo de software Un programa es un objeto con un significado matématico (riguroso y preciso) Se pueden probar teoremas acerca de programas.
Guía de uso básico de Qt
Guía de uso básico de Qt Introducción Un Entorno de Desarrollo Integrado o IDE por sus siglas en inglés (Integrated Development Environment) es un programa que integra un conjunto de herramientas utilizadas
Manos a la obra: Recursión, división y listas
Manos a la obra: Recursión, división y listas Taller de Álgebra I Cuatrimestre de verano de 2015 Calentando motores La clase pasada vimos ejemplos de definiciones recursivas. Hoy vamos a continuar con
Un enfoque categórico del problema de los cuatro colores
del problema de los cuatro colores Departamento de Matemática Instituto de Matemática UNS-CONICET Reunión Anual de la Unión Matemática Argentina 20 de septiembre de 2016 Problema de los cuatro colores
Programación Funcional Avanzada
Alberto Pardo Marcos Viera Instituto de Computación, Facultad de Ingeniería Universidad de la República, Uruguay curso 2017 Por qué Programación Funcional? Novedad programación desde una perspectiva diferente
Introducción a la Programación en C
Christopher Expósito-Izquierdo cexposit@ull.edu.es Airam Expósito-Márquez aexposim@ull.edu.es Israel López-Plata ilopezpl@ull.edu.es Belén Melián-Batista mbmelian@ull.edu.es José Marcos Moreno-Vega jmmoreno@ull.edu.es
PROGRAMACIÓN INFOMÁTICA 4º E.S.O.
PROGRAMACIÓN INFOMÁTICA 4º E.S.O. ÍNDICE 1. INFORMÁTICA, COMPUTADORAS Y PROGRAMACIÓN... 2 1.1. Informática (Ciencia de la computación):... 2 1.2. Computadora:... 2 1.3. Hardware:... 2 1.4. Software:...
INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo
Nombre y Apellido OSVALDO MARCELO BARTUREN AGUSTINA QUEIROLO
INSTITUTO DE DESARROLLO ECONÓMICO E INNOVACIÓN Año: 2017 PROGRAMA DE LA ASIGNATURA: Programación y Métodos Numéricos (0133) CÓDIGO: 0133 AÑO DE UBICACIÓN EN EL PLAN DE ESTUDIOS: 2 año FECHA ULTIMA REVISIÓN
Introducción a la Complejidad Computacional
Introducción a la Complejidad Computacional El análisis sobre decidibilidad que hemos hecho nos permite saber qué podemos hacer y qué no podemos hacer. Pero nada sabemos de qué tan difícil resolver los
Mención en Computación
Mención en Computación Ordenadores y paradojas Imágenes extraídas del artículo: Ordenadores, paradojas y fundamentos de las matemáticas, de G. J. Chaitin. El planteamiento del problema Bertrand Russell
Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II
Universidad Tecnológica Nacional Facultad Regional San Francisco Tecnicatura Superior en Programación PLANIFICACIÓN CICLO LECTIVO 2014 ÍNDICE ÍNDICE... 2 PROFESIONAL DOCENTE A CARGO... 3 UBICACIÓN... 4
Fundamentos de Programación. Introducción. Fundamentos de Programación. Página 01.0 de 24
Fundamentos de Programación. Introducción. Fundamentos de Programación. Página 01.0 de 24 Objetivo General del Curso Entender los fundamentos de la programación de las computadoras y resolver problemas
Paradigmas de Lenguajes de Programación
Paradigmas de Lenguajes de Programación Paradigma de Objetos: Taller con smalltalk Departamento de Computación, FCEyN, UBA Primer Cuatrimestre 2015 Objetivos del día 1 Conocer el entorno Pharo 2 Reforzar
Planificaciones Algoritmos y Programación I. Docente responsable: GUARNA PABLO FRANCISCO. 1 de 6
Planificaciones 7540 - Algoritmos y Programación I Docente responsable: GUARNA PABLO FRANCISCO 1 de 6 OBJETIVOS Conocer un lenguaje de programación imperativo. Aplicar las capacidades que ofrece el lenguaje
Computabilidad y aleatoriedad
Computabilidad y aleatoriedad Santiago Figueira Grupo de Investigación en Lógica y Computabilidad Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires VI Jornadas
Orígenes de la Teoría de Grafos
Orígenes de la Teoría de Grafos Problema: Es posible, comenzando en cualquier punto de la ciudad de Konisberg, elegir un camino que nos permita pasar una única vez por cada uno de los siete puentes sobre
Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs 3.0 Unported
PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY SOFTWARE A UTILIZAR Parte 2 (Abril 2015, Mendoza) Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs
Tecnología de Información: Jclic
June 7, 2010 Indice 1 Introducción Indice 1 Introducción 2 Reseña Histórica Indice 1 Introducción 2 Reseña Histórica 3 Descripción Componentes Indice 1 Introducción 2 Reseña Histórica 3 Descripción Componentes
Documentación de Paradigmas 1
Documentación de Paradigmas 1 Publicación 0.1 Rafael O. Moyano Vega Aciar 10 de December de 2015 Índice general 1. Instalaci?n de Haskell 3 1.1. Microsoft Windows...........................................
Programación Orientada a Objetos Profr. Pedro Pablo Mayorga
Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No
Laboratorio de Computación II PROGRAMA
Laboratorio de Computación II PROGRAMA 1) OBJETIVOS DE LA ASIGNATURA Que el alumno conozca entornos integrados de programación. Que el alumno conozca y aplique herramientas complementarias para el desarrollo,
Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5
Planificaciones 9514 - Algoritmos y Programación I Docente responsable: AZCURRA DIEGO ANDRES 1 de 5 OBJETIVOS Conocer un lenguaje de programación imperativo. Aplicar las capacidades que ofrece el lenguaje
Problemas de Decisión
Problemas de Decisión La motivación de este capítulo puede estar dado por lo siguiente: Dado un conjunto Σ de fórmulas proposicionales en L(P ), existe un algoritmo general para determinar si Σ = ϕ Qué
UNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE PROGRAMACIÓN
Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016
Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016 I Máquinas de Turing. 1. Qué es un a Máquina de Turing? Cómo se define? Cómo se llaman las teorías que
Objetivo: Contenido
PROGRAMACIÓN BÁSICA Introducción Objetivo: El alumno describirá la importancia de la programación como herramienta en el quehacer del ingeniero. Contenido 1.1 Componentes: hardware, software. 1.2 Beneficios
Universidad Autónoma del Estado de México Licenciatura de Ingeniería en Sistemas Inteligentes 2007 Programa de estudios de la unidad de aprendizaje:
Universidad Autónoma del Estado de México Licenciatura de Ingeniería en Sistemas Inteligentes 2007 Programa de estudios de la unidad de aprendizaje: Lenguajes y autómatas I. Datos de identificación Licenciatura
UNIVERSIDAD AUTÓNOMA DE ZACATECAS PLAN ANALÍTICO
ÁREA ACADÉMICA UNIVERSIDAD AUTÓNOMA DE ZACATECAS PLAN ANALÍTICO Computación UNIDAD ACADÉMICA PROGRAMA ACADÉMICO Matemáticas Licenciatura en Matemáticas CICLO ESCOLAR Agosto Diciembre UNIDAD DIDÁCTICA Introducción
Lógica modal computacional
Lógica modal computacional Decidibilidad y complejidad Daniel Gorín y Sergio Mera 1er cuatrimestre de 2010 Cómputos determinísticos Programa Usaremos un modelo de cómputo imperativo (RAM) Podríamos haber
Algoritmos y Lenguajes de Programación
Introducción y horario Algoritmos y Lenguajes de Programación 543242-2 mariomedina@udec.cl Código: 543242-2 Carrera: Ing. Civil Electrónica Clases 7 de Marzo a 28 de Junio Horario clases Martes, 9:10 a
Conceptos de Programación Intérprete PYTHON
Introducción a la Computación Conceptos de Programación Intérprete PYTHON M. E. Buemi (mebuemi@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, 23/03/2016 Outline Programar Python Programación imperativa
CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional
CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones
Introducción a la programación de computadores Jhon J. Padilla A., PhD.
Introducción a la programación de computadores Jhon J. Padilla A., PhD. Cómo se comporta un computador? Es como un perro tonto (sólo entiende un conjunto limitado de instrucciones) pero muy rápido Hola,
Creación de Shell Scripts
Creación de Shell Scripts Un script es una secuencia de instrucciones que un programa es capaz de seguir, interpretar, y ejecutar, pero el Shell Script no es solamente eso; también son ficheros de texto
Introducción a la Física Computacional PROGRAMACIÓN. Sergio Antonio Alcalá.
Introducción a la Física Computacional PROGRAMACIÓN Sergio Antonio Alcalá. PROGRAMACIÓN Representación de Problemas y Algoritmos. Sergio Antonio Alcalá. Representación de un Problema (Algoritmo). Un algoritmo
Planificaciones Taller de Programación I. Docente responsable: VEIGA ANDRES ARTURO. 1 de 5
Planificaciones 7542 - Taller de Programación I Docente responsable: VEIGA ANDRES ARTURO 1 de 5 OBJETIVOS Introducir al alumno en el uso de complejos algoritmos, estructuras de memoria y archivos que requieran,
Introducción a la programación. Cecilia Manzino
Paradigmas Un paradigma es un modelo o patrón en cualquier disciplina científica. Un paradigma de programación representa un estilo de programación en cual se escriben soluciones a problemas en términos
TRANSFORMACIÓN. Ejemplo: Diseñe un algoritmo para preparar un litro de limonada
Clase teórica 1 Algoritmos en C Página 1 de 5 PROCESO COMPUTACIONAL El computador es una máquina cuya función básica es llevar a cabo operaciones de cómputo (cálculo) sobre elementos de datos. Como todas
Demostración interactiva de teoremas en Coq. Beta Ziliani
Demostración interactiva de teoremas en Coq CONICET / LIIS, FaMAF, UNC FACAS 2016 Los humanos no somos confiables 2 Los humanos no somos confiables Teorema de los 4 colores, 100 años de pruebas incorrectas.
Laboratorio 1 Introducción al Ambiente Linux SISTEMA OPERATIVO
SISTEMA OPERATIVO Laboratorio 1 Introducción al Ambiente Linux En la actualidad, la mayoría de los usuarios de computadores esperan que éstas sean capaces de realizar múltiples tareas en forma simultánea.
Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015
Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]
TUTORIAL: Integración del compilador e intérprete del pascal FC al editor de texto geany.
TUTORIAL: Integración del compilador e intérprete del pascal FC al editor de texto geany. Introducción Pascal FC es un lenguaje de programación creado por Alan Burns y Geoff Davies, y que está destinado
Lenguajes de programación
Lenguajes de programación por Iván Cruz A través de la historia, el hombre siempre ha buscado la manera de comunicarse con otros seres vivos, debido a ello se crearon diversas formas de comunicación, tales
Introducción a Python. Cecilia Manzino
Características del lenguaje Es un lenguaje de programación multiparadigma, soporta la programación orientada a objetos, imperativa y, en menor medida, funcional. Es un lenguaje multiplataforma, puede
Introducción a la Computación
Introducción a la Computación Primer Cuatrimestre de 2012 Corrección de Algoritmos 1 Especificación, algoritmo y programa Especificación de un problema: Qué problema tenemos? Lenguaje formal (ej. lógica
Laboratorio de Sistemas Operativos y Redes. Zulip
Laboratorio de Sistemas Operativos y Redes Zulip 1er cuatrimestre 2017 Integrantes: Facundo Sardi, Luciano Ferreiro, Ailín Patiño. Profesor: José Luis Di Biase. Introducción. Zulip es una herramienta cliente-servidor
Matemática computable
Conjuntos computables - Combinatoria - Álgebra Antonio Montalbán. U. de Chicago Coloquio Uruguayo de Matemática. Diciembre, 2009 Conjuntos computables - Combinatoria - Álgebra 1 Conjuntos computables 2
Introducción al Curso Seminario de Matemáticas
al Curso Seminario de Matemáticas Julio Ariel Hurtado Alegría ahurtado@unicauca.edu.co 15 de febrero de 2013 Julio A. Hurtado A. Departamento de Sistemas 1 / 18 Agenda Presentación del Curso Julio A. Hurtado
Programación Declarativa
Programación Declarativa Arsenio Cornejo Jordán Dept. de Matemática Universidad Nacional de Panamá mayo 28, 2014 mayo 28, 2014 1 / 20 Programación Imperativa Temas 1 Programación Imperativa 2 Programación
Introducción a los Algoritmos Validez, Satisfactibilidad, Tipos y Funciones
Introducción a los Algoritmos Validez, Satisfactibilidad, Tipos y Funciones Pedro Sánchez Terraf CIEM-FaMAF Universidad Nacional de Córdoba FaMAF UNC 17 de marzo de 2014 Contenido 1 Demostraciones: Cómo
Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I
Algoritmos y Estructuras de Datos I Algoritmos y Estructuras de Datos I Objetivo: Aprender a programar en lenguajes imperativos. Primer cuatrimestre de 2017 Departamento de Computación - FCEyN - UBA Especificación
Lenguajes de Programación Programación funcional
Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una
EL LENGUAJE C. INTRODUCCIÓN y AMBIENTES.
FUNDAMENTOS DE PROGRAMACIÓN EL LENGUAJE C. INTRODUCCIÓN y AMBIENTES. Fundamentos de Programación. Página 0 de 16 Historia. C es un lenguaje de programación de alto nivel y de propósito general que fue
Utilerías básicas. Editor básico de texto: qué es y para qué sirve?
Utilerías básicas Por: Héctor Hugo Luna Miranda Las utilerías básicas son programas que se encuentran preinstalados desde el momento en que compras la computadora. Permiten realizar operaciones sencillas.
Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S
Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,
Fundamentos de programación
Fundamentos de programación 1 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Material de la Prof.ª Mercedes Gómez Albarrán Versión revisada y ampliada
Matemáticas Discretas TC1003
Matemáticas Discretas TC1003 Módulo I: Descripción Departamento de Matemáticas ITESM Módulo I: Descripción Matemáticas Discretas - p. 1/15 En esta sección veremos un poco de la historia de la Lógica: desde
Diseño Computarizado 15023
Diseño Computarizado 15023 PROGRAMACIÓN: FORTRAN Profesor: Claudio García Herrera Departamento de Ingeniería Mecánica Universidad de Santiago de Chile Índice 1 Introducción 2 Estructura 3 Sentencias y
Computadores y Redes de Computadores. Práctica de Laboratorio: Software
Computadores y Redes de Computadores Práctica de Laboratorio: Software Julián Viejo Cortés Jorge Juan Chico 2008, 2014 Índice de contenidos 1. Introducción...2 2. Ejemplo 1: Suma de números en ensamblador...2
2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
Máquinas de Turing, programas y tesis de Turing-Church
Máquinas de Turing, programas y tesis de Turing-Church Elvira Mayordomo, Universidad de Zaragoza Ilustraciones: Costas Busch, Rensselaer Polytechnic Institute 1 Máquinas de Turing 2 La jerarquía de lenguajes
Demostración del problema del paro (Halting problem)
Demostración del problema del paro (Halting problem) Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Definición del problema El problema