Curso de teleformación de C y sus herramientas

C es un lenguaje muy importante en el “mundo real”. Se utiliza en muchísimas aplicaciones realmente interesantes, que abarcan cosas como los microcontroladores, las redes de sensores, los sistemas en tiempo real, los sistemas operativos y los juegos, por poner algunos ejemplos.

Sin embargo, el C que se utiliza no es la introducción básica a la programación que se enseña con C, que emplea cosas como cin, cout, y una serie de “trucos” para no “ver” cosas como los punteros. Los punteros están ahí, y no puedes evitarlos: para que C sea útil como lenguaje, tendrás que usar sus punteros. Y no se estudian en Programación I ni en Programación II. De hecho, la gran sorpresa de los alumnos de este curso cuando lo comienzan es que se dan cuenta hasta qué punto desconocen C.

El problema de usar las características de C que lo han hecho -y lo hacen- grande es que es muy difícil de depurar. Además, los programas grandes en C tienen cientos de miles de líneas, y eso hace ingobernable el editor simple de texto. Y con frecuencia trabajan decenas de personas en el mismo proyecto.

Parece evidente que los programas en C se terminan, se terminan sin errores, incluso los más grandes y los que involucran muchas personas. Pero eso se debe a que C no es apenas un compilador: la persona que programa profesionalmente en C conoce multitud de herramientas, que le facilitan la tarea de desarrollo para obtener productividades similares a los lenguajes de más alto nivel.

Y de eso va el curso.

Mi objetivo en el curso es darte un repaso de C, para “refrescar” conceptos (o aprenderlos; pero en ese caso, el curso te llevará más tiempo que el estimado. De cualquier forma, si entras sin tener ni idea de C, tanto por la documentación del curso como por los foros y las preguntas que me hagas, puedes aprender). Después pasamos a los punteros, que son el “gran olvidado” de muchos cursos donde se aprende a programar, y se aprende con C.

Y finalmente, viene la parte “divertida”: las herramientas. Decenas de herramientas que se utilizan para:

  • Depurar código: Aplicaciones como lclint son capaces de localizar errores comunes, de forma estática, en tu código. Errores en el paso de parámetros, y el uso de punteros. Valgrind también te permite depurar programas con facilidad.
  • Optimizar código: Valgrind también genera informes muy detallados de dónde “pierde el tiempo” tu aplicación, y dónde te interesa optimizar. Esto puede incluir partes del código, o funciones del sistema que realmente sean el cuello de botella de tu aplicación.
  • Desarrollar proyectos grandes: Herramientas como Makefile son imprescindibles para los proyectos grandes, al permitir compilar por separado partes del código, sin obligarte a recompilar partes ya compiladas.
  • Desarrollar proyectos entre varios: Sistemas de control de versiones como CVS o Subversion, que te permite saber quién ha hecho qué en cada momento, y hacer y deshacer según tus necesidades.
  • Hacer código portable: Herramientas como autoconf y automake te permitirán hacer código portable, e independiente de la plataforma.
  • Acelerar las compilaciones: Mediante herramientas como ccache y distcc, podrás acelerar las compilaciones en órdenes de magnitud.
  • Interpretar archivos de configuración: lex y yacc sirven para más cosas que para hacer compiladores: con una fracción del lex y el yacc, puedes leer e intepretar archivos de configuración muy complejos, con poco trabajo.

Además de todo esto, te enseñaré bibliotecas que me han sido de mucha utilidad y me han permitido desarrollar aplicaciones en el “mundo real” en muy poco tiempo, suponiendo mejora de eficiencia por utilizar estas bibliotecas una ventaja respecto a mi competencia. Dentro de estas, veremos RPC, que permite hacer aplicaciones cliente-servidor en red con una facilidad pasmosa (y sin tocar un socket); a intercomunicar procesos en una misma máquina con las bibliotecas de System V, y también te enseñaré algunos trucos y técnicas para hacer tus programas más seguros en C, así como a usar el splint para buscar agujeros de seguridad.

El curso será por teleformación. El curso requiere una base mínima: saber programar en algún lenguaje de programación -no explicaré qué es un bucle ni qué es una función; sí como se hacen en C-.

En el curso cubro muchísimas herramientas, por lo tanto. Todas las documento; y te responderé las dudas que tengo sobre todas ellas. Como en todos los cursos que imparto, me gusta dar mucho valor por el curso que ofrezco, y le podrás dedicar mucho tiempo al aprendizaje de muchas cosas útiles. Como en el caso del curso de LaTeX y el de Perl, tengo que acotar la parte necesaria para obtener el certificado de aprovechamiento a 25 horas; por lo que solo serán cuatro las actividades para el certificado de aprovechamiento. La lectura del material relativo a dichas práctica, su estudio y la ejecución de dichas prácticas debería llevarte aproximadamente 25 horas; aunque depende de tu nivel previo el tiempo efectivo que tardes. El resto de las prácticas serán opcionales, y te recomiendo que las realices para aprender más y sacar el máximo partido a este curso.

