ELO 330 Programación de Sistemas
Segundo Semestre 2008 : 29 sesiones
Clases: Miércoles 15:40-17:10 B-221 y Viernes 15:40-17:10 12:00-13:30 B-221.
Profesor: Agustín J. González, oficina: B-301
agustin p u n t o  gonzalez arroba    u s m  dot c l 
Horario oficina profesor. Puede escribirme si desea verme fuera de este horario.
Ayudante:  Stefan Zepeda (email elo330 en elo punto utfsm DOT cl)
Lista de correo: elo330 @ listas punto utfsm punto c l (ver las instrucciones aquí )
Textos:
Programación en SO derivados de UNIX:
   Sumitabha Das, "Your UNIX: The Ultimate Guide", Mc Graw Hill, 2º Edition, 2005.
   W. Richard Stevens and Stephen A Rago, "Advanced Programming in the UNIX Environment", Addison-Wesley, 2º Edition, 2005. Código fuentes del libro, sitio del libro.
Programación Sockets:
   W. Richard Stevens, Bill Fenner, and Andrew M Rudoff, "Unix Netwrok Programming: The Sockets Networking API", Volumne 1, Pearson Education, 3º Edition, 2004.
Java:
   Core Java : Volume I Fundamentals and Volume II Advanced Features. Cay S. Horstmann & Gary Cornell.

Temas  (programa)  (años previos 2007 2006 2005 2004, 2003 )Encuesta Alumnos Año 2007


Fecha
Contenido
Hito
1
20/08
Presentación del Ramo:
UNIX: Familiaridad con Unix, Manejo de procesos, Comunicación entre procesos concentrados y distribuidos, hilos, comunicación multipunto.
Java: Programación basada en eventos , interfaces gráficas, hilos, programación de red
Programación Multimedia en Linux: Audio y Vídeo.
Introducción a Unix

2 22/08 Introducción a programación shell
3 27/08 Comentar vídeo de Profesor Randy Pausch, ver aviso de trabajo, Continuamos con programación de scripts 
4 29/08 Terminados programación shell y partimos con Creación y Control de Procesos  
5
03/09
Comentario de Ex-alumnos en ceremonia de entrega de Becas. Creación y Control de Procesos Ejemplo Tarea año 2005 Una solución
6
05/09
Señales 

7
10/09
Comunicación entre procesos: pipe, fifo; Semáforos y memoria compartida Ver: tarea año 2005 Ping gráfico
9 12/09 Presentar tarea, ver política de atrasados. Semáforos y Memoria Compartida Hablar sobre Ideas de proyectos  Se publica primera tarea
10
24/09
Mecanismo y fechas para inscripción y presentación de proyectos, nuevos temas propuestos. Programación concurrente usando Hilos en POSIX.

11 26/09 Sincronización de Hilos,
12 01/10 Mostrar y explicar tarea 2 , Comunicación entre procesos usando Sockets
13 03/10 Comunicación Cliente Servidor y Multiplexión de entradas usando "select"
14 08/10 Comunicación multicast entre procesos
15 10/10 Revisión de programas multicasts, Stream Control Transmission Protocol (SCTP) Hasta aquí para el certamen. Es con apuntes personales.


Java
16 15/10 No publico tarea aún, pues deben concentrarse en certamen. Introducción de Java(pdf), Fundamentos Ambientes de Desarrollo
Tecnologías
Información Local (RCE)
17 17/10 Primer Certamen
18
22-24/10
Clases Suspendidas por Semana Sansana (Circular Vicerrectoría Académica N°719/2008).
 T3 publicada
19
29/10
Revisión del certamen, y Tarea 3
 Conocen WikiBooks? Java
- 31/10 Feriado
20 5/11 Ver documentación Java Ejecución de procesos nativos desde Java , Clases y Objetos: Herencia
21 7/11 Herencia e Interfaces en Java  (ojo en este caso no son interfaces gráficas)
22
12/11
Ojo la clase será en Lab. B-357 (Amstrong). Programación Conducida por Eventos: Interfaces Gráficas  Ejemplos: CloseableFrame.java  Mimic.java  MimicCharbyChar.java
Sun Academic Initiative: interesados emailme
23 14/11 Invitación a Charla Martes 18/11 Hilos en Java
24
19/11
Sincronización de hijos en Java Comunicación TCP/IP en Java
Tarea 4 voluntaria publicada
26
21/11
Estos materias son demandadas, Tómbola, Programación de audio y video en Linux (tema fuera de programa), preparación para certamen 3 de Dic.

27
26/11
Inicio de presentaciones: Alejandro; Pablo y Tomás; Nelson y Pedro.

28
28/11
Clases en Lab. boole B360. Presentaciones: Mauricio, Daniel y Sebatián T; Roberto; Gerardo y Felipe

29
3/12 Certamen

30
10/12
Presentaciones: Mario y Sebastián D; Nicolás y Sebastián M, Karenn,

31
12/12
Presentaciones: Pedro Toledo, Nicolás Navarro


Tareas

Tarea
Plazo
Notas
Mejores soluciones
T1: Monitor de Uso de Licencias
20:00 hrs, 29.09.08
T1 T1.rev2
Pablo Benaprés & Tomás Girardi
T2: Graficador de Tráfico Instantáneo 20:00 hrs, 14.10.08 T2 T2.rev2
Nicolás Sanz
T3: Control de Congestión y Limitación de Tráfico 20:00 hrs, 10.11.08 T3 
Alejandro Rivera

T4: Medición de Control de Congestión en Java (Voluntaria)
20:00 hrs, 8.12.08





