APB – kryteria i procedura zaliczenia

Zbliża się koniec semestru, więc czas na ostateczne szczegóły zaliczenia. Zgodnie z zapowiedziami, do elementów zaliczenia należą:

  1.  Wykonanie referatu
  2. Małe zadanie lab. (pull request)
  3. Prezentacja projektu zespołowego
  4. Duże zadanie lab. (osobisty wkład w rozwój projektu zespołowego)

Aby zaliczyć przedmiot, trzeba zaliczyć wszystkie 4 elementy, przy czym punkt 2 nie wpływa na ocenę (jest tylko na “zal”), a ostateczna ocena będzie średnią ważoną punktów 1, 3 i 4, przy czym wkład prezentacji (punkty 1 i 3) jest mniejszy (po 25%) a samego projektu (pkt. 4) większy (50%). Oceny za punkty 1 i 4 są indywidualne (mogą być osoby o różnym wkładzie w ten sam projekt) o tyle prezentacja całego projektu jest oceniana zespołowo (niezależnie od tego, czy wszyscy brali udział w prezentacji, czy np. tylko wybrane osoby z zespołu).

Prezentacje odbędą się na ostatnich zajęciach laboratoryjnych (23. stycznia o 12:15 w labie), każdy zespół ma 30 minut na opowiedzenie o swoim projekcie. Powinna to być prezentacja adresowana do pozostałych uczestników jako potencjalnych użytkowników stworzonego pakietu. Można inspirować się dobrymi i złymi przykłądami tego typu prezentacji z konferencji BOSC (np. tu ). Prezentacja jest warunkiem koniecznym zaliczenia, nawet jeśli zespół ma problemy z ukończeniem projektu. Chciałbym, aby podczas prezentacji poruszone zostały następujące kwestie:

  1. Po co ten projekt?
  2. Co się udało?
  3. Jak to zrobiliśmy?
  4. Jak to przetestowaliśmy?
  5. Jak  to udokumentowaliśmy?
  6. Przykład zastosowania w działaniu (live demo, albo case study)
  7. Credits, czyli kto co zrobił

Na podstawie ocen z zajęć, każdy będzie miał zaproponowaną ocenę “wyjściową”, którą będzie mógł/mogła poprawić (lub w przypadkach skrajnej ignorancji – pogorszyć) na egzaminie ustnym, którego termin proponuje 30. I 2017, ale można też ustalać indywidualnie w sesji. Aby uzyskać ocenę powyżej 4, konieczny jest udział w egzaminie ustnym.

Zagadnienia na egzamin w kolejności malejącej ważności:

  1. Technologie zarządzania wersjami kodu i dzielenia się nimi (RCS, CSV, SVN, GIT, GITHUB, itp.
  2. Instytucje wspomagające rozwój oprogramowania open-source i  licencje oprogramowania (OBF, SPI, GNU, GPL, BSD, itp)
  3. Reproducible research: idee i technologie wspierające (m. in. pakiety literate programming typu sweave)
  4. Rola oprogramowania typu LIMS i Workflow management w reproducible research
  5. Oprogramowanie open source dla potrzeb bioinformatyki (projekty BioX)
  6. Pakiety do obliczeń naukowych i wizualizacji
  7. Przeglądarki genomowe

Idea egzaminu jest taka, że student na zapytanie o dowolny z tych tematów, powinien być w stanie streścić co było na danym wykładzie w kilku sensownych zdaniach i odpowiedzieć na podstwowe pytania w zakresie tego co było na wykładzie (np. różnice między licencjami, zalety i wady narzędzi do wersjonowania kodu, itp).

Termin egzaminu: 10. lutego 2017.

APB wykład 3

Dzisiaj Na wykładzie mówliśmy o przeglądarkach genomowych. Slajdy dostępne są tu: wyk3-browsers . Zaległe slajdy z poprzedniego tygodnia są tu: wyk2-bioX

Na ćwiczeniach będziemy przygotowywać się do zrobienia zadania 1. Zachęcam w związku z tym do założenia sobie konta w serwisie github. Następnie do wybrania sobie projektu (np. biopython, albo któryś z projektów mojej grupy dostępny na github.com/regulomics). Następnie stworzenia “rozwidlenia” (ang fork) tego projektu, ściągnięcia go do siebie, wykonania poprawki i wrzucenia poprawionej wersji na swoje konto w serwisie github, a następnie do wykonania pull requestu.

APB – linki dla uczących się programowania

Osoby,  które nie miały dotąd szansy nauczenia się programowania, zachęcam do pracy we własnym zakresie.

Można skorzystać z samouczków pythona:

  • https://www.codecademy.com
  • www.learnpython.org
  • http://codingbat.com/python

i wielu innych

Polecam robienie zadań z serwisów:

  • davinci.mimuw.edu.pl
  • rosalind.info
  • http://projecteuler.net/

i podobnych

Materiały do nauki programowania znajdą Państwo również tu:

  • http://wazniak.mimuw.edu.pl/index.php?title=Wst%C4%99p_do_programowania
  • http://davinci.mimuw.edu.pl/samouczek-python/python

Kilka zadań jest też dostępnych na stronie zajęć z poprzedniego roku (u dołu strony).

http://www.mimuw.edu.pl/~pawel.bednarz/apb.html

 

Zadanie zaliczeniowe nr 1.

Zadanie 1. ma wykazać, że każdy z Państwa umie samodzielnie wykonać podstawowe operacje na publicznym projekcie open source (np. Biopython). Państwa zadanie polega na:

  1. Wybraniu sobie projektu, którego kod źródłowy rezyduje na platformie github
  2. Znalezieniu miejsca, w którym pomoc jest potrzebna. Np. projekt biopython ma listę otwartych problemów , podobnie inne projekty mają takie listy. Można też wyszukać literówki albo braki w doikumentacji lub testach.
  3. Wykonaniu kopii repozytorium w ramach serwisu github
  4. Dokonaniu w niej zaplanowanych zmian
  5. Wysłaniu prośby o włączenie tych zmian do głównej gałęzi kodu poprzez tzw. “Pull request”

Zachęcam Państwa do konsultowania się ze mną przynajmniej po etapie  2. i 4. (choćby przez e-mail).

Spodziewam się, że zakończą Państwo to zadanie do końca listopada

Zadanie jest na zaliczenie, tzn. bez wykonania go, nie można zaliczyć ćwiczeń.

Sprawdzanie będzie polegać na tym, że spotkają się Państwo ze mną (np. na zajęciach) i opowiedzą o tym co Państwo zrobili i jak.

APB wykład 1.

Dzisiaj na wykładzie wprowadzenie do tematyki wykładu – w szczególności o otwartych licencjach na użytkowanie i dystrybucję oprogramowania. Slajdy tutaj wyk1-intro.

Na laboratorium porozmawiamy o użytkowaniu programów do kontroli wersji. Trochę o historii – od SCCS, przez RCS, CVS i SVN do git’a. Umówimy się na pierwszy projekt zaliczeniowy i pewnie podzielimy się na grupy do drugiego zadania.

Warto zajrzeć http://biopython.org/wiki/GitUsage