La Universidad de Málaga convalida dos créditos de libre configuración por curso para los alumnos de titulaciones de plan antiguo, y un crédito ETCS para los de plan nuevo (grados) . El curso costará 50€ a alumnos de la Universidad de Málaga, y 70€ a alumnos del curso que no pertenezcan a la UMA. La matriculación, por lo tanto, está abierta a gente de todo el mundo, y quizás os interese el curso.

Con el curso te llevas su documentación: un manual propio, en formato PDF, con más de seiscientas páginas de documentación original sobre C, herramientas para programar en C, y algunos de sus APIs más importantes.

Si tienes interés en saber como es el material, mándame tu nombre, tus apellidos, y tu correo electrónico, y te mandaré un par de capítulos y unas hojas del curso de ejemplo, para que veas la calidad del material y decidas si te interesa o no el curso. El correo es irbis arroba orcero.org, cambia el “arroba” por el signo @ para obtener el correo.

La matriculación puedes hacerla aquí: curso de C. Si estás con dudas, te recomiendo que preguntes a otros alumnos sobre los otros cursos que han realizado conmigo (el de LaTeX, este de C, el de informática forense, o el de Perl) y que te cuenten cómo les ha ido.

Además de este curso, también oferto otro curso de teleformación sobre LaTeX: curso de LaTeX.

Espero verte en el curso.

Curso de teleformación de LaTeX

Después del éxito del curso de LaTeX los últimos años, con más de dos centenares de matriculados, y realimentaciones muy positivas, este año voy a repetir el curso. El curso está teniendo especial éxito entre alumnos que quieren hacer su proyecto fin de carrera, su trabajo fin de grado o su tesis doctoral usando LaTeX; y hay alumnos matriculados de biología, matemáticas, de ingeniería ambiental, ingeniería industrial, informática y telecomunicaciones.

El curso está siendo por teleformación. Se compone de diez prácticas; de las cuales hay que realizar las seis primeras para obtener el certificado. Es una práctica por bloque temático; la primera es instalar LaTeX, la segunda convertir un documento sencillito de word a LaTeX, y luego aprendemos a estructurarlo como artículo, o como libro… aprendemos en este curso también a hacer ecuaciones, cartas y presentaciones en LaTeX, así como a incorporar fuentes, colores, y gráficos.

El curso está preparado para que te aporte mucho valor. Por un lado, tienes la parte para asegurar el certificado de aprovechamiento, El tiempo estimado para leer la parte obligatoria del material, hacer los ejemplos y realizar las prácticas obligatorias es de 25 horas de trabajo personal de promedio. Durante las prácticas tú tomarás el documento word que elijas (una práctica de alguna asignatura, un proyecto fin de carrera, o una tesis doctoral), la pasarás a LaTeX, e irás “enriqueciéndola”, y mejorando su formato, hasta cubrir los seis primeros objetivos. Pero el curso no termina ahí si no quieres, y tienes muchísimo más material, para poder profundizar y dedicar todo el tiempo adicional que quieras para aprender mucho más LaTeX. Hasta llegar a definir la presentación de tu proyecto fin de carrera o tu tesis doctoral, y darle un formato fino, de gran calidad, y que se ajuste a lo que quieres.

El material que te envío está maquetado en formato de libro, de forma que cuentes con un “libro” en formato pdf con más de cuatrocientas páginas de documentación de LaTeX.

La Universidad de Málaga convalida dos créditos de libre configuración por curso para los alumnos de titulaciones de plan antiguo, y un crédito ETCS para los de plan nuevo (grados) . El curso costará 50€ a alumnos de la Universidad de Málaga, y 70€ a alumnos del curso que no pertenezcan a la UMA. La matriculación, por lo tanto, está abierta a gente de todo el mundo, y quizás os interese el curso.

Si tienes interés en saber como es el material, mándame tu nombre, tus apellidos, y tu correo electrónico, y te mandaré un par de capítulos y unas hojas del curso de ejemplo, para que veas la calidad del material y decidas si te interesa o no el curso. El correo es irbis arroba orcero.org, cambia el “arroba” por el signo @ para obtener el correo.

Pero… ¿No sabes qué es LaTeX?

