Presentación del curso
Objetivos de la clase: presentar el curso a los alumnos.
Temas:
- Objetivos del curso.
- Temario.
- Metodología.
- Reglas del juego.
- Conceptos básicos.
Objetivos del Curso
La idea es deducir cuáles son los objetivos del curso a través
del siguiente mapa conceptual.
Cuando el alumno se convierta en un profesional, se le pedirá que
resuelva problemas computacionalmente. Como profesional
tendrá que elaborar soluciones para esos problemas.
Por lo tanto los objetivos del curso son:
- Resolver problemas con la ayuda del computador. (Lo que implica
que la principal actividad del curso será la programación de computadoras).
- Desarrollar el razonamiento algorítmico.
- Adquirir una visión general de las áreas temáticas de la
disciplina de Computación:
- Algoritmos y estructuras de datos.
- Lenguajes de programación.
- Ingeniería de software.
- Comunicación humano-computador.
Se finaliza con el siguiente mapa conceptual:
Temario
(No necesariamente en el orden en que se verán las materias.)
Programación en el lenguaje Java:
- Tipos de datos numéricos.
- Representación de datos en el computador.
- Estructuras de control.
- Strings.
- Arreglos.
- Objetos.
- Records.
- Subprogramas.
- Archivos.
- Clases y subclases.
Algortimos:
- Análisis de algoritmos.
- Búsqueda.
- Ordenamiento.
- Estructuras de datos.
Otras áreas:
- Procesamiento masivo de datos.
- Computación científica y métodos numéricos.
- Computación gráfica.
- Interfaces humano-computador.
Metodología
Durante el curso se enseñará a resolver problemas computacionales mediante
la programación en el lenguaje Java. Muchos de los problemas deberán
ser programados en el computador. Para ello, la escuela ofrece unos 100 PCs
(Pentium 166, 32 MB, 1GB HD, Windows'NT), pero se incentivará el uso
de los PCs que los alumnos tengan en casa.
Durante la próxima semana se organizarán talleres de adiestramiento
en el uso del computador.
¿Por qué Java?
- Porque tiene amplia difusión y promete convertirse en los próximos
años en el lenguaje de programación más usado.
- Porque entre los lenguajes con amplia difusión es el que mejor
permite enseñar los conceptos del curso (Visual Basic no lo permite).
¿Como estudiar eficientemente?
- Ir a clases a aprender, no a escuchar.
- Escribir los programas del pizarrón en el cuaderno, aún cuando
las soluciones se encuentren en los apuntes o en el Web. Un
programa que se lee y no se escribe, es un programa que no se
ha comprendido.
- Estudiar en grupos de no más de 3 o 4 alumnos. Evitar transformar
el estudio en reunión social.
- No quedarse con dudas acerca de la materia entre clase y clase.
Preguntarle a los compañeros cuando no se entiende algo. Si los
compañeros tampoco entienden, preguntarle al profesor.
- Resolver las guías de estudio que se publicarán en el Web
en el momento oportuno.
- Hacer las tareas y proyectos. Discutir cómo resolver las tareas
con otros compañeros. Escribir los programas personalmente.
Cualquier trozo de código copiado literalmente del trabajo
de otro alumno, es copia (obviamente, sí se pueden copiar trozos
del cuaderno de cátedra o auxiliar).
- Resolver problemas adicionales a las tareas antes de los
controles (por ejemplo controles de años anteriores). Resolverlos
hasta el final, no solo un bosquejo de solución. No empantanarse
demasiado tiempo si no se encuentra la solución. Preguntarle
a los compañeros cómo se resuelve. Resolver este tipo de
problemas hasta ser capaces de resolver nuevos problemas sin
ayuda de terceros.
- Evitar a toda costa que los pille la máquina, lo que
se puede lograr siguiendo las indicaciones anteriores. Una vez
que los pilla la máquina es imposible seguir estas indicaciones.
Seguir estas indicaciones no significa dedicar más tiempo al estudio,
si no que aprovechar mejor el tiempo dedicado al estudio.
Reglas del juego
Evaluación:
- 5 controles evaluados con nota entre 1 y 7.
- 2 controles recuperativos para reemplazar notas de controles. El primer
recuperativo reemplaza la peor nota de los dos primeros controles.
Cualquiera puede rendir este control. El segundo reemplaza la peor
nota de los 3 últimos controles, pero sólo lo pueden rendir alumnos que
justifiquen su inasistencia a alguno de los controles.
- Un examen. El alumno puede rendir un examen de segunda
fecha si la nota que obtuvo en el primer examen no le satisface
(usualmente sólo los que reprueban). En este caso, el segundo
examen reemplaza el primero.
- Varias tareas (algunas de coeficiente doble).
Para aprobar el curso se requiere:
- Examen >= 3.0
- Promedio de controles * 0.7 + Examen *0.3 >= 4.0
- Nota de tareas >= 4.0
Más detalles acerca de las reglas de evaluación se encuentran en el
documento Guía del Estudiante distribuido por la Escuela a todos
los alumnos (capítulo 1, la docencia de pregrado). Los alumnos deben
preservar esta copia hasta fines de año en donde se hace más necesaria.
Observación: el grueso de los alumnos aprueba con nota entre
4 a 5 (más cerca de 4 que de 5) y por lo tanto la mayoría
debe estar preocupado de estas reglas. Esto ocurre porque
la mayoría de los alumnos no respeta las indicaciones acerca
de como estudiar eficientemente.
Bibliografía
- Apuntes del curso publicados en el Web en
http://www.dcc.uchile.cl/~lmateu/CC10A por Luis Mateu. Estas
páginas estarán siendo permanentemente corregidas y enriquecidas con nuevo
material.
- Apuntes de Java por Kurt Schwarze: Este documento se encuentra en
preparación y se publicará por etapas en la biblioteca central de
la facultad.
- Java Developer's Resource por Elliote Rusty Harold. Este libro está
disponible en la biblioteca central con el código 005.133JAV H23. Sólo se
menciona como material de apoyo de las cátedras y los documentos previos.
No es recomendable como medio para aprender a programar. Sí es un buen
libro para aprender más sobre el lenguaje Java.
Conceptos Básicos
En este punto Juan Alvarez propone que los alumnos mencionan términos
computacionales y clasificarlos en distintas casillas como:
- Lenguaje de programación.
- Sistema Operativo.
- Aplicaciones y utilitarios.
- Arquitectura de Procesador.
- Hardware.
La idea es que se entregue una primera explicación para algunos términos
muy empleados en Computación como:
- Lenguajes: Pascal, Turing, Java, Visual Basic.
- Sistemas Operativos: Windows'95, Windows'NT, Unix.
- Aplicaciones y utilitarios: Office, Netscape, Explorador de Archivos,
ventana de comandos de DOS.
- Arquitecturas de Procesadores: PCs x86, Macintosh.
- Hardware: memoria, byte, procesador, CPU, consola, terminal, pantalla,
teclado, mouse, disco duro, diskettera, diskette.