Fundamentos de Programación
Datos Generales
Nombre de la asignatura Nivel de formación Clave de la asignatura
Fundamentos de Programación Licenciatura I5288
Prerrequisitos Area de formación Departamento
- - Departamento de Sistemas de Información
Academia Modalidad Tipo de asignatura
PROGRAMACION Presencial Curso-Taller
Carga Horaria
Teoría Práctica Total Créditos
40 40 80 8
Trayectoria de la asignatura

Contenido del programa
Presentación

El presente curso-taller es fundamental en la formación del estudiante para la comprensión de los diferentes lenguajes; enfocándose a conceptos básicos para la programación de computadoras; considerando la creación de algoritmos que le permitan desarrollar la lógica de programación y la solución de problemas.

Una parte fundamental del desarrollo de sistemas de información corresponde a la fase de diseño. Durante esa fase, se elaboran los algoritmos que resuelven problemas específicos del sistema. 

Posteriormente, los algoritmos son implementados utilizando un lenguaje de programación que se adapte mejor a los requerimientos corporativos y/o del sistema. 

Esta materia proporciona las bases teóricas para el diseño de algoritmos y programación de aplicaciones.

Objetivos del programa
Objetivo general

El estudiante desarrollará las habilidades de análisis y abstracción de problemas, utilizando una metodología en el diseño de algoritmos para resolver éstos, permitiéndole obtener la lógica necesaria para la programación y toma de decisiones.

       
Contenido
Contenido temático
Unidad I Introducción a la Programación

Unidad II Métodos y Herramientas para resolución de Problemas

Unidad III Programación Estructurada

Unidad IV Manejo de Arreglos

Unidad V Programación modular


Contenido desarrollado

Unidad I - Introducción a la Programación (10 horas)

Objetivo particular:  El estudiante conocerá los conceptos universales en la programación: comentarios, palabras reservadas, identificadores, constantes, variables, tipos de datos, operadores, expresiones.


1.1 Conceptos Generales

1.2 Definición de algoritmo

1.2.1 Clasificación de los Algoritmos

1.2.2 Características de los algoritmos

1.3 Definición de Programa de computadora

1.4 Definición de Lenguaje de programación 

1.5 Sintaxis y Semántica

1.6 Elementos básicos de un algoritmo

1.7 Datos y Tipo de Datos

1.7.1 Constantes y Variables

1.7.2 Identificadores y Reglas para Nombrarlos

1.7.3 Operadores y Tipo de Operadores

1.7.4 Expresiones y Tipo de Expresiones

1.8 Entrada, Proceso y Salida



Unidad II - Métodos y Herramientas para resolución de Problemas (10 horas)

Objetivo particular: El estudiante comprenderá las fases en la resolución de problemas.



2.1 Fases de Resolución de problemas

2.1.1 Análisis del problema

2.1.2 Diseño del Algoritmo

2.1.3 Resolución del Problema Mediante el Computador (análisis, diseño, verificación)

2.2 Representación de Algoritmos

2.2.1 Diagramas de flujo

2.2.2 Pseudocódigo

2.2.3 Estructura inicial de un Algoritmo

2.3 Estilo

2.3.1 Organización Visual

2.3.2 Comentarios 

2.3.3 Documentación



Unidad III - Paradigmas de programación (20 horas)

Objetivo particular: El estudiante será capaz de diseñar pseudo código y diagramas de flujo, lo que constituye un lenguaje universal en la representación simbólica de algoritmos y su codificación en un lenguaje de alto nivel.


3.1 Definición de paradigmas de programación 

3.1.1 Definición de diferentes paradigmas de programación

3.2 Programación Estructurada

3.2.1 Teorema de Böhm y Jacopini

3.3 Estructura general de un programa

3.3.1 Encabezado

3.3.2 Declaración de Datos

3.3.3 Cuerpo del Programa

3.4 Estructura de un programa

3.4.1 Definición de Estructuras de Datos

3.4.2 Definición de Estructura de Control 

3.4.3 Secuencial

3.4.3.1 Definición

3.4.3.2 Representación en Pseudocódigo 

3.4.3.3 Representación en Diagrama de Flujo

3.4.3.4 Ejercicios de la Estructura Secuencial

3.4.4 Selectiva (condicional)

3.4.4.1 Definición (selectiva simple, doble y múltiple)

3.4.4.2 Representación en Pseudocódigo (selectiva simple, doble y múltiple )

3.4.4.3 Representación en Diagrama de Flujo (selectiva simple, doble y múltiple)

3.4.4.4 Ejercicios de la Estructura Selectiva (selectiva simple, doble y múltiple )

3.4.5 Repetitiva (Iterativa)

3.4.5.1 Estructura repetitiva mientras (while)

3.4.5.1.1 Definición

3.4.5.1.2 Representación en Pseudocódigo 

3.4.5.1.3 Representación en Diagrama de Flujo

3.4.5.1.4 Ejercicios de la estructura repetitiva mientras (while)

3.4.5.2 Estructura Repetitiva hacer_mientras (do_while)

3.4.5.2.1 Definición

3.4.5.2.2 Representación en Pseudocódigo

3.4.5.2.3 Representación en Diagrama de Flujo

3.4.5.2.4 Ejercicios de la estructura repetitiva hacer_mientras (do_while)

3.4.5.3 Estructura repetitiva desde (for)

3.4.5.3.1 Definición

3.4.5.3.2 Representación en Pseudocódigo

