\documentclass[letter,10pt]{article}
\usepackage[activeacute,spanish]{babel}
\usepackage{amsmath,amsfonts,graphicx,pstricks,multicol,graphics}%color
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage{enumerate}
\usepackage{fancyhdr}
\usepackage{fancybox}
\pagestyle{fancy} \textheight=25.5cm \textwidth=18.5cm
\topmargin=-3cm \oddsidemargin=-1.3cm
\parindent=0mm

\begin{document}
\fancyfoot{}\fancyfoot[L]{\rule{18.5cm}{0.01cm} \\
\hspace{9.5cm}\thepage}

%Escudo y tìtulo
\parbox{3cm}{\includegraphics[width=3cm, height=3cm]{escudo.eps}}
\ovalbox{\ovalbox{\parbox{15cm}{\begin{large}
\begin{center}
\textbf{Facultad de Ciencias Naturales, Exactas y de la Educaci\'{o}n}\\
\vspace{0.5cm} \textbf{Departamento de Matem\'{a}ticas}
\end{center} \end{large}}}}\\

%identificación
\ovalbox{\ovalbox{\mbox{\parbox{0.5cm}{\hspace{0.4cm}}\parbox{9.3cm}{\vspace{0.2cm}
 \textbf{Tipo de Actividad:} Asignatura\\
 \textbf{Nombre:} Programaci\'{o}n B\'{a}sica (Mat261)\\
 \textbf{Requisitos:} Lógica y Conjuntos (Mat151)}}
\mbox{\parbox{8.2cm}{\textbf{Cr\'{e}ditos:} 4 por semestre\\
\textbf{Intensidad Horaria:} 4 horas te\'{o}ricas\\  \hspace{3cm} y 2 horas pr\'{a}cticas semanales}}}}\\


\textbf{Descripci\'{o}n del curso}\\
\\
Durante los últimos años, los avances tecnológicos han permitido
introducir el computador en un sinnúmero de actividades realizadas
por el hombre; su presencia  en ellas ha traído como consecuencia
grandes adelantos en campos tan diversos como la ingeniería, la
industria, los negocios, la banca, así  como en las ciencias, la
medicina e incluso en las artes. Aunque inicialmente  su papel se
centró en facilitar y simplificar la realización de tareas
mecánicas y tediosas, hoy día se ha convertido en un
in\-va\-lua\-ble instrumento en actividades como la educación o la
investigación, sirviendo  a la vez como medio y objeto de las
mismas. El curso introduce al estudiante en el campo de la
programación haciendo énfasis principalmente en el diseño y la
codificación de algoritmos. Inicialmente  se presentan algunos
elementos tecnológicos y teóricos que se han desarrollado a través
de la historia y que han servido para la cons\-trucción del
computador que conocemos hoy día. Posteriormente se presenta el
concepto de algoritmo como el conjunto de pasos necesarios para
resolver un problema, así como los diferentes tipos de datos que
se utilizan para  modelar el mismo. Finalmente se da una
introducción a la programación orientada a objetos.
\\
\\
\textbf{Objetivo General}\\

Presentar los conceptos básicos de algoritmia y programación que
permitan al estudiante analizar, diseñar y codificar algoritmos
para resolver problemas usando como medio el computador.\\
\\
\textbf{Objetivos Espec\'{i}ficos}

\begin{itemize}
  \item Modelar y describir algorítmicamente situaciones tanto reales como
abstractas.
  \item Utilizar los conceptos de programación estructurada en el análisis
y diseño de algoritmos.
  \item Identificar algunos elementos
matemáticos fundamentales en el funcionamiento del computador.
 \item Adquirir elementos básicos de programación que permitan fortalecer
habilidades para implementar algoritmos con una herramienta de
Desarrollo Rápido de Aplicaciones (RAD).
  \item Seleccionar los tipos
de datos adecuados para modelar la solución de un problema.
\end{itemize}

\textbf{Contenido}

\begin{enumerate}[{Cap\'{i}tulo} i]
\item \textbf{Introducci\'{o}n}
    \begin{enumerate}[1.]
        \item Historia de la inform\'{a}tica.
        \item Sistemas de numeraci\'{o}n.
        \item Componentes del computador.
        \item Etapas en el desarrollo de aplicaciones.
    \end{enumerate}
\item \textbf{Conceptos fundamentales}
\begin{enumerate}[1.]
        \item Definición y características de los algoritmos.
        \item Lenguajes de Programación.
\begin{enumerate}[a)]
        \item Código Máquina.
        \item Lenguaje Ensamblador.
        \item Lenguajes de nivel Medio.
        \item Lenguajes de Alto Nivel.
    \end{enumerate}
        \item Compiladores e Interpretadores.
        \item Datos, Tipos de datos y Operaciones Primitivas.
        \item Operadores Aritméticos y Lógicos.
        \item Constantes y Variables.
        \item Expresiones.
        \item Funciones internas
        \item Diseño del algoritmo en pseudocodigo
    \end{enumerate}
\item \textbf{Programación estructurada}
\begin{enumerate}[1.]
        \item Estructuras de selección.
    \begin{enumerate}[a)]
        \item Si (condición) haga - Si no haga.
        \item En caso de.
    \end{enumerate}
        \item Estructuras repetitivas.
\begin{enumerate}[a)]
        \item Mientras.
        \item Repita.
        \item Para.
    \end{enumerate}
       \item Bucles anidados.
    \end{enumerate}
\item \textbf{Programación modular}
\begin{enumerate}[1.]
        \item Módulos.
        \item Subprogramas.
        \item Funciones.
        \item Procedimientos.
        \item Alcance de las Variables.
        \item Paso de parámetros.
\begin{enumerate}[a)]
        \item Por Valor.
        \item Por Referencia.
      \end{enumerate}
 \item Recursividad.
  \item Unidades.
\end{enumerate}
\item \textbf{Arreglos y registros}
\begin{enumerate}[1.]
        \item Vectores.
        \item Matrices.
        \item Registros.
    \end{enumerate}
\item \textbf{Programación orientada a objetos}
\begin{enumerate}[1.]
        \item Clases y Objetos.
        \item Herencia.
        \item Polimorfismo.
    \end{enumerate}

\end{enumerate}
\textbf{Metodología}\\
\textit{Teoría:} Se realizarán exposiciones por parte del
profesor, siguiendo básicamente, los libros incluidos en la
bibliografía. En algunos temas se asignarán lecturas
complementarias y talleres que permitan consolidar y profundizar
los conocimientos adquiridos.\\
\textit{Práctica:} Se realizarán clases prácticas en el
laboratorio de sistemas. Habrá una clase práctica de 2 horas cada
semana.  En ellas se implementaran ejercicios que complementen y
refuercen el aprendizaje de los contenidos impartidos en las
clases teóricas.

Los alumnos deben desarrollar los programas de los ejercicios
propuestos por el profesor en el laboratorio.  Al finalizar el
curso, los alumnos deben desarrollar un proyecto donde apliquen
los conocimientos adquiridos en la presente asignatura. Se debe
entregar copia del proyecto en medio magnético, y realizar la
sustentación correspondiente del trabajo.
\\
\begin{center}
\textbf{Pr\'{a}cticas a realizar en el semestre}
\end{center}

\begin{center}
\begin{tabular}{|c|l|c|}
\hline \textbf{Practica} & \textbf{Tema} & \textbf{Horas} \\
\hline $1$ & Ambiente de Trabajo. & $2$ \\ \hline $2$ & La Forma,
entrada y salida de datos. & $2$ \\ \hline $3$ & Procedimientos y
Funciones de conversi\'{o}n de datos. & $2$ \\ \hline $4$ &
Funciones Est\'{a}ndar. Listas, Men\'{u}s. & $4$ \\ \hline $5$ &
Gr\'{a}ficos. & $2$ \\ \hline $6$ & Programaci\'{o}n estructurada.
& $4$ \\ \hline $7$ & Programaci\'{o}n modular & $4$ \\ \hline $8$
& Archivos. & $2$ \\ \hline $9$ & Arreglos. & $4$ \\ \hline $10$ &
Programaci\'{o}n Orientada a Objetos. & $4$ \\ \hline & Total &
$30$ \\ \hline
\end{tabular}
\end{center}

\textbf{Bibliografía}
\begin{itemize}
  \item JOYANES AGUILAR, Luis. Fundamentos de Programación. Mc Graw-Hill. Madrid España 1996.
  \item GREGORY L. HEILEMAN. Estructura de datos, algoritmos y programación orientada
a objetos. McGraw-Hill.
  \item JOYANES, L, y ZAHONERO I. Estructura
de Datos: Algoritmos, abstracción y objetos. McGraw-Hill 1998.
\item MARTIN J., ODELL J. Análisis y Diseño Orientado  a Objetos.
Prentice Hall. 1994.
\end{itemize}

\end{document}