LaTeX es un es un sistema de autoedición completo, que es muy conocido por matemáticos y físicos -ya que se utiliza de forma intensiva para la redacción de artículos científicos-. También es muy popular para la redacción de proyectos fin de carrera, disertaciones de maestría y tesis doctorales.

Es filosóficamente muy diferente al word: LaTeX en principio es compilado (aunque existen editories tipo Word para LaTeX). Utiliza etiquetas, como hace HTML. Esto permite que nosotros indiquemos en el cuerpo de texto solo qué se destaca, qué es nombre de capítulo, qué es pié de página… LaTeX usará la información de la cabecera para maquetar automáticamente el texto, generando un pdf ya con calidad profesional. Podemos confiar en los estilos de LaTeX, por lo que el trabajo será mínimo; o montárnoslo por nuestra cuenta, y mejorar el estilo para que LaTeX genere exactamente lo que queremos. Esto permite, por ejemplo, centrarnos en el contenido al principio, y solo cuando hemos terminado decir qué queremos que nos genere y con qué formato, y LaTeX hará el trabajo pesado de maquetación.

LaTeX ha sido muy popular en física y matemáticas por la sencillez para editar ecuaciones matemáticas extremadamente complejas. También tiene un tratamiento automatizado de bibliografía muy potente, y permite hacer cosas como transcripciones fonéticas en IPA con facilidad, y sin problemas de fuentes. Además, los que hacéis el proyecto fin de carrera conmigo sabéis que todos lo tenéis que hacer en LaTeX; principalmente porque soy muy vago, y no me gusta trabajar inútilmente contra el word para conseguir el formato deseado.

Vamos a ver en el curso tanto lo que en principio se suele dar -artículos, libros, proyectos fin de carrera y tesis en LaTeX- como otras cosas que no por menos conocidas son menos útiles: estudiaremos como hacer presentaciones, cartas, mailing masivos, generación automática de documentos con calidad profesional y todos los parámetros de formato de página.

La matriculación puedes hacerla aquí: curso de LaTeX. Si estás con dudas, te recomiendo que preguntes a otros alumnos que han hecho este curso el año pasado, y que te cuenten lo que aprendieron, el nivel de dificultad, la calidad del material, y si merece la pena.

Además de este curso, también oferto otro curso de teleformación sobre C y sus herramientas: curso de C.

Espero verte en el curso.

Curso de Informática Forense y Peritajes Informáticos 2015

Por cuarto año consecutivo vamos a impartir otra vez el Curso de Informática Forense y Peritajes Informáticos.

Como en las últimas convocatorias, el curso seguirá una mecánica semipresencial. Utilizaremos una mecánica tarde viernes/mañana sábado dos veces. Así, además de compatible con la actividad profesional, es más razonable para la gente que viene de fuera de Málaga.

Las clases serán el viernes 13 de Noviembre de 17:00 a 21:30, Sábado 14 de Noviembre 10:00 a 13:30, Viernes 20 de Noviembre de 17:00 a 21:30 y Sábado 21 de Noviembre 10:00 a 13:30. El resto del tiempo, hasta completar las 25 horas, será no presencial. Eso no quita que si alguien no puede acudir algún día, es posible sustituir la presencialidad de ese día por una tarea sustitutiva para obtener el certificado de aprovechamiento. (Aunque es importante recordar que el curso es semipresencial, y que personalmente creo que aprenderás más yendo todos los días al curso)

El curso incorpora una novedad importante. Será el primer curso que hable de la norma UNE de peritajes informáticos. La norma, de la que fui ponente, la aprobamos antes de verano, y ha salido publicada el 9 de septiembre; por lo que probablemente sea el primer curso que imparta la norma UNE 197010:2015 “Criterios generales para la elaboración de informes y dictámenes periciales sobre Tecnologías de la Información y las Comunicaciones (TIC)” como parte de temario. No repartiré la norma -es ilegal-, pero sí la explicaré hasta el grado de detalle suficiente como para poder realizar solo con lo aprendido en el curso una pericia según norma.

Esto es interesante para los colegiados en el Colegio Profesional de Ingeniería en Informática de Andalucía: en las pericias que visemos en el colegio y que cumplan la norma lo especificaremos en el visado -las que no cumplan norma, no pondrá nada al respecto-; y puede ser útil por lo tanto conocer la norma.

Descripción

El objetivo de este curso es formar a una persona con conocimientos suficientes de informática en la mecánica propia de la informática forense; cómo poner mecanismos de detección temprana en intrusos de sistemas informáticos, cómo poner señuelos para distraerles y que ataquen a falsas vulnerabilidades mientras se recoge información, cómo manipular un sistema informático comprometido para no destruir las evidencias, y en cómo redactar un informe pericial. Nos centraremos en un enfoque de realización de las pericias según la norma UNE 197010:2015.

