Docencia

Horario de tutorías: martes de 9:30 a 11:30.
Reserva una tutoría o envíame un correo electrónico.

11-09-2019

Modelos de computación 2020/2021

Material adicional

Ejemplos de Lex

Recursos

  • Finite state machine designer - Herramienta para dibujar autómatas y obtener LaTeX o imágenes
  • Regexr - Aplicación para aprender y testear expresiones regulares. ¡Cuidado! Acepta expresiones regulares más “expresivas” de las que veremos en clase.
  • Turing Machine Simulator - Una aplicación que simula una máquina de Turing programable con una sintaxis sencilla.
  • Mikrokosmos - Un intérprete educacional de cálculo lambda.
11-09-2019

Estructuras de datos 2020/2021

Material adicional

Práctica 1

Makefile para compilar el código y generar archivos de tiempos:

SHELL=/bin/bash
CPP=$(wildcard *.cpp)
EXE=$(basename $(CPP))
# Modifica aquí para ajustar el nivel de optimización (de 0 a 3):
CPPFLAGS=-O0
DAT=tiempos_busqueda.dat tiempos_ej3.dat

.PHONY: default clean tiempos

default: $(EXE)

clean:
	rm -f $(EXE) $(DAT)

# Modifica aquí para cambiar los puntos de inicio, fin y los saltos:
inicio_busq=100
fin_busq=1000000
incremento=1000
inicio_ej3=1024
fin_ej3=1000000000
factor=2

tiempos: $(DAT)

tiempos_busqueda.dat: busqueda_lineal
	for (( i=$(inicio_busq); i < $(fin_busq); i+=$(incremento) )); do \
		cmd="./$< $$i 10000"; \
		echo -en "\r$$cmd"; \
		$$cmd >> $@; \
	done

tiempos_ej3.dat: ejercicio3
	for (( i=$(inicio_ej3); i < $(fin_ej3); i*=$(factor) )); do \
		cmd="./$< $$i 10000"; \
		echo -en "\r$$cmd"; \
		$$cmd >> $@; \
	done

Recursos

  • Big O Cheat Sheet - Chuleta con las eficiencias teóricas de las operaciones más habituales sobre distintas estructuras de datos y de algoritmos de ordenación
  • Hackerrank - Plataforma de problemas de programación para practicar
  • Aprende Programación Competitiva - Colección de manuales sobre eficiencia, estructuras de datos y algoritmos
  • VSCodium Portable - Un editor de texto avanzado (la versión libre de VS Code) listo para ejecutar sin instalar en cualquier Linux de 64 bits, recomendable traerlo a clase en un pen drive
  • Sorting Algorithms (Re-)visualized - Una serie de visualizaciones animadas de algoritmos de ordenación