![]() |
![]() |
![]() |
|
![]() |
|
TECNOLOGIAS DE LA INFORMACION |
|
|
||||
![]() |
||||||
|
||||||
|
|
Introducción al curso | |||||||
Objetivo.El objetivo de este curso de doctorado es que el alumno se familiarice con el funcionamiento de los ordenadores a través del aprendizaje de un lenguaje de programación sencillo y de alto nivel como es el Perl. Cabe distinguir que la "familiarización" que se pretende no es con el ordenador (a nivel de usuario de aplicaciones), sino con el funcionamiento de este y por tanto con la lógica que rige a estos y que nos permite saber que podemos obtener de ellos, e incluso conseguir de los ordenadores lo que pretendemos que hagan aún cuando no conozcamos herramientas / aplicaciones existentes que ya lo hagan. Indudablemente, con el aprendizaje básico de este lenguaje se consiguen otra serie de objetivos como son:
Debemos de todos modos tener siempre en mente que existen muchas herramientas ya disponibles, de modo que se debe evitar "reinventar la rueda" aunque seamos capaces de reinventarla, y por el contrario servirnos de todos los desarrollos previos y librerías existentes, así como copiar métodos y algoritmos de otros programas cuando esto sea práctico y legal. No se pretende que el alumno al terminar este curso de doctorado controle la programación como un fiera, lo cual se adquiere con los años y mucho leer y actualizarse, pero nos basta con que creemos ese interés que probablemente llevará a algunos de vosotros a realizar algunos desarrollos interesantes con el tiempo, o al menos a haceros la vida más cómoda en vuestra relación con los ordenadores. El Perl.Perl es un acrónimo de Practical Extraction and Report Language Entre los "slogans" del Perl, una vez leí que el Perl era un lenguaje para vagos, impacientes y arrogantes. En todo caso esto me convenció de inmediato para utilizarlo. Como dije al principio, el Perl es un lenguaje interpretado de alto nivel lo que nos permite programar tareas potentes con cierta rapidez. Es un lenguaje sin lugar a dudas también muy flexible, lo que permite hacer las cosas de muchos modos diferentes y nos permite relajarnos bastante si no buscamos un rendimiento óptimo para nuestra aplicación. Esto no quita que exista un cierto estilo que se va cogiendo con el tiempo, así como muchos conceptos que tardan en asimilarse y que probablemente no utilicemos en un primer momento. Aún así, el Perl nos permite comenzar a programar de un modo rápido. También ha sido escogido para este curso ya que en el entorno en el que nos movemos - investigación en biomedicina y biología molecular - es un lenguaje muy popular y con cada vez más herramientas y personas que lo utilizan. Los slogansDirectamente del texto original: Clearly, Perl is a unique language. This uniqueness has brought forth a community and an ideology that is unprecedented with other languages. One does not have to be a member of this community or agree with this ideology to use Perl, but it helps to at least understand the ideology to get the most out of Perl. The common Perl slogans have become somewhat famous. These slogans make up the "Perl ethic"---the concepts that guide the way Perl itself is built, and the way most Perl programs are written. "There's more than one way to do it". This slogan, often abbreviated @acronym{TMTOWTDI} (pronounced TIM-toady), is common among many programmers, but Perl takes this idea to its logical conclusion. Perl is rich with non-orthogonality and shortcuts. Most major syntactic constructs in Perl have two or three exact equivalents. This can be confusing to newcomers, but if you try to embrace this diversity rather than be frustrated by it, having "more than one way to do it" can be fun. "The Swiss Army chain-saw". This is the somewhat "less friendly" summary of the previous term. Sometimes, all these diverse, powerful features of Perl make it appear that there are too many tools that are too powerful to be useful all together on one "Swiss Army knife". However, eventually, most Perl users find all these different "chain-saw"-style tools on one "Swiss Army" knife are a help rather than a hindrance. "Perl makes easy jobs easy, and the hard jobs possible." This is a newer phrase in the Perl community, although it was originated by Alan Kay decades ago, but it is quite valid. Most easy tasks are very straightforward in Perl. As the saying goes, most programmers find that there are very few jobs that Perl cannot handle well. However, despite what the saying might indicate, Perl is not a panacea; the programmer should always choose the right tool for the job, and that right tool may not always be Perl. "Perl promotes laziness, impatience and hubris." These seem like strange qualities to be promoting, but upon further analysis, it becomes clear why they are important. Lazy programmers do not like to write the same code more than once. Thus, a lazy programmer is much more likely to write code to be reusable and as applicable in as many situations as possible. Laziness fits well with impatience. Impatient programmers do not like to do things that they know very well the computer could do for them. Thus, impatient programmers (who are also lazy) will write programs to do things that they do not want to have to do themselves. This makes these programs more usable for more tasks. Finally, laziness and impatience are insufficient without hubris. If programmers have hubris, they are much less likely to write unreadable code. A good bit of hubris is useful--it makes programmers want to write code that they can show off to friends. Thus, hubris, when practiced in the conjunction with laziness and impatience, causes programmers to write reusable, complete and readable code. In other words, it is possible to exploit these three "bad" traits to obtain a "good" outcome. El UNIX.En nuestro caso GNU/Linux (is not UNIX). Este sistema operativo está muy bien valorado en entornos de desarrollo, administración de redes y para dar servicios por lo robusto que es, pero también por la filosofía que tiene en cuanto a transparencia y control de lo que en él ocurre. También es muy interesante el hecho de que permite realizar tareas no solo de un modo gráfico con ventanas, sino también mediante comandos, lo que es ideal para automatizar tareas que no estén atendidas por el usuario (no sean interactivas). Generalmente el usuario habitual de un entorno UNIX se encontrará cómodo pudiendo realizar todo tipo de operaciones mediante línea de comandos, negando la típica acusación de que el entorno no es amigable (user friendly) sino afirmando todo lo contrario. Es cierto que la línea de comando del UNIX no se aprende de un modo tan intuitivo como se pueda aprender a manejar un ordenador mediante las ventanas de un interfaz gráfico y sobre todo que nuestro vecino del quinto no nos va a poder solucionar ese problema que tenemos con la nueva tarjeta de vídeo. Pero una vez que controlamos la línea de comandos suele ocurrir que nos sentimos con más control sobre el ordenador que sobre una máquina que no sabemos que es exactamente lo que está haciendo y que para hacernos la vida más cómoda nos oculta su funcionamiento y pretende adivinar lo que el usuario quiere (incluso lo que quiere comprar) Otra buena razón para utilizar UNIX en nuestro caso es que las herramientas de bioinformática que pretendemos utilizar están desarrolladas en este sistema y que por otra parte los profesores de este curso están más familiarizados con el desarrollo en Perl sobre máquinas UNIX, que sobre plataformas MacOS Classic o Windows (como la mayoría de los desarrolladores en C o Perl por otro lado). Los profesores.Este curso va a ser impartido por las siguientes personas, pertenecientes al Instituto de Investigaciones Biomédicas del CSIC y la UAM.
El programa.El programa del curso, junto con la documentación lo tenéis en la página web de este curso. Se dividen las clases en dos bloques diferenciados. Uno teórico en el que se explicarán conceptos básicos sobre hardware, sistemas, servicios y programación y que ocupará tres clases de dos horas (6h) y del que forma parte esta introducción. El segundo será práctico y a su vez se divide en tres bloques, cada uno de tres clases (8h), en los que en primer lugar se explicará una base teórica sobre programación (3h) para luego llevarla inmediatamente a la práctica (5h). En total este segundo bloque práctico se llevará 24h. La evaluación.
|
|||||||
|
|
|||||||||||
|
|
|
|||||||||
![]() |
|||||||||||
![]() |
|||||||||||
![]() |
|||||||||||
|
Ultima modificación: 22 de Octubre de 2004 |
||||||||||