Techniki programowania w Pythonie

Kurs Techniki programowania w Pythonie obejmuje 15 godzin wykładów oraz 30 godzin ćwiczeń i odbywa się w semestrze letnim. Zajęcia odbywają się w grupach 8 osobowych. Na zaliczenie kursu składa się ocena z zadań rozwiązywanych w trakcie ćwiczeń (60 pkt) oraz kolokwium zaliczeniowe (zadania rozwiązywane indywidualnie na komputerze w trakcie ostatniego bloku ćwiczeniowego, 40 pkt). Warunkiem dopuszczenia do kolokwium zaliczeniowego jest uzyskanie min. 60% punktów z ćwiczeń. Na ćwiczeniach przedstawiane są kolejno: (1) wprowadzenie do podstawowych typów danych i konstrukcji składniowych oraz konfiguracja i wykorzystanie edytora GNU Emacs jako środowiska programistycznego, (2) operacje na plikach i ciągach tekstowych, (3) uruchamianie programów (moduł optparse, sys), refaktoryzacja i profilowanie kodu, (4) wykorzystanie wyrażeń regularnych w przetwarzaniu danych tekstowych, (5) korzystanie z usług systemu operacyjnego zaimplementowanych w modułach biblioteki standardowej ze szczególnym uwzględnieniem operacji na plikach i kartotekach oraz zarządzania procesami, potokami i wątkami, (6) przetwarzania danych zapisanych w XML, (7) obliczenia naukowe w pakiecie Numeric, (8) studium przypadku: PyMOL i MoinMoin. Zagadnienia będące przedmiotem ćwiczeń są szczegółowo omawiane na odpowiednich wykładach.




Terminy zajęć:

  • wykłady (sala ZBD 1.02): środa, 9:30-12:00
  • ćwiczenia (sala D111): grupa A (środa 12:15-14:15, czwartek 10:00-12:00), grupa B (czwartek 14:00-16:00, 16:15-18:15)


Python jest nowoczesnym językiem programowania, o którego popularności decydują proste reguły składniowe, wysoka czytelność kodu źródłowego, dostępność wielu bibliotek zawierających implementację specjalistycznych algorytmów, mechanizmy umożliwiające włączanie kodu w językach wysokiego poziomu, wbudowane mechanizmy programowania obiektowego, funkcjonalnego oraz proceduralnego. Te oraz inne czynniki decydują o tym, że w Pythonie realizowane są szybko i nakładem względnie niewielkich sił powstają złożone projekty informatyczne. W dziedzinach związanych z bioinformatyką, biofizyką czy biologią obliczeniową do szczególnie udanych projektów rozwijanych w ramach ruchu Otwartego Oprogramowania (ang. Open Source) zaliczyć można między innymi:

  • bioinformatyka: BioPython

  • profesjonalna wizualizacja struktury makrocząsteczek: PyMol, Chimera

  • modelowanie molekularne: MMTK

  • pakiet do analizy wieloczynnikowej (ang. multivariate analysis): PyChem

  • nauczanie maszynowe: MDP, PyML

  • analiza kontroli metabolicznej: PySCes

Wiele grup badawczych i firm komercyjnych intensywnie wykorzystuje Python do realizacji rutynowych zadań w bioinformatyce: Andrew Dalke, Barbara Wold, Michel Sanner, Konrad Hinsen, Ernest Fraenkel, itp.

Python jest językiem interpretowanym, co oznacza, że programy nie są kompilowane lecz przetwarzanie ich kodu źródłowego na wykonywalny kod maszynowy zachodzi za każdym razem przy uruchomieniu programu. Python jest dojrzałym językiem programowania, systematycznie udoskonalanym od ponad 15 lat. Zmiany w kolejnych wersjach najczęściej sprowadzają się do wprowadzania nowych elementów składniowych oraz rozbudowy standardowej biblioteki procedur. Opis najważniejszych zmian w najnowszej wersji Python2.5 zawarto w artykule What's New in Python 2.5.


Literatura

  1. Dokumentacja Pythona. Dla początkujących wskazany jest Tutorial. Praktycy śpią z Python Library Reference pod poduszką, a teoretycy nie rozstają się z Python Reference Manual. Dostępna jest również niekompletna i nie aktualizowana na bieżąco dokumentacja w języku polskim.

  2. Programming Python. Mark Lutz. Kultowa książka opublikowana przez wydawnictwo O'Reilly.

  3. Zanurz się w objęciach Pythona. Mark Pilgrim. Drobiazgowo omówione przykłady zastosowań Pythona w rozmaitych, krępujących sytuacjach.

  4. How to Think Like a Computer Scientist: Learning with Python, Allen B. Downey, Jeffrey Elkner i Chris Meyers

  5. Run Forrest, run.. Czyli co zrobić gdy Twój program jest [zbyt] woooolny. PerformanceTips, PerformancePython

  6. Rozwiązania elementarnych problemów. Można tu znaleźć setki procedur, które pozwalają rozwiązać niemal każdy palący problem..

  7. Mistrzowie - rzemieślnikom. Pythonowi Guru dzielą się wiedzą ze średnio-zaawansowanymi programistami.

  8. The Art of UNIX Programming, Eric S. Raymond. Odrobina filozofii w programowaniu wzbogacona szerokim przeglądem dobrych praktyk programowania wynikających z bogatej tradycji uniksowej.

BioInfoCourses: IntroPython (last edited 2011-02-15 22:57:08 by localhost)