Programozás biológusoknak

2017 - C és Wolfram Mathematica

Oktató: Zachar István

Tantárgy célja, célkitűzései

A programozás biológusoknak speciális kollégium egy állandó igény kielégítésére: biológusok számára érthető, problémaorientált bevezetést nyújtani a programozásba. A tantárgy azoknak szól, akik nem tudnak még programozni, s most ismerkednek meg a biológia adatelemzésben, szimulációban és bioinformatikában is alkalmazható programnyelvvel. A választott programozási nyelv a C, amely gyors programfejlesztést tesz lehetővé, általánosan használható, minden elterjedt operációs rendszer alatt működik, és a legtöbb ma használt programozási nyelv őse (vagy legalább is hatott rájuk, pl. C#, C++, Php, Python, Perl, Java, JavScript, stb.). Azaz aki C-ben tud programozni, az sokkal könnyebben sajátít el később más, egyszerűbb programnyeleket.

Mivel a programozást Raspberry Pi gépeken végezzük, az adatábrázoláshoz Wolfram Mathematica szoftvert fogunk használni. A Wolfram programozási nyelv a C-hez képest magas szintű, általános felhasználású, ideális modellezéshez. Ennek a nyelvnek belépő-szintű elsajátítása is a kurzus célja.

A tantárgy tematikája

1. gyakorlat: A programozás és a programnyelvek. A strukturált programozás alapelvei. A C nyelv alapjai: alapvető parancsok és operátorok, adattípusok és értékadás. A fejlesztői környezet megismerése. Első program megírása. Letölthető előadás: programozas.pptx (programozas.pdf). Példaprogramok: hello.c, operatorok.c, adattípusok.c.

2. gyakorlat: Összetett adatszerkezetek: vektorok és tömbök alkalmazása. Ciklus vezérlés (for, return). Programozás: kiválasztás, megszámlálás. Példaprogramok: tombok.c, for_ciklus.c. Házifeladatok: hazi02.txt. Házifeladat megoldások: hazi02.c.

3. gyakorlat: Randomszám generálás (srand, rand, RAND_MAX). Előltesztelő ciklus (while). Elágazás (if). Példaprogramok: ciklusok.c, random.c. Házifeladatok: hazi03.txt. Házifeladat megoldások: hazi03.c.

4. gyakorlat: Lineáris programozás, folyamatábra. Feltételes kifejezés (teszt?igaz:hamis). Fájlkezelés (fopen, fclose, fprintf, fscanf). Példaprogramok: felteteles.c, fajlkezeles.c, fajlkezeles2.c. Házifeladatok: hazi04.txt. Házifeladat megoldások: hazi04.c.

5. gyakorlat: Függvények deklarálása, használata. Példaprogramok: fuggvenyek.c. Házifeladatok: hazi05.txt. Házifeladat megoldások: hazi05.c.

6. gyakorlat: Függvények használata, egyszerű evolúciós modell. Wolfram Mathematica alapismeretek, ábrázolás. Példarogramok: fuggvenyek2.c, drift_modell.c. Házifeladatok: hazi06.txt. Házifeladat megoldások: hazi06.c.

7. gyakorlat: Pointerek, tömb-kezelő függvények. Pédaprogramok: pointerek.c, fuggvenyek_pointerrel.c, drift_modell2.c. Házifeladatok: hazi07.txt. Házifeladat megoldások: hazi07.c.

8. gyakorlat: Karakterláncok kezelése (strlen, strcat, strcpy, strcmp, atoi, atof, strstr, strchr). Példaprogram: stringek.c. Házifeladatok: hazi08.txt. Házifeladat megoldások: hazi08.c.

9. gyakorlat: Mátrixok, dinamikus memóriafoglalás (malloc, calloc). Példaprogram: matrixok.c.

10. gyakorlat: Egyéni feladat megoldása

11. gyakorlat: Egyéni feladat megoldása

12. gyakorlat: Egyéni feladat megoldása

 

A tantárgy felvételének előfeltétele

Alapvető számítástechnikai ismeretek: gépelés, copy-paste műveletek, fájl megnyitás, fájl elérési útjának megtalálása, stb.

A tantágy felvételéhez semmilyen programozási vagy (angol) nyelvi előképzettség nem szükséges!

Számonkérés módja

Évközbeni számonkérés nincs.

A félév végén egy év közben szabadon választott egyéni programozási feladat megoldása, a program demonstrálása.

Választható projektek: projektek.docx, projektek.pdf.

Telepítési útmutató: Letölthető segítség: C telepítés.docx, C telepítés.pdf

Referenciák, ajánlott források


2016 Python

Oktató: Kun Ádám

Tematika: mint 2017 - ben.

Programcsomagok, amikre rá kell nézni: