CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020)
I. Identificadores de la asignatura
Programación I
Instituto IIT Modalidad: Presencial
Departamento: Ingeniería Eléctrica y Computación
Créditos: 8
Materia: Programación Estructurada
Programa: Ingeniería en Sistemas Computacionales Carácter: Obligatoria
Clave: IEC110796
Tipo: Curso
Nivel: Principiante
Horas: 64 Totales Teoría: 60% Práctica: 40%
II. Ubicación Clave:
Antecedentes:
Fundamentos de Programación IEC980900
Consecuente:
Programación Orientada a Objetos IEC986616
III. Antecedentes
Conocimientos: sistemas numéricos, diagramas de flujo, realización de algoritmos, pseudocódigo, estructura
secuencial, estructuras repetitivas, saltos condicionales, arreglos. Esta materia tiene como pre-requisito
indispensable la materia de Fundamentos de Programación.
Habilidades: pensamiento crítico, facilidad para el razonamiento, capacidad de análisis de problemas,
razonamiento lógico, razonamiento abstracto, capacidad analítica, capacidad de síntesis, capacidad de
observación, capacidad de inferir, capacidad de inducir
Actitudes y valores: disposición al trabajo en equipo. Iniciativa de aprendizaje. Demostrar honestidad,
responsabilidad, respeto, puntualidad. El alumno tendrá disposición a la creatividad lógica a la tenacidad, a la
dedicación y a la constancia.
1
IV. Propósitos Generales
Que el estudiante adquiera los conocimientos de la programación estructurada y modular para utilizarlos
en la resolución de problemas.
V. Compromisos formativos
Intelectual: el estudiante se autodirige en la búsqueda de información y aprendizaje de técnicas ó
métodos que permitan la solución de problemas relativos a su profesión. Desarrolla o elige soluciones a
problemas utilizando la herramienta C. Se comunica efectivamente tanto en forma oral como escrita en el
ejercicio de su profesión, siendo capaz de adecuar el nivel y contenido técnico de la comunicación de
acuerdo a las necesidades o intereses del destinatario.
Humano: aporta esfuerzo, compromiso, integridad y honestidad a cualquier negocio, industria u
organización pública o privada en donde ejerza sus servicios profesionales. Participa como un miembro
productivo cuando integre equipos de trabajo.
Social: respeta las leyes y normas establecidas por la sociedad y de manera particular aquellas
relacionadas con el ejercicio de su profesión. Es cuidadoso de actuar bajo los principios éticos de su
profesión. Se muestra interesado por contribuir, desde el ejercicio de su profesión, a la conservación del
medio ambiente.
Profesional: el estudiante incorpora a su formación los conocimientos del lenguaje C en todos sus
niveles en la resolución de problemas.
VI. Condiciones de operación
Espacio: aula tradicional
Laboratorio: cómputo Mobiliario: mesa redonda y sillas
Población: 25 - 30
Material de uso frecuente:
a) proyector
b) computadora portátil
Condiciones especiales: no aplica
2
Temas Contenidos Actividades
a. Encuadre del curso.
I. Introducción a la b. Importancia de la programación. El instructor presenta el programa, las políticas del curso, los
programación. c. Ejemplos donde se utiliza la programación. valores de la clase y la forma de evaluar.
d. Arquitectura general del sistema mínimo de El instructor explica la importancia del curso y da ejemplos donde
3 clases una computadora: CPU, datapath (ALU + se utiliza la programación.
registros), unidad de control, memoria caché,
El instructor relaciona los conceptos de la clase de Fundamentos
ram, rom y dispositivos de entrada y salida.
de Programación con el curso. El estudiante responde a las
preguntas del profesor, toma nota y subraya los apuntes.
El estudiante realiza una investigación donde proporciona más
ejemplos de dónde se utiliza la programación según su carrera.
El estudiante reporta el resultado de su investigación con los
estándares de calidad expuestos en el silabario de clase y realiza
una presentación oral ante la clase.
El instructor menciona los módulos de un sistema computador
mínimo y da ejemplos de transferencia de datos entre la memoria y
registros del procesador utilizando algún software para bajo nivel.
El instructor hace hincapié en que la memoria es lineal.
El instructor realiza ejemplos de direccionamiento utilizando el
registro (BX) como apuntador.
El estudiante lee y responde a las preguntas del profesor y toma
nota.
Los estudiantes forman equipos y realizan en forma colaborativa la
práctica de apuntadores, utilizando un software para bajo nivel.
II. Entornos de a. Entornos de desarrollo integrados (IDE) El instructor explica qué es el código fuente, el editor, el compilador,
desarrollo. b. El editor el ligador y el intérprete.
c. El compilador
1 clase El estudiante lee, responde a las preguntas del profesor y toma
d. El ligador o enlazado.
nota.
e. El Interprete.
El instructor introduce al estudiante al ambiente de programación
en C a utilizar durante el curso.
III. Representación a. Comentarios, identificadores, palabras El instructor repasa la declaración de datos, variables y constantes
de datos en reservadas del lenguaje. así como su representación en memoria.
memoria y b. Variables y constantes.
El estudiante toma nota y realiza ejemplos de la representación de
operadores. c. Declaración de datos, de apuntadores y
datos en memoria.
manejo de memoria con apuntadores.
d. Representarción de los datos primitivos en El estudiante realiza ejemplos con apuntadores.
memoria.
4 clases e. Direccionamiento de datos utilizando El instructor repasa los operadores, su precedencia y enfatiza el uso
de los operadores & , * , ++, -- así como los contextos en los que
apuntadores y visualización con mapas de
se utilizan.
memoria.
f. Operadores de comparación, aritméticos, El estudiante realiza ejemplos de operaciones básicas con datos y
lógicos, relacionales, de asignación, de con apuntadores utilizando operadores.
incremento, de decremento.
El estudiante realiza una práctica.
g. Precedencia de operadores.
3
IV. Direccionamiento. a. Capacidad de direccionamiento de los El instructor repasa el direccionamiento de datos y da ejemplos de
apuntadores. los diferentes tipos apuntadores y realiza mapas de memoria.
2 clases b. Referencia y desreferencia de apuntadores y
El instructor explica la referencia y desreferencia de apuntadores y
datos.
datos.
El estudiante toma nota y realiza ejemplos con apuntadores y su
representación en memoria.
El estudiante toma nota y realiza ejemplos con sus respectivos
mapas de memoria.
El estudiante resuelve problemas utilizando apuntadores.
V. Expresiones, a. Definición de sentencia El instructor repasa los conceptos de expresiones y tipos de
sentencias y b. Tipos de sentencias sentencias y explica su sintaxis en el contexto del lenguaje C.
control de flujo. i. Secuencia
El estudiante repasa los apuntes de la clase pre-requisito, toma
1. Declaraciones
4 clase nota y realiza ejemplos de cada sentencia.
2. Expresiones
ii. Decisión El estudiante realiza diagramas de flujo en la etapa del diseño de la
3. if – elseif – else solución de algún problema.
4. El operador condicional ? y :
El estudiante resuelve problemas que involucran expresiones,
5. switch – case
sentencias y control de flujo involucrando direccionamiento con
iii. Iteraciones
apuntadores, mediante la programación en lenguaje C.
6. for
7. while El estudiante realiza el mapa de memoria de su programa.
8. do – while
iv. Sentencias break y continue.
VI. Funciones. a. Definición de funciones. El instructor explica la modularización de un programa a través de
b. Pila de llamada de funciones. las funciones.
c. La función main( ).
4 clases El instructor explica la plantilla general para la definir funciones, las
d. Funciones definidas por el usuario.
variables locales y globales así cómo invocar funciones.
e. Llamada de funciones
f. Pase y retorno de un dato a una función por El instructor explica las pilas de llamada de funciones así como la
valor y por referencia. función main().
g. Mapas de memoria.
h. Recursión. Prototipos de funciones El instructor explica las funciones definidas por el usuario así como
i. Variables globales y locales las bibliotecas propias del lenguaje.
j. Directivas del preprocesador El instructor explica el pase por valor y por referencia a una función.
k. Definición y declaración de las bibliotecas
propias del lenguaje stdio.h, stdlib.h. El instructor explica el retorno de un dato por medio de su valor o
l. Funciones printf(), scanf(), getch(), por su referencia.
getchar(), putc(), putchar() y especificadores
El instructor realiza los mapas de memoria.
de formato.
El instructor explica el concepto de recursión.
El estudiante en forma colaborativa con sus compañeros
organizados en equipos realiza el diseño e implementación para la
solución de algún problema que involucre control de flujo, funciones
y apuntadores.
VII. Arreglos y a. Declaración e inicialización de arreglos. El instructor explica el uso y la importancia de los arreglos
cadenas. b. Extracción de datos y recorrido de arreglos estáticos y las cadenas de caracteres.
por medio de índices y apuntadores. El instructor explica la declaración e inicialización de arreglos y
4 clases c. Operaciones (post y pre) incremento y cadena de caracteres utilizando inicialización directa o por medio
decremento de apuntadores en arreglos. de un apuntador utilizando la programación C.
d. Declaración e inicialización de cadenas.
El instructor explica las operaciones de pos y pre incremento y
e. Búsqueda y extracción de caracteres decremento para recorrer arreglos.
utilizando índices y apuntadores. .
f. Pase de arreglos a funciones. El instructor ejemplifica el uso de los arreglos y las cadenas.
4
g. Las bibliotecas ctype.h y string.h.
El instructor explica el pase de arreglos de 1, 2 o N dimensiones a
las funciones.
El estudiante reflexiona y toma nota.
El estudiante diseña un diagrama de flujo que resuelva un
problema que involucre el uso de control de flujo, funciones,
apuntadores, variables locales y globales, directivas de pre-
procesamiento, bibliotecas y arreglos/cadenas.
El estudiante resuelve un problema que incluya el uso de control
de flujo, funciones, apuntadores, variables locales y globales,
directivas de pre-procesamiento, bibliotecas y arreglos/cadenas.
El estudiante realiza el mapa de memoria del programa.
VIII. Memoria a. Definición El instructor explica el concepto de memoria dinámica así como la
dinámica b. Memoria heap memoria heap. También expone las ventajas y desventajas.
c. Funciones calloc(), malloc() y free() El instructor explica las bibliotecas con las que se pueden llamar a
2 clases las funciones que reservan la memoria dinámica.
El instructor explica cómo utilizar las funciones para reservar y
liberar la memoria dinámica.
El estudiante propone y resuelve un problema mediante un
programa que utilice arreglos dinámicos y otro programa con
arreglos estáticos, llevando a cabo la comparación entre ambas
soluciones.
El estudiante reflexiona, toma nota.
IX. Estructuras y a. Declaración e inicialización de estructuras. El instructor explica las estructuras de datos y la forma de
uniones de datos i. Declaración de variables tipo declararlas.
estructura y apuntadores a estructuras. El instructor explica la forma de acceder a los miembros de una
4 clases ii. Arreglos de estructuras. variable de tipo estructura, utilizando el operador de acceso punto
iii. Acceso a miembros de una estructura. ( ) y el operador de acceso flecha ( ->).
iv. Operaciones con estructuras.
El instructor explica el diagrama de memoria de las estructuras.
v. Mapas de memoria de una estructura.
b. Declaración e inicialización de uniones. El instructor explica la forma declarar arreglos de estructuras y la
i. Declaración de variables y forma de acceder a los miembros de cada estructura.
apuntadores a uniones. El instructor explica el diagrama de memoria de los arreglos de
ii. Arreglos de uniones. estructuras.
iii. Acceso a miembros de una unión.
iv. Acceso a campos de bits de una unión. El estudiante reflexiona, toma nota.
El docente plantea un problema donde puedan utilizarse las
estructuras.
El estudiante diseña el diagrama de flujo que resuelva el problema
que involucre el uso de control de flujo, funciones, apuntadores,
variables locales y globales, directivas de pre-procesamiento,
bibliotecas, arreglos/cadenas y apuntadores a estructuras
dibujando el mapa de memoria.
El estudiante resuelve el problema utilizando la programación.
El instructor explica la forma de acceder a los miembros de una
unión utilizando el operador de acceso punto ( ) y el operador de
acceso flecha ( ->).
El instructor explica el diagrama de memoria de las uniones.
El instructor explica la forma declarar arreglos de uniones y la
forma de acceder a los miembros de cada unión utilizando
apuntadores.
El instructor explica el diagrama de memoria de los arreglos de
uniones.
5
El estudiante reflexiona, toma nota.
El docente plantea un problema donde puedan utilizarse las
uniones.
El estudiante diseña el diagrama de flujo que resuelva el problema
que involucre el uso de control de flujo, funciones, apuntadores,
variables locales y globales, directivas de pre-procesamiento,
bibliotecas, arreglos/cadenas y apuntadores a estructuras y a
uniones dibujando el mapa de memoria.
El estudiante resuelve el problema utilizando la programación.
X. Archivos. a. Texto El instructor explica el concepto de archivos de texto y binarios así
b. Binarios como el apuntador FILE y la macro NULL.
4 clases c. Apuntador de archivos tipo FILE y la macro El instructor explica la librería para trabajar con archivos así como
NULL. las diferentes funciones de la misma.
d. Funciones para trabajar con archivos: fscanf,
El instructor explica los archivos de acceso secuencial o directo.
fprintf, fread, fwrite, fseek, ftell, fclose, feof,
rewind, ferror, fflush(), fopen(), remove, etc. El estudiante reflexiona y toma nota.
e. Archivos de acceso secuencial o directo.
El docente plantea un problema donde se utilicen archivos.
El estudiante diseña el diagrama de flujo que resuelva el problema
que involucre el uso de control de flujo, funciones, apuntadores,
variables locales y globales, directivas de pre-procesamiento,
bibliotecas, arreglos/cadenas y apuntadores a estructuras y
archivos.
El estudiante resuelve el problema utilizando la programación.
VIII. Metodología y estrategias didácticas
Metodología Institucional:
a) Elaboración de ensayos, monografías e investigaciones (según el nivel) consultando
fuentes bibliográficas, hemerográficas y en Internet.
b) Elaboración de reportes de lectura de artículos en lengua inglesa, actuales y relevantes.
Estrategias del Modelo UACJ Visión 2020 recomendadas para el curso:
a) aproximación empírica a la realidad
b) búsqueda, organización y recuperación de información
c) comunicación horizontal
d) descubrimiento
e) ejecución-ejercitación
f) elección, decisión
g) evaluación
h) experimentación
i) extrapolación y trasferencia
6
j) internalización
k) investigación
l) meta cognitivas
m) planeación, previsión y anticipación
n) problematización
o) proceso de pensamiento lógico y crítico
p) procesos de pensamiento creativo divergente y lateral
q) procesamiento, apropiación-construcción
r) significación generalización
s) trabajo colaborativo
IX. Criterios de evaluación y acreditación
a) Institucionales de acreditación:
Acreditación mínima de 80% de clases programadas.
Entrega oportuna de trabajos.
Pago de derechos.
Calificación ordinaria mínima de 7.0.
Permite examen único: no.
Permite examen extraordinario: no
b) Evaluación del curso
Acreditación de los temas mediante los siguientes porcentajes:
Tema I 10%
Tema II 10%
Tema III 10%
Tema IV 10%
Tema V 10%
Tema VI 10%
Tema VII 10%
Tema VIII 10%
Tema IX 10%
Tema X 10%
Total 100 %
7
X. Bibliografía
Deitel, H. M., & Deitel, P. J. (2010). How to program C. Sixth Edition. Upper Saddle River, NJ.
México: Pearson.
Joyanes Aguilar, L. (2008). Fundamentos de Programación Algoritmos, estructuras y objetos.
Madrid: McGrawHill.
Venit, Stewart; Drake, Elizabeth;. (2009). Prelude to Programming Concepts & Design. Boston:
Pearson.
Villalobos S., Jorge A.; Casallas, Ruby G.;. (2006). Problemas, Soluciones y Programas. En
Fundamentos de Programación Aprendizaje Activo Basado en Casos (págs. 1-61). México: Pearson.
X. Perfil deseable del docente
Maestría, preferentemente doctorado en áreas de ciencias o ingeniería de la computación o
tecnologías de información.
XI. Institucionalización
Responsable del Departamento: Ing. Jesús Armando Gándara Fernández.
Coordinador/a del Programa: M.S.I. Cynthia Vanessa Esquivel Rivera.
Fecha de elaboración: Marzo 2016.
Elaboró: Humberto de Jesús Ochoa Domínguez, Vianey Guadalupe Cruz Sánchez, Patricia
Cristina Parroquín Amaya, Sandra Elena Ramírez Jara, Ivan Ortega Aranda, Arnulfo Castro
Vásquez.
Fecha de rediseño:
Rediseñó: