ELO 330 Programación de Sistemas
Segundo Semestre 2009: 31 sesiones
Clases: Miércoles 15:40-17:10 P-202 y Viernes 11:45-13:15 P-202.
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:  Tomás Girardi (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 2 : Volume I Fundamentals and Volume II Advanced Features. Cay S. Horstmann & Gary Cornell, California : Sun Microsystems Press, 2003 (código fuentes del libro)

Temas  (Contenido: Programa oficial)  (años previos 2008 2007 2006 2005 2004, 2003) Encuesta Alumnos Año 2008


Fecha
Contenido
Hito
1
05/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.

2 07/08 Introducción a Unix
3 12/08 Programación shell Arquitectura X y acceso gráfico a servidores tipo Aragorn.   Shell Programming 
4 14/08 Programación shell 
Ver problemas de certamenes de años pasados
5 19/08 Terminamos Programación shell Primera tarea publicada
6
21/08
Control de procesos
7
26/08
Control de procesosSeñales
8
28/08
Comunicación entre procesos  Ejemplo Tarea 2 año 2008 una solución
9
02/09
Envío de correo usando pipes, fifos
Vence plazo tarea 1
Charla: "Propiedad Intelectual en Desarrolladores de Software", jueves 3 de septiembre, 2009 a las 12:00 horas en el Auditorio Principal edificio A
10
04/09
Memoria compartida  6.09.09: Segunda tarea publicada
11 09/09 Concurrencia usando hilos
12 11/09 Sincronización de hilos
13 16/09 Comunicación entre procesos no concentrados (sockets)

18/09 Feriado de Fiestas Patrias
14 23/09 Modelo Cliente-Servidor y multiplexión de descriptores usando select
15 25/09  Certamen Se evaluarán contenidos hasta Sincronización de hilos (clase del 11/09)
16
30/09 Modelo Cliente-Servidor y multiplexión de descriptores usando select Revisión y ejecución de ejemplos. Explicación de tarea. Variables de Condición  28.09: Publicación de tarea 3.
30.09: Plazo para la inscripción de proyectos
17 02/10 Comunicaciones Multicast  

18
07/10
Stream Control Transmission Protocol (SCTP)
Generalidades y ambientes de trabajo, Fundamentos, Ejecución de procesos nativos desde Java
Java: Hay cursos tutoriales en línea: wikibooks java
Tecnologías
19
09/10
Clases, Objetos,  Herencia, Interfeces en Java Programación conducida por eventos Tómbola

20 14/10 Hilos en Java Sincronización de Hebras en Java
21 16/10 Programación TCP/IP en Java

21/10 Suspendida por Semana Sansana (todos a participar)

23/10 Suspendida por Semana Sansana (todos a participar)
22 28/10 Invocación de Métodos Nativos (Java Native Interface, JNI)
Programmer Competency Matrix
23 30/10 Aplicaciones Java con acceso a Bases de Datos

24 04/11 RMI

25 06/11 RMI en Java 6, Introducción a XML

26 11/11 Suspedida ---> dedidar tiempo a proyectos
Formulario de evaluación
27
13/11 Presentación de proyectos (< 30 minutos/grupo)
Inicio de presentación de proyectos
28 18/11 Presentación de proyectos
29
20/11  Certamen final
30 25/11 Presentación de proyectos
31 27/11 Presentación de proyectos Entrega de informes de proyectos

Tareas

Tarea
Plazo
Notas
Mejores soluciones
Tarea 1: mcd Monitor de Cambio en Directorio  20:00 hrs 2 de Septiembre   ver
Danny Sateler y Sergio Silva, Felipe Méndez y Oscar Núñez, Iván Gordón y Alejandro Merello 
Tarea 2: Histograma de Tamaños de Directorios  20:00 hrs 23 de Septiembre   Ver Rodrigo García y Rodrigo Mijica  
Tarea 3: Estrangulador de Tráfico TCP 20:00 hrs. 14 de Octubre  Ver Oscar Nuñez y Felipe Méndez Nicolás Skoljarev y Piero Rivera Iván Gordon y Alejandro Merello
Tarea 4: Envío de correos con Java (Volunaria, si no la entrega su nota de tarea será el promedio de las tres primeras ) 20:00 hrs 10 de Noviembre  Ver José Álvarez y Juán Donoso Danilo Bize y Rodrigo Melo

Evaluación : Notas:   Proyecto: 8.12  Finales: 8.12    9.12 16.12
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: Viernes 25 de Septiembre, Viernes 20 de Noviembre.
       Certamen 1: 2008 2007 2006 2005 2004 2003 2002  Certamen 2: 2008 2007 2006 2005 2004 2003 2002

Soluciones
Notas
Histograma
Alumnos Destacados (80 ó superior)
C1.Solucion()
C1.Notas()
C1.Histograma()
Juan Donoso, Alejandro Merello, Pablo Morales, Sergio Silva
C2.Solucion()
C2.Notas()
C2.Histograma()
Danilo Bize

    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: 5 puntos por día.

    20 % Proyecto personal o engrupo  (Inscríbalo aquí , vea temas ya inscritos)
         3%    Definición puntual del tema: 30 de Septiembre
        7%    Informe
:  Inicio de presentaciones: 13 de Noviembre
        10 % Presentación y demostración (evaluada por compañeros y profesor)

Proyectos desarrollados por Alumnos según orden de presentación: Tómbola Cronómetro Evaluación Notas de Presentación

Alumnos
Plazo
Proyecto
Fecha Presentación: Orden de presentación Quien no llegue, presenta al final con penalización de 0.7
Informe
Felipe Méndez, Oscar Núñez OK
Respaldo y Sincronización de Archivos 13.11.09
27.11.09
Juan José Donoso Álvarez, José Pablo Álvarez Lacasia OK
Manager de conexiones Wifi y Bluetooth 13.11.09
27.11.09
Javiera Quiroz R, Juan Ferrada A.  OK Administrador de actividades de un curso 13.11.09
27.11.09
Alejandro Merello, Iván Gordón OK Procesamiento de Video con Fines de Vigilancia 18.11.09
27.11.09
Ignacio García, Rodrigo Mujica !OK Reproductor de video a distancia 18.11.09
27.11.09
Rodrigo Melo, Danilo Bize OK Integracion de telefonia VoIP a equipo movil BlackBerry 18.11.09
27.11.09
Pablo Morales, Piero Rivera, Nikolas Skoljarev OK Sincronización de contactos en BlackBerry con servidor y base de datos 25.11.09
27.11.09
Danny Sateler, Sergio Silva OK Administrador de Salas y Espacios USM 25.11.09
27.11.09
Pedro Durán Caneo, José González Rossel, Jorge Pareja Ayala OK Integración de servicios domóticos en un sistema embebido 25.11.09
30.12.09
Daniel Acevedo, Enrique Fernandez H. OK Implementacion de administrador de Partidos de Futbol 27.11.09
27.11.09



Misceláneos
   
Ejemplos de programación de audio en linux usando ALSA.
     Ejemplos de programación de video en Linux usando V4L2.
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..."
   Cambios de opinión en el tiempo

    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