Algoritmos y Estructuras de datos

Objetivo del curso

Al final del curso, el alumno será capaz de:

  • Resolver problemas que utilicen estructuras y recursividad.

  • Implementar estructuras de datos usando memoria estática y dinámica en C.

  • Seleccionar algoritmos de búsqueda y ordenamiento para problemas especı́ficos.

  • Realizar implementaciones en lenguaje C.


Contenido sintético:

  1. Tipos de datos abstractos y estructuras dinámicas.

  2. Recursividad y eficiencia.

  3. Estructuras para listas.

  4. Estructuras para árboles.

  5. Estructuras para gráficas.

  6. Algoritmos de búsqueda interna.

  7. Algoritmos de ordenamiento interno.

Bibliografía.

  1. Aho A. V., Ullman J. D., Hopcroft J. E., “Estructuras de datos y algoritmos”, Pearson, 2000.

  2. Sedgewick R., “Algorithms in C Parts 1-4: Fundamentals, Data Structures, Sorting, Searching”, Addison Wesley, 3a ed., 2001.

  3. Sedgewick R., “Algorithms in C Part 5: Graph algorithms”, Addison Wesley, 3a ed., 2001.

  4. Sedgewick R., “Algoritmos en C++”, Pearson, 1995.

  5. Revistas de divulgación científicas o técnicas en inglés, relacionadas con el contenido de la UEA.

Asistencia y participación

La asistencia a todas las sesiones-clases del curso es altamente recomendable. Se les recomienda mucho a los estudiantes sean puntuales en su asistencia, durante todas las clases del trimestre.

Los y las estudiantes que tuvieran la necesidad de ausentarse de la clase, o de faltar, ya sea por una causa de salud o causa de fuerza mayor, deben de ponerse en contacto a la brevedad con el instructor y/o ayudante del curso para dar el aviso. Así también el alumno o alumna que falte deberá procurar ponerse en contacto con algún compañero de grupo, o ingresar a la brevedad al espacio del aula virtual, para ponerse al corriente de los temas vistos en la clase a la que no asistió.

Finalmente, se valora mucho a los estudiantes con una participación activa en las discusiones de la clase. Esto es extremadamente importante ya que proporciona al instructor, y a los estudiantes también, una retroalimentación del entendimiento de la clase.

Honestidad académica

De acuerdo al Reglamento de Alumnos de la UAM, es falta de los alumnos en contra de la institución: el suplantar o permitir ser suplantado en la realización de actividades académicas y se impondrá desde amonestación escrita hasta suspensión por dos trimestres.

Adicionalmente, los alumnos que incurran en esta falta no tendrán derecho a aprobar el curso..

Todos los trabajos entregados para evaluación deberán ser de la autoría y/o esfuerzo personal del propio alumno, o en su caso del grupo de personas que lo firma.

Acerca de la entrega de reportes

Formato de reportes de prácticas y tareas:

El reporte debe ser elaborado en formato LaTex (altamente recomendable aprenderlo), basado en plantilla de IEEE, o bien "article" de LaTeX (se pronuncia "La-Tej" o "Lei-Tej"). Hacer el esfuerzo por respetar el formato de la plantilla (tipos de letra, alineaciones, etc.).

  • En el título, iniciar con la frase "Práctica ..." o "Tarea ...", según sea el caso.

  • No olvidar poner sus nombres completos en orden alfabético, acorde al primer apellido, y su e-Mail válido.

  • Enviar en formato PDF, generado por LaTeX.

basta que inicien en el encabezado con el encabezado siguiente:


%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[11pt,letterpaper,twocolumn]{article}

\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}

\usepackage[utf8]{inputenc} % para poder escribir con acentos

\usepackage[spanish]{babel} % para usar gramática española

\usepackage[T1]{fontenc}

\usepackage{authblk} % para insertar varios autores y afiliaciones

\usepackage{amsmath}

\usepackage{amsfonts}

\usepackage{amssymb}

\usepackage{amsthm}

\usepackage{mathptmx}

\usepackage{cmap}

\setcounter{secnumdepth}{5}

\setcounter{tocdepth}{5}

\usepackage{graphicx}

\usepackage{url}

\usepackage{color}

\usepackage{listings}

\usepackage{textcomp}

\usepackage{endnotes}

\usepackage{wasysym}

\usepackage{pbox}

