Cb00822. COMPUTACION I
(3-0-8.
Requisito:Haber aprobado Cb00801. 1 IEC, 1 IFI, 4 IMD,
2 IMT , IMT04,1 ISC, 1 ISE, 1 ISI, 1 LSCA)
Este
programa ha sido actualizado para entrar en vigor a partir de enero de 2002
Características del curso:
El curso de Computación I debe formar en los alumnos las habilidades básicas de programación (estructuras de control,
abstracción modular, manejo de datos), permitiéndoles desarrollar aplicaciones sencillas. El medio para desarrollar estas habilidades será el lenguaje
JAVA, y por lo tanto, el aprendizaje estará contextualizado en el entendimiento de la programación orientada a objetos. El tipo de aplicaciones a desarrollar
tendrá
un fuerte contenido gráfico, por lo que se espera que sea un curso altamente
motivante para los alumnos. El curso enfatiza el desarrollo en un alto nivel
de abstracción, lo que permite hacer aplicaciones que parecieran complejas,
pero que requieren sólo de la aplicación de componentes de software ya establecidos.
No es un curso en el que se
enseñe un lenguaje de programación, sino es un curso en el que se enseñan
las habilidades básicas de programación utilizando como medio un lenguaje
de programación.
Es muy importante que el curso se base en nuevos
esquemas en los que la abstracción de los objetos se incorpora como parte
del curso desde el inicio de éste. El tipo de desarrollo que deberán tener
los alumnos, diferirá del tradicional (entrada-proceso-salida), ya que el
tipo de aplicaciones que desarrollarán, involucrará interfases gráficas más
realistas y acordes con el tipo de relación que los alumnos han tenido con
las computadoras.
Objetivo General:
Lograr que
el alumno desarrolle aplicaciones de software, utilizando fuertemente la lógica
básica de programación con estructuras de control, la abstracción modular
y la abstracción de datos, en un contexto de la programación orientada a objetos.
Objetivos específicos:
·
Desarrollar la lógica de programación
con estructuras de control (secuencia, decisión y repetición).
·
Desarrollar el pensamiento abstracto
bajo el enfoque de la modularidad, los datos y los objetos.
·
Comprender el proceso de desarrollo
de software.
·
Solucionar problemas sencillos
por medio de la programación.
Descripción del programa por temas:
Los temas que enseguida se proponen,
no necesariamente se expresan en el orden en que deberán impartirse. Se sugieren
tiempos aproximados. La definición de esto, está sujeta a la definición de
la didáctica del curso.
1.
Introducción al desarrollo de
páginas de Internet (5 hr)
1.1. Navegación y búsquedas en Internet (autoestudio)
1.2. Origenes, evolución y contexto general de Internet
1.3. Programación básica en HTML
1.4. Proceso de desarrollo de páginas sencillas en HTML
2.
Introducción al ambiente de
programación (4 hr)
2.1. JAVA. Origenes, evolución y contexto general del lenguaje.
2.2.
El ambiente de programación
para JAVA (DOS, JDK)
2.3.
Ciclo de desarrollo de programas
computacionales (Análisis, Diseño, Construcción y Pruebas)
2.4.
Proceso de construcción de programas
computacionales (Codificación, Compilación, Depuración, Ejecución)
2.5.
Estructura básica de un Applet
2.6.
Elementos básicos de un programa:
identificadores, palabras reservadas, comentarios, estatutos
3.1. Concepto de variable y tipo de dato en el lenguaje
3.2. Asignación de valores a variables
3.3. Operadores y expresiones numéricas
3.4. Manejo básico de gráficos (método paint y clases Graphics
y Color)
4.
Introducción a la programación
modular (2 hr)
4.1. Conceptos básicos de programación modular (“divide y
vencerás”)
4.2. Concepto de método
4.3. Parámetros
4.4. Alcance de una variable
5.
Introducción a la programación
orientada a objetos (5 hr)
5.1. Conceptos de clases, objetos, métodos y mensajes
5.2. Métodos constructores
5.3. Características del paradigma: encapsulación, herencia
y polimorfismo.
5.4. Proceso de diseño y creación de clases y objetos
6.
Interface Gráfica (3 hr)
6.1. Conceptos de programación basada en eventos
6.2. Clases básicas: Button, TextField, TextArea, Label
6.3. Contenedores y administradores de Layout: Panel, FlowLayout,
GridLayout
6.4. Manejo de eventos básicos: ActionListener
7.
Herencia (5 hr)
7.1. Conceptos de herencia
7.2. Overriding y Overloading
7.3. Creación de subclases usando herencia básica
8.
Lógica de control. (8 hr)
8.1. Operadores relacionales y lógicos.
8.2. Estructuras de selección (o decisión).
8.3. Estructuras de repetición (o ciclos).
9.
Strings y arreglos. (5 hr)
9.1. Uso de la clase string, creando aplicaciones
9.2. Arreglos unidimensionales, enfatizando sus algoritmos
básicos
Libros de texto:
·
Java 2, The Complete Reference. Fourth Edition. Herbert Schildt.
McGrawHill.2001.
Libros de consulta:
·
Java for Students. Second Edition. Bell & Parr. Prentice Hall. 1999.
·
Cómo programar en Java. Deitel
y Deitel. Prentice Hall 1999.
·
Java en pocas palabras. David Flanagan.
McGrawHill. 1999.
Metodología sugerida y actividades de aprendizaje
Seguir la estrategia del curso SSD1 del CTE, exponiendo en clase los conceptos relevantes, después de la lectura previa del material por parte de los alumnos
.
El profesor enfatiza en las
sesiones de clase, a través de ejemplos y ejercicios, los conceptos más relevantes
del curso. En particular, debe profundizar el tema de la lógica de programación.
Los temas no cubiertos por el
material del CTE, deberán ser enseñados durante el curso con la estrategia
que el profesor decida.
Los ejercicios y quizes del
CTE pueden realizarse fuera del salón del clase, como tarea, y cuando el profesor
lo considere, puede permitir el trabajo en equipo para la solución de algunos
ejercicios.
Las sesiones de clase, también
pueden ser utilizadas por el profesor, para resolver dudas de los ejercicios,
o bien, para aplicar alguno de los quizes cortos del CTE.
Los exámenes de unidad del CTE
deberán ser aplicados fuera de la sesión de clase, en el Centro de evaluación
del propio campus, bajo las políticas definidas, en las fechas establecidas
por el profesor.
Políticas de evaluación sugeridas
Exámenes de unidad de CTE 55%
Actividades de aprendizaje del CTE 15%
Tareas adicionales propuestas por el profesor 15%
Examen final ITESM
15%
Puesto que los exámenes de unidad,
no necesariamente coinciden con los períodos de exámenes parciales del calendario
del ITESM, se sugiere reportar como calificación parcial, un promedio de las
calificaciones obtenidas hasta el momento del reporte.
Software de apoyo
Compilador de JAVA (se sugiere
JDK o RealJ).
Perfil del profesor
Profesor certificado por el
CTE en SSD1, con maestría y carrera en el área de computación, con experiencia
en desarrollo de software, de preferencia
en lenguaje JAVA.