3.4.5.3.3 Representación en Diagrama de Flujo

3.4.5.3.3 Ejercicios de la estructura repetitiva desde (for)

3.5 Ejercicios con Estructura Anidadas (secuencial, selectiva y repetitiva)



Unidad IV - Manejo de Arreglos (20 horas)

Objetivo particular: El estudiante será capaz de definir y utilizar estructuras de control, arreglos, matrices y funciones y su codificación en un lenguaje de alto nivel.


4.1 Definición de Arreglos

4.2 Características de los Arreglos

4.3 Clasificación de los Arreglos

4.3.1 Arreglos Unidimensionales Numéricos (vectores)

4.3.1.1 Definición de Arreglos Unidimensionales

4.3.1.2 Declaración de arreglos Unidimensionales

4.3.1.3 Ejercicios de Arreglos Unidimensionales 

4.3.2 Arreglos Unidimensionales de Caracteres (cadenas)

4.3.2.1 Definición de Arreglos Unidimensionales de Caracteres

4.3.2.2 Declaración de Arreglos Unidimensionales de Caracteres 

4.3.2.3 Funciones de Cadenas de Caracteres

4.3.2.4 Ejercicios de Arreglos Unidimensionales de Caracteres

4.3.3 Arreglos Bidimensionales (tablas o matrices)

4.3.3.1 Definición de Arreglos Bidimensionales

4.3.3.2 Declaración de Arreglos Bidimensionales

4.3.3.3 Ejercicios de Arreglos Bidimensionales 

4.3.4 Ordenamiento de un Arreglo

4.3.4.1 Algoritmo de Ordenamiento Burbuja (bubble sort)

4.3.5 Búsqueda en un Arreglo

4.3.5.1 Algoritmo de Búsqueda Lineal

4.3.5.2 Algoritmo de Búsqueda Binaria


Unidad V - Programación modular (20 horas)

Objetivo particular: El alumno conocerá las ventajas de utilizar funciones para agilizar el desarrollo de un programa, permitiendo código reutilizable.

5.1 Definiciones

5.1.1 Programación Modular, Módulo, Función, Variables Locales vs. Variables Globales

5.2 Estructura de una Función dentro de un Programa

5.2.1 Funciones Sin Prototipos

5.2.2 Funciones Con Prototipos

5.3 Clasificación de la Funciones

5.3.1 Funciones definidas en el compilador (librerías, archivos de encabezado)

5.3.2 Funciones Sin Paso de Parámetros

5.3.2.1 Definición

5.3.2.2 Características

5.3.2.3 Invocación o llamadas a la función

5.3.2.4 Ejercicios de funciones Sin Paso de Parámetros 

5.3.3 Funciones con Paso de Parámetros por Valor o Copia

5.3.3.1 Definición

5.3.3.2 Características

5.3.3.3 Invocación o Llamadas a la Función

5.3.3.4 Ejercicios de Funciones con Paso de Parámetros por Valor o Copia

5.3.4 Funciones con Paso de Parámetros por Referencia o Dirección

5.3.4.1 Definición

5.3.4.2 Características

5.3.4.3 Invocación o llamadas a la Función

5.3.4.4 Ejercicios de Funciones con Paso de Parámetros por Referencia o Dirección

5.3.5 Recursividad 

5.3.5.1 Definición

5.3.5.2 Características

5.3.5.3 Ejercicios de Funciones Recursivas


Actividades prácticas
Prácticas de laboratorio.
Metodología

Métodos: Explicativo, deductivo, expositivo, prácticas de laboratorio e interactivo. 

Actividades: Realización de prácticas, resolución de ejercicios, dirigidos por el profesor.

Recursos didácticos: Pintarrón, equipo de cómputo, video-proyección, aplicaciones o programas acordes a la temática de cada unidad del curso, Internet.

Evaluación

50% - Exámenes teórico-prácticos (dos durante el semestre)

50% - Prácticas, tareas e investigaciones.


Bibliografía

Libro

Diseño de algoritmos y su codificación en lenguaje C.

Corona Nakamura, M.A. y Ancona (2011) Ediciones de la Noche No. Ed

ISBN: 978-607-15-0571-2

Libro

Fundamentos de Lógica de Programación

Tamayo Silva, Félix Manuel (2012) EAE No. Ed

ISBN: 3659016675, 9783659016677

Libro

Fundamentos de Informática y Programación

Candela Santiago y Otros (2011) Editorial Paraninfo 2011 No. Ed

ISBN: 8497328469, 9788497328463

Libro

Metodología de la Programación: Algoritmos, Diagramas de Flujo y Programas

Cairo Osvaldo (2008 ) Alfaomega No. Ed

ISBN: 9789701511008

Libro

Fundamentos de Programación

Joyanes, L. (2008) McGraw Hill No. Ed

ISBN: 8448161114, 9788448161118

Libro

Programming: Learn the fundamentals of computer programming Languages

Marc Rawen (2016) CreateSpace Independent P No. Ed 2

ISBN: 978-1539490197

Otros materiales

-

Perfil del profesor
Licenciatura en carreras relacionadas con las Tecnologías de Información.  Experiencia de dos o más años en lenguajes de programación.
Lugar y fecha de su aprobación

Ultima revisión:

Zapopan, Jalisco, Septiembre de 2018


Instancias que aprobaron el programa

Academia de Programación - Colegio Departamental



Archivo (doucmento firmado)
Programa (Icono pdf)