Programa:

  • La pericia informática.
  • El marco legal de la informática.
  • El perito informático. Deberes y responsabilidades.
  • El reglamento de listas de peritos del Colegio Profesional de Ingenieros en Informática de Andalucía.
  • Redacción de informes periciales informáticos según norma UNE 197010:2015.
  • La informática forense.
  • Detección temprana de intrusiones; históricos y herramientas.
  • Señuelos: honeypots y honeynets.
  • Cómo actuar ante intrusiones y conservar las evidencias.
  • Herramientas de informática forense.

Las clases presenciales irán sobre temas concretos, que serán:

Viernes 13 de Noviembre: El perito informático.

Este día hablaré de la figura del perito informático. También de cómo funcionan los procesos penales, de los órdenes del derecho, y del perito de parte y perito de tribunal. Comentaré el reglamento de peritajes del CPIIA. Este es el día más importante de todos; por lo que recomiendo encarecidamente la asistencia este día.

La asistencia a este día la veo tan importante, que si planeas no asistir, te ruego contactes conmigo antes de matricularte en el curso, ya que la actividad que reemplaza la asistencia a este día será específica, y dependerá de tu perfil formativo y experiencia profesional: no es lo mismo un abogado en ejercicio, que un estudiante de primer año de grado, de cara a enfocar con la seriedad y la formalidad mínima defender una pericia en un juicio. Hacer el tonto en un tribunal te puede llevar a la cárcel varios años, y este es el día que te diré qué es “hacer el tonto en un tribunal”, y cómo no hacerlo.

Sábado 14 de Noviembre: Redacción de informes periciales informáticos según norma UNE 197010:2015

Este día comentaré cómo se hace una buena pericia, y los defectos que tienen las malas pericias. También comentaré las pericias que nos encontraremos con más frecuencia en la vida profesional, y cómo resolverlas. Nos centraremos en la norma UNE 197010:2015 “Criterios generales para la elaboración de informes y dictámenes periciales sobre Tecnologías de la Información y las Comunicaciones (TIC)”

La asistencia a este día se puede sustituir por obtener al menos una nota de 5 en una de las pericias propuestas como ejercicio en esta sección. En caso de asistencia la realización de las pericias de esta sección no es obligatoria, pero sí recomendable.

Viernes 20 de Noviembre: Las pericias informáticas

Este día comentaré las pericias que nos encontraremos con más frecuencia en la vida profesional, y cómo resolverlas que no dio tiempo de impartir el día anterior. Hablaremos de facturación de pericias, y de tasación de equipos informáticos.

La asistencia a este día se puede sustituir por obtener al menos una nota de 5 en una de las pericias propuestas como ejercicio en esta sección. En caso de asistencia la realización de las pericias de esta sección no es obligatoria, pero sí recomendable.

Sábado 21 de Noviembre: Informática forense

Este día analizaremos la problemática específica de la informática forense, desde un punto de vista profesional. Porqué es complicada. Aquello que es transferible del principio de Locard a la informática forense, y qué no lo es. Cómo actuar ante una intrusión. Hablaremos de los honeypots, las honeynets, y de la privacidad en la red.

La asistencia a este día se puede sustituir por obtener al menos una nota de 5 en la pericia propuesta como ejercicio en esta sección. En caso de asistencia la realización de las pericias de esta sección no es obligatoria, pero sí recomendable.

En teleformación se realizará la parte del marco legal de la informática, y la parte de análisis de históricos, mediante la obtención de al menos un cinco en una de las dos pericias propuesta como ejercicio en su sección, y en la parte de análisis de históricos, en la obtención de al menos un cinco en la pericia de análisis de históricos propuesta.

Algunas cosas más que son importantes:

Lugar: E.T.S.I. Informática, aula por determinar
Fecha y horario: Viernes 13 de Noviembre, Sábado 14 de Noviembre, Viernes 20 de Noviembre, Sábado 21 de Noviembre. Los Viernes de 17:00 a 21:30, los Sábados de 10:00 a 13:30.
Matriculación: http://www.uma.es/vrue/cursos_verano.html

Si formas parte de la comunidad universitaria de la Universidad de Málaga, el precio es de 50€. Si eres colegiado en el Colegio Profesional de Ingenieros en Informática, el precio será de 50€. En otro caso, es de 70€.

El curso es de 25 horas; si eres de la Universidad de Málaga, puedes solicitar hasta dos créditos de libre configuración, o un crédito en los nuevos grados. Pregunta en la secretaría de tu centro por el criterio de créditos de libre configuración.