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.        Introducción al lenguaje JAVA (5 hr)

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:

Bibliografía Actualizada

·          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.

Fecha de la última actualización: 7 de junio de 2004(M)