\lstset{ %

language=C++, % elegir el lenguaje del código

basicstyle=\footnotesize, % el tamaño del font a usar para el código

numbers=left, % dónde poner los números de línea

numberstyle=\footnotesize, % tamaño de font usados para los números de línea

stepnumber=1, % el paso de numeración

numbersep=5pt, % distancia del numero de línea y la línea

backgroundcolor=\color{white}, % color de fondo, para usarlo hay que agregar \usepackage{color}

showspaces=false, % mostrar espacios en blanco ?

showstringspaces=false, % subrayar espacios con cadenas?

showtabs=false, % mostrar taba usando cadenas?

frame=false, %single, % enmarcar el código?

tabsize=2, % sets default tabsize to 2 spaces?

captionpos=b, % sets the caption-position to bottom?

breaklines=true, % sets automatic line breaking?

breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace ?

escapeinside={\%*}{*)} % if you want to add a comment within your code

}

\title{Pr\'actica No. XX \\ Tema ...}

\author{Alumno1 Apellidos \thanks{alu01@azc.uam.mx}}

\author{Alumno2 Apellidos \thanks{alu02@azc.uam.mx}}

\author{Alumno3 Apellidos \thanks{alu03@azc.uam.mx}}

\affil{\small{Universidad Autónoma Metropolitana, Unidad Azcapotzalco. México DF.}}

\renewcommand\Authands{ and }

\begin{document}

\maketitle

\begin{abstract} %

Una red consiste en dos o más computadoras conectadas entre sí para compartir información y archivos entre ellas. Los negocios no los únicos que se benefician con la creación de una red. Los usuarios domésticos pueden disfrutar compartiendo música, películas e impresoras desde cualquier computadora. Bla, bla, bla.

\end{abstract}

\section{Introducción}

El intercambio de archivos o ficheros, de acuerdo a \cite{tanenbaum} y \cite{stallings}, las computadoras conectadas a una red pueden compartir archivos y documentos entre sí. Las computadoras personales conectadas a una red de negocios pueden escoger qué archivos y carpetas estarán disponibles para compartirse en la red.

\section{Desarrollo}

\begin{lstlisting}

#include <stdio.h>

int main(void)

{

printf("Hola mundo!\n");

return 0;

}

\end{lstlisting}

\section{Experimentos}

{\small

\begin{verbatim}

--para poner salidas de terminal ----

\end{verbatim}

}

% las figuras se recomiendan en formato EPS, o bien en PDF vectorizado

\begin{figure}[] %% fig 1

\centering

\includegraphics[scale=0.5]{fig_1}

\caption{Flow diagram for the training stage.}

\label{fig: diagrama de flujo del entrenamiento modificado (junio)}

\end{figure}

\section{Conclusiones}

Aunque poderoso, el caos de Internet es frágil. A pesar de su éxito, nadie sabe si las redes sociales son una moda que desaparecerá tan rápido como llegó. Funcionan porque sirven para que nos comuniquemos mejor que con las herramientas que teníamos antes. Pero si mañana surge una forma de comunicación mejor, podría dejar vacíos los sitios de redes. De momento, en medio de ese caos, los humanos estamos más conectados que nunca. Y cada día, millones de personas crean y destruyen nuevos y viejos lazos.

\begin{thebibliography}{9}

\bibitem{tanenbaum}

A. S. Tanenbaum, Redes de computadoras. Mexico: Pearson, 4 ed., 2003.

\bibitem{stallings}

W. Stallings, Comunicaciones y redes de computadoras. Mexico: Prentice-Hall, 7 ed., 2004.

\end{thebibliography}

\end{document} %aqui termina el documento


%%%%%%%%%%%%%%%%%%%%%%%%


%aqui termina el documento - plantilla ejemplo


En la siguiente URL esta la plantilla correspondiente para abrirse y comenzar a escribir sobre ella, sustituyendo el texto: -- PLANTILLA EJEMPLO --.

En Linux existe uno de los mejores editores de LaTex, se llama Kile; pero no es el único. Existe también este libro en línea gratuito "LaTex WikiBook", es muy claro y tiene muchos ejemplos.

En el sitio OverLeaf también se tiene una opción de editor en línea, muy sencillo y dinámico, de click aquí: https://www.overleaf.com?r=9643915a&rm=d&rs=b