Evaluación : Finales Tareas al 11/12 Finales al 16/12 18/12 (con recuperativo, y recorrecciones de tareas)
Si la nota promedio de certámenes es inferior a 50, Su nota será: 90% promedio de certámenes 6% Tareas y 4% su proyecto. Ud. no podrá aprobar, luego usted debe aspirar a obtener 50 ó superior en sus certámenes.
    50 % dos certámenes  Usted puede usar sus apuntes. Fechas: 17 de octubre y 3 de diciembre.
       Certamen 1: 2007 2006 2005 2004 2003 2002  Certamen 2: 2007 2006 2005 2004 2003 2002

Soluciones
Notas
Histograma
Alumnos Destacados (80 o superior)
C1.Solución()
C1.notas()
C1.Histograma()
Roberto Vargas, Mario Ungemach, Sebastián Toro, Nicolás Navarro, Gerardo Lecaros, Tomás Girardi, Felipe Díaz, Pablo Benaprés
C2.Solución()
C2.notas()
C2.Histograma()
Daniel Caro, Mauricio Díaz, Tomás Girardi, Alejandro Rivera, Nicolás Sanz

    30 % Tareas: Tomar conocimiento del procedimiento de entrega de tareas y de los criterio de evaluación. Pueden formar grupos de máximo dos personas para hacer las tareas
    Política de atrasados: fuera de plazo tienen cero transitorio. Éste queda así si promedios dan para aprobar; si no, se corrige tarea sin penalización mientras haya sido entregada antes de la publicación de soluciones. Se recomienda enviar una versión de su tarea dentro del plazo y eventualmente otra mejorada después.

    20 % Proyecto personal o engrupo  (Inscríbalo aquí , vea temas ya inscritos acá)
         3%    Definición puntual del tema:  Plazo: 13 de Octubre.
        7%    Informe
:  Inicio de presentaciones 26 de Noviembre según azar. Plazo informe: 9/12.
        10 % Presentación y demostración (evaluada por compañeros y profesor)

Proyectos desarrollados por Alumnos según orden de presentación: 

Alumnos
Plazo
Proyecto
Fecha Presentación: Orden de presentación
Informe
Michael Vicencio OK
Servicio de Estadisticas de Matlab para Depto ELO

Pedro F. Toledo OK Sistema de venta de entradas en línea

Gerardo Lecaros - Felipe Díaz OK Sistema de reserva vía web en ELO

Pablo Benapres, Tomas Girardi OK BioGym 26/11

Nicolas Navarro OK Navegación de vehículos autonómos

Karenn Johnson OK Monitor de jaulas BSD, para medir desempeño de procesos en ejecución

Roberto Vargas OK Encuesta Web

Daniel Caro , Sebastian Toro , Mauricio Díaz OK Sistema de Inventario web
28/11/08
Nelson López Coppa, Pedro Riffo Gómez OK Monitor de ancho de banda en una LAN sin proxy 26/11

Sebastián Duque-Mario Ungemach OK Comunicación multipunto en Streaming de video a través de la Red

Alejandro Rivera OK Programa comunicación con Robot móvil 26/11

Sebastián Muñoz, Nicolas Sanz
No OK, 31 de Oct.
Luces audiorítmicas




Ideas para proyectos: * Una versión más completa de la tarea 1 puede ser un proyecto a desarrollar. Considere acceso a los datos vía una interfaz web a ser vista dentro de la Intranet ELO. 
* Sistema de reserva vía web de auditorio, laboratorios, sala de profesores, etc.
* Sistema de encuesta vía web. Para anonimato y no duplicidad de respuestas,  se puede considerar la entrega de una clave impresa a cada encuestado. Con esta clave él puede responder la encuesta en forma única. Otras ideas para conseguir anonimato y unicidad de respuesta son posibles. Como contexto de aplicación de este sistema considerar la evaluación que hace el curso a presentaciones de sus compañeros.
* Mejorar Tómbola, considerar mejorar sistema de inscripción de temas para que se tenga un listado organizado de grupos y temas, luego éste puede entrar a la tómbola y generar una página web con el orden de presentaciones.
* Considerar el estudio y demostración vía ejemplos de mecanismos para la programación de sistemas en Sistema Operativo Windows; por ejemplo, mecanismos para la creación de procesos similar o equivalentes a fork y exec, mecanismos para la comunicación entre procesos, hilos en Windows, mecanismos de sincronización, mecanismos para compartir memoria, etc.
* Estudio y ejemplos demostrativos de comunicación vía sockets tipo SOCK_RDM (ver man socket en aragorn y buscar, yo sólo vi esto este semestre)


Misceláneos
   
Por si hemos olvidado el sentido a lo que hacemos:  Clase magistral de Don Federico Mayor Zaragoza y última clase del profesor Randy Pausch

    Comentario de ex-alumnos después de ceremonia de entrega de becas:"Claro que en retrospectiva queridos profes nos apretaron bastante cuando estuvimos en la U, pero siempre fueron cercanos,  ahora con una mirada de futuro a estos nuevos estudiantes apretenlos más, se necesitan buenos ingenieros, y mucho más importante excelentes individuos..."

    Introducción a EMACS
    Migración de Windows a Linux

   Manuales GNU
bash ,(Bash "tareado" con tar y luego comprimido con gzip
make  (local en html) , otros .
Ejemplo gnuplot
    C y Unix
Historia de los shell
Manejo de directivas para el preprocesador
    Java
Documentación Java    Directo a especificación de la API
Software en Electrónica
Sitio SUN (http://java.sun.com).

 JDE (Java Development Environment for Emacs)

Servicio de Contadores y Estadísticas ELO