Programación imperativa básica - Escuela Colombiana de Ingeniería
Programación imperativa básica - Escuela Colombiana de Ingeniería
Programación imperativa básica - Escuela Colombiana de Ingeniería
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
PROGRAMA DE MATEMÁTICAS<br />
ASIGNATURA: PROGRAMACIÓN IMPERATIVA BÁSICA<br />
Responsable: Programa <strong>de</strong> <strong>Ingeniería</strong> <strong>de</strong> Sistemas<br />
CÓDIGO: Mnemónico: PIMB Numérico:<br />
Plan <strong>de</strong> estudios: 02<br />
1. OBJETIVO<br />
• Mo<strong>de</strong>lar la solución <strong>de</strong> un problema aplicando alguna metodología.<br />
• Apren<strong>de</strong>r a utilizar el computador como herramienta para la solución <strong>de</strong> problemas<br />
mediante la construcción <strong>de</strong> programas en un lenguaje <strong>de</strong> programación.<br />
• Capacitar para el entendimiento y uso <strong>de</strong> otros lenguajes <strong>de</strong> programación o herramientas<br />
computarizadas en la solución <strong>de</strong> problemas.<br />
2. JUSTIFICACIÓN<br />
Los conceptos básicos <strong>de</strong> computación y la programación <strong>de</strong> computadores como herramienta<br />
en la solución <strong>de</strong> problemas <strong>de</strong>ben ser <strong>de</strong>l dominio <strong>de</strong> cualquier ingeniero. A<strong>de</strong>más, el proceso<br />
que conlleva su aprendizaje contribuye a la formación <strong>de</strong>l futuro profesional.<br />
3. REQUISITOS ACADÉMICOS<br />
4. CRÉDITOS ACADÉMICOS<br />
5. INTENSIDAD SEMANAL (en horas presenciales)<br />
6. BIBLIOGRAFÍA<br />
Referencias principales<br />
1. JOYANES AGUILAR, Luis. Fundamentos <strong>de</strong> <strong>Programación</strong>: algoritmos y estructura <strong>de</strong><br />
datos. McGraw Hill, 1998.<br />
2. SALAZAR PERDOMO, Patricia. Aprendiendo a programar a partir <strong>de</strong> cero. Segunda<br />
versión preliminar - Editorial <strong>de</strong> la <strong>Escuela</strong> <strong>Colombiana</strong> <strong>de</strong> <strong>Ingeniería</strong>. Bogotá, julio <strong>de</strong><br />
2004.<br />
3. SCHILDT, Herbert. C, Guía <strong>de</strong> autoenseñanza. McGraw Hill, 1996.<br />
Otras referencias:<br />
Tiempo presencial (horas) 72<br />
Tiempo in<strong>de</strong>pendiente (horas) 120<br />
Total <strong>de</strong> Créditos Académicos 4<br />
Exposición magistral 4,5<br />
Monitoría<br />
Total <strong>de</strong> horas/semana<br />
Laboratorio<br />
0,0<br />
7,5<br />
3,0<br />
1
1. DEITEL. H.M, DEITEL P.J. C, How to program. Prentice Hall. 1998.<br />
2. GOTTFRIED, B. <strong>Programación</strong> en C. McGraw Hill. México, 1987.<br />
3. JOYANES. Luis. Problemas <strong>de</strong> Metodología <strong>de</strong> la <strong>Programación</strong>. McGraw-Hill, 1990.<br />
4. KERNIGHAN, Brian & RITCHIE, Dennis. The C Programming Language. N.J. Prentice<br />
Hall. 1988.<br />
5. SCHILDT, Herbert. C, Manual <strong>de</strong> Referencia. Tercera edición. McGraw Hill, 1995.<br />
6. NORTON, Peter. Introducción a la computación. Editorial McGraw Hill. México, 1996.<br />
7. PERRY, Greg. Aprendiendo PC en 24 horas. Editorial Prentice Hall. México, 1997.<br />
8. WHITE, Ron. Cómo funcionan las computadoras. Prentice Hall. 1998.<br />
6. CONTENIDO PROGRAMÁTICO RESUMIDO<br />
Introducción: <strong>de</strong>finición <strong>de</strong> problema y <strong>de</strong> solución. Construcción <strong>de</strong> algoritmos: estructura <strong>de</strong> un algoritmo,<br />
instrucciones <strong>básica</strong>s, arreglos (vectores y matrices). Construcción <strong>de</strong> algoritmos modulares: Funciones y<br />
procedimientos. Argumentos y parámetros por valor y por referencia: Construcción <strong>de</strong> programas: estructura<br />
<strong>de</strong> un programa, instrucciones <strong>básica</strong>s, tipos <strong>de</strong> datos estructurados. Construcción <strong>de</strong> programas modulares.<br />
Funciones y procedimientos. Argumentos y parámetros por valor y por referencia: Creación <strong>de</strong> tipos <strong>de</strong> datos.<br />
Almacenamiento <strong>de</strong> la información: manejo básico <strong>de</strong> archivos secuenciales. Lecturas complementarias<br />
sobre computación.<br />
7. CONTENIDO PROGRAMÁTICO DETALLADO<br />
1. Introducción<br />
Objetivo: Apren<strong>de</strong>r a resolver problemas (encontrar soluciones).<br />
.Contenido: Problemas - algoritmos – programas. Análisis <strong>de</strong> problemas y diseño <strong>de</strong> soluciones.<br />
2. Construcción <strong>de</strong> algoritmos<br />
Objetivo: Apren<strong>de</strong>r a escribir en un lenguaje algorítmico la solución previamente mo<strong>de</strong>lada <strong>de</strong> un problema.<br />
Contenido: Estructura <strong>de</strong> un algoritmo. Documentación (comentarios). Instrucciones <strong>básica</strong>s. Asignación.<br />
Expresiones. Operadores aritméticos. Expresiones aritméticas. Prece<strong>de</strong>ncia y asociatividad. Instrucciones<br />
<strong>de</strong> lectura y escritura (entrada o salida). Estructuras <strong>de</strong> control condicionales: No repetitivas, repetitivas.<br />
Operadores relacionales. Construcción <strong>de</strong> condiciones (conectores lógicos: y, o). Tipos <strong>de</strong> datos<br />
estructurados. Arreglos (vectores y matrices): Dimensionamiento, lectura - escritura – acceso.<br />
3. Construcción <strong>de</strong> algoritmos modulares<br />
Objetivo: Enten<strong>de</strong>r la importancia <strong>de</strong>l diseño <strong>de</strong> algoritmos modulares y apren<strong>de</strong>r a construirlos.<br />
Contenido: Concepto <strong>de</strong> modularidad. Subrutinas. Procedimientos y funciones. Argumentos y<br />
parámetros (valor, referencia).<br />
4. Construcción <strong>de</strong> programas<br />
Objetivo: Construir la solución previamente mo<strong>de</strong>lada <strong>de</strong> un problema utilizando el computador. Apren<strong>de</strong>r un<br />
lenguaje <strong>de</strong> programación como herramienta para construir dichas soluciones.<br />
Contenido: Estructura <strong>de</strong> un programa. Documentación (comentarios). Declaración y uso <strong>de</strong> variables y<br />
constantes. Instrucciones <strong>básica</strong>s. Instrucciones <strong>básica</strong>s. Asignación. Expresiones. Operadores aritméticos.<br />
Expresiones aritméticas. Prece<strong>de</strong>ncia y asociatividad. Instrucciones <strong>de</strong> lectura y escritura (entrada o salida).<br />
Estructuras condicionales <strong>de</strong> control: No repetitivas, repetitivas, construcción <strong>de</strong> condiciones (conectores<br />
lógicos: y, o). Datos estructurados. Arreglos (vectores y matrices). Dimensionamiento, lectura - escritura –<br />
acceso.<br />
2
5. Construcción <strong>de</strong> programas modulares<br />
Objetivo: Enten<strong>de</strong>r la importancia <strong>de</strong>l diseño <strong>de</strong> programas modulares y apren<strong>de</strong>r a construirlos.<br />
Contenido: Modularidad. Subrutinas. Procedimientos y funciones. Argumentos y parámetros (valor,<br />
referencia).<br />
6. Registros y archivos<br />
Objetivo: Apren<strong>de</strong>r a estructurar la información. Enten<strong>de</strong>r la importancia <strong>de</strong>l almacenamiento permanente <strong>de</strong><br />
la información y apren<strong>de</strong>r a hacerlo con archivos <strong>de</strong> acceso secuencial.<br />
Contenido: Registros. Definición y uso. Archivos <strong>de</strong> acceso secuencial: Apertura, cierre, lectura y<br />
escritura.<br />
8. METODOLOGÍA<br />
• Exposición magistral <strong>de</strong>l profesor en un ambiente que facilite la interacción permanente con los<br />
estudiantes. Esto es fundamental porque permite que el profesor perciba a tiempo el nivel <strong>de</strong> comprensión<br />
y las dudas e inquietu<strong>de</strong>s <strong>de</strong> los estudiantes y que el grupo aproveche los aportes que se hacen.<br />
• Práctica permanente <strong>de</strong>ntro y fuera <strong>de</strong> la clase. Las primeras 6 semanas se hace todo sobre el papel y en<br />
las otras 10 se exige que los programas funcionen en el computador y se sustenten al profesor. Se<br />
promueve <strong>de</strong>s<strong>de</strong> el principio un buen estilo <strong>de</strong> programación, una documentación <strong>de</strong> los programas y una<br />
comunicación efectiva y agradable con el usuario.<br />
• Realización permanente <strong>de</strong> ejercicios diseñados con el objetivo <strong>de</strong> afianzar los conceptos fundamentales<br />
<strong>de</strong> la programación <strong>de</strong> computadores.<br />
• Laboratorio no presencial. En el primer tercio el estudiante se familiariza con el computador; esta labor es<br />
apoyada por el personal <strong>de</strong> soporte <strong>de</strong> las salas <strong>de</strong> computadores. En los dos últimos tercios <strong>de</strong>be realizar<br />
un laboratorio semanal que es revisado por el monitor. Tanto el envío <strong>de</strong>l laboratorio como la<br />
retroalimentación se hacen vía correo electrónico. Los laboratorios no equivalen a la práctica total que<br />
los estudiantes <strong>de</strong>ben realizar por su cuenta para apren<strong>de</strong>r a programar.<br />
• Proyecto <strong>de</strong> mediana complejidad don<strong>de</strong> se recopila todo lo visto en el curso.<br />
• Durante el semestre, todos los estudiantes elaboran uno o dos escritos cortos, realizan lecturas<br />
complementarias sobre computación, leen por lo menos un libro <strong>de</strong> interés general, y hacen una<br />
exposición ante el grupo <strong>de</strong> un tema escogido por ellos y aprobado por el profesor. Esto con el fin <strong>de</strong><br />
promover el autoestudio y fortalecer la expresión oral y escrita.<br />
9. EVALUACIÓN<br />
Tareas y ejercicios en clase y fuera <strong>de</strong> ella. Estos trabajos no se califican, pero sí se revisan y se<br />
corrigen.<br />
Pruebas cortas semanales sobre los temas vistos hasta el momento. Dichas pruebas<br />
necesariamente son acumulativas porque la naturaleza misma <strong>de</strong>l curso hace que los conceptos se<br />
enca<strong>de</strong>nen.<br />
Escritos cortos, controles <strong>de</strong> lectura, exposición individual o en grupo.<br />
Proyecto.<br />
Una prueba corta cada tercio, realizada por la Coordinación General <strong>de</strong> la asignatura.<br />
Exámenes escritos e individuales en cada tercio. El último es en el computador, normalmente en<br />
parejas escogidas por el profesor.<br />
En el último tercio se realiza un proyecto que es asignado <strong>de</strong>s<strong>de</strong> mediados <strong>de</strong>l segundo tercio y cuyo<br />
peso <strong>de</strong>ntro <strong>de</strong>l semestre, <strong>de</strong>s<strong>de</strong> 2005-2, es <strong>de</strong>l 20%.<br />
Calificaciones:<br />
% Tercio 1 30<br />
% Tercio 2 30<br />
% Tercio 3 40<br />
3