„A programozás alapjai 1” változatai közötti eltérés

Vass Bence (vitalap | szerkesztései)
Hasznos források
 
(20 közbenső módosítás, amit 10 másik szerkesztő végzett, nincs mutatva)
13. sor: 13. sor:
|hf=1 db
|hf=1 db
|levlista=vprog1{{kukac}}sch.bme.hu
|levlista=vprog1{{kukac}}sch.bme.hu
|tad=https://www.vik.bme.hu/kepzes/targyak/VIHIA106/
|tad=https://portal.vik.bme.hu/kepzes/targyak/VIHIAA01/
|targyhonlap=http://www.hit.bme.hu/~zsoka/vihiaa01.php
|targyhonlap=https://www.hit.bme.hu/page/BMEVIHIAA01
|facebook=https://www.facebook.com/groups/1147844355276228
}}
}}
{{Egyértelműsítő|programozás alapjai|A programozás alapjai (egyértelműsítő lap)}}


A tantárgy célkitűzése, hogy a hallgatók készség szinten alkalmazható ismereteket szerezzenek a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában. További cél, hogy a megszerzett ismereteket és készségeket további tanulmányaik során hatékonyan legyenek képesek alkalmazni.
A tantárgy célkitűzése, hogy a hallgatók készség szinten alkalmazható ismereteket szerezzenek a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában. További cél, hogy a megszerzett ismereteket és készségeket további tanulmányaik során hatékonyan legyenek képesek alkalmazni.
25. sor: 27. sor:
== Követelmények ==
== Követelmények ==


*'''Jelenlét:''' Mind a három óratípus (előadás, gyakorlat, labor) 70%-án való részvétel kötelező. A számítógépes laborokon a felkészültséget a laborvezetők beugróval vagy előfeladattal ellenőrizhetik, az elégtelen beugró hiányzásnak minősül az adott laborról.
*'''Jelenlét:''' Mind a három óratípus (előadás, gyakorlat, labor) 70%-án való részvétel kötelező. A laborgyakorlatokon az aktív részvételt a laborfeladatok egy részének online feltöltésével és tesztelésével ellenőrzik. Az elégtelen felkészültség mulasztott laboralkalomnak számít.
*'''Nagy házi feladat:''' Ezt a házi feladatot nem osztályozzák le, de a laborvezetőnek el kell fogadnia, ahhoz, hogy jegyet lehessen kapni félév végén. A nagy házi feladat során különböző heteken checkpointok vannak, ahol is előírják, hogy be kell mutatni az adott checkpointig elkészítendő munkát a laborvezetőknek (fel kell tölteni egy portálba PDF-ben). A végén a házit is be kell majd mutatni, és meg kell védeni. A checkpointokról és kritériumokról alább lehet bővebb információt szerezni.
*'''Nagy házi feladat:''' A házi feladat elkészítésével összesen 20 pontot lehet szerezni. A nagy házi feladat során különböző heteken checkpointok vannak (általában a 8., 11. és 14. héten), ameddig el kell készíteni a házi feladat specifikációját (3+1 pont), megoldási vázlatát (3+1 pont), valamint magát a programot is (10+2 pont). A pluszpontokat az kapja meg, aki határidőre beadja az anyagokat. Az utolsó laboralkalom során a kész házit is be kell majd mutatni, és meg is kell védeni. Akinek nincs kész a házi feladata az utolsó laboralkalomig, az különeljárási díj fejében a pótlási héten még bemutathatja a házi feladatát. A checkpointokról és kritériumokról alább lehet bővebb információt szerezni.
*'''KisZH:''' A gyakorlatokon összesen 6 előre bejelentett időpontú kiszárthelyit kell megírni. Három zh-pár, mindegyikből a jobbik számít. A tárgy teljesítésének követelménye, hogy páronként az egyik kiszárthelyi legalább 40%-os legyen! A kishz-ból blokkonként 10 pont szerezhető!
*'''KisZH:''' A gyakorlatokon összesen 6 előre bejelentett időpontú, egyenként 10 pontos kiszárthelyit kell megírni. Három zh-pár (1-2, 3-4, 5-6), mindegyikből a jobbik számít. A tárgy teljesítésének követelménye, hogy páronként az egyik kiszárthelyi legalább 40%-os (4 pont) legyen! Kis zárthelyikből összesen 30 pontot lehet szerezni. Egy kiszárthelyi páros pótolható a pótlási héten.
*'''NagyZH:''' A félév közben 2 nagyZH-t kell írni, külön-külön nincs minimumkövetelmény, de együtt legalább 50%-ot kell elérni. A kettő közül a pótlási héten a rosszabbik pótolható. Mind a két nagyzh-n maximum 40 pont szerezhető!
*'''NagyZH:''' A félév közben 2 db, egyenként 40 pontos nagyZH-t kell írni, külön-külön nincs minimumkövetelmény, de együtt legalább 50%-ot (40 pont) kell elérni. Akinek ez nem sikerülne, annak a pótlási héten egy pótlási alkalmat biztosítanak, amely során a két zárthelyi anyagából összeállított 40 pontos zárthelyit kell megírni, amelyből szintén legalább 50%-ot (20 pontot) kell elérni. A pótzárthelyin elért pontszámot duplázva számítják bele az évközi jegybe.
*'''Szorgalmi házi feladatok:''' A felkészülést egyéni szorgalmi feladatok is segítik, melyek megoldása nem kötelező. A határidőre és sikeresen megoldott szorgalmi feladatokkal extra pontok szerezhetők, amelyeket a félévközi jegy kialakításánál figyelembe vesznek.  
*'''Szorgalmi házi feladatok:''' A felkészülést egyéni szorgalmi feladatok is segítik, melyek megoldása nem kötelező. A határidőre és sikeresen megoldott szorgalmi feladatokkal extra pontok szerezhetők, amelyeket a félévközi jegy kialakításánál figyelembe vesznek. Szorgalmi feladatok megírásával maximum 5 pont szerezhető.
*'''Félévközi jegy:''' A félévközi jegy alakulása: NZ1+ NZH2+ KZH(1,2) +KZH(3,4) +KZH(5,6) +LABORBÓNUSZ   ((a kishz párok közül a jobb pontszáma számít)) Ez alapján a következő határokkal számolják: 52 -től elégséges, 67-től közepes, 82-től jó és 97-től jeles.
*'''Félévközi jegy:''' A félévközi jegy alakulása: NZH1+ NZH2+ KZH(1,2) +KZH(3,4) +KZH(5,6) + HF + LABORBÓNUSZ ((a kisZH párok közül a jobb pontszáma számít)) Ez alapján a következő határokkal számolják: 0-57-ig elégtelen, 58-76-ig elégséges, 77-94-ig közepes, 95-112-ig jó és 112 pont fölött jeles.


== Segédanyagok ==
== Segédanyagok ==
39. sor: 41. sor:
** [http://bme.ysolt.net/1_felev/Prog1/C_konyvek/Kernighan_Ritchie_C_konyv_hun.zip Kernighan Ritchie - C könyv]
** [http://bme.ysolt.net/1_felev/Prog1/C_konyvek/Kernighan_Ritchie_C_konyv_hun.zip Kernighan Ritchie - C könyv]
** [http://bme.ysolt.net/1_felev/Prog1/C_konyvek/Benkone_konyv_pdf.rar Benkőné - C könyv]
** [http://bme.ysolt.net/1_felev/Prog1/C_konyvek/Benkone_konyv_pdf.rar Benkőné - C könyv]
** [[Media:Prog1_Cbooks_Pr-C_CD.iso.docx|Lemezmelléklet]] - A "Programozzunk C nyelven!" könyv lemezmelléklete (CD kép)
** [[Média:Prog1 Cbooks Pr-C CD.iso.docx|Lemezmelléklet]] - A "Programozzunk C nyelven!" könyv lemezmelléklete (CD kép)


*'''Gyakran használt dinamikus adatszerkezetek:'''
*'''Gyakran használt dinamikus adatszerkezetek:'''
**[[Media:Prog1_lancolt_lista.pdf‎|Láncolt lista mintakód]]
**[[Média:Prog1 lancolt lista.pdf|Láncolt lista mintakód]]
**[[Media:Prog1_binaris_fa.pdf‎|Bináris fa mintakód]]
**[[Média:Prog1 binaris fa.pdf|Bináris fa mintakód]]
**[[Média:Vprog1_Lancolt-lista.pdf‎|Láncolt lista]] - A láncolt lista adatszerkezet leírása.
**[[Média:Vprog1 Lancolt-lista.pdf|Láncolt lista]] - A láncolt lista adatszerkezet leírása.


*'''Hasznos oldalak:'''
*'''Hasznos oldalak:'''
53. sor: 55. sor:


* '''Összefoglaló az IO függvényekről:'''
* '''Összefoglaló az IO függvényekről:'''
**[[Média:prog1_IOfvek_osszefoglalo.xlsx|IO függvények összefoglalója]] - Hasznos kis dolog linkekkel.
**[[Média:Prog1 IOfvek osszefoglalo.xlsx|IO függvények összefoglalója]] - Hasznos kis dolog linkekkel.


== Házi feladat ==
== Házi feladat ==
60. sor: 62. sor:
===2009/2010 ősz házi feladat===
===2009/2010 ősz házi feladat===
A házi feladat leírása innen tölthető le:  
A házi feladat leírása innen tölthető le:  
* [[Media:Proghf0001.jpg|első oldal]]
* [[Média:Proghf0001.jpg|első oldal]]
* [[Media:Proghf0002.jpg|második oldal]]
* [[Média:Proghf0002.jpg|második oldal]]


Jelmagyarázat a 2. oldalhoz:
Jelmagyarázat a 2. oldalhoz:
95. sor: 97. sor:
#A végső dokumentáció: A dokumentációnak olyannak kell lennie, hogy ha valaki más ugyanezzel a problémával kezdd el foglalkozni, és látja a dokumentációt, akkor egyéb kérdés nélkül ''reprodukálni'' tudná a házit (ami többé kevésbé megegyezne a hallgatóéval). Egyébként csak össze kell fűzni az előzőeket és kiegészíteni a tesztelés résszel. A tesztelés részben csak azt kell leírni, hogy milyen, és miért pont azokkal az adatokkal teszteltél.
#A végső dokumentáció: A dokumentációnak olyannak kell lennie, hogy ha valaki más ugyanezzel a problémával kezdd el foglalkozni, és látja a dokumentációt, akkor egyéb kérdés nélkül ''reprodukálni'' tudná a házit (ami többé kevésbé megegyezne a hallgatóéval). Egyébként csak össze kell fűzni az előzőeket és kiegészíteni a tesztelés résszel. A tesztelés részben csak azt kell leírni, hogy milyen, és miért pont azokkal az adatokkal teszteltél.
Van egy másikfajta dokumentálási módszer a [http://www.stack.nl/~dimitri/doxygen/ Doxygen] nevű programmal, amihez a kódot és a kommenteket kell úgy alakítani, hogy azt a Doxygen értelmezni tudja. Ez a program csinál akkor belőle dokumentációt html, vagy pdf formátumban.  
Van egy másikfajta dokumentálási módszer a [http://www.stack.nl/~dimitri/doxygen/ Doxygen] nevű programmal, amihez a kódot és a kommenteket kell úgy alakítani, hogy azt a Doxygen értelmezni tudja. Ez a program csinál akkor belőle dokumentációt html, vagy pdf formátumban.  
== Nagy ZH ==
A félév során 2db nagy ZH van. Ebből egy a félév közepefele, és egy, a szorgalmi időszak végén.
*'''1. ZH''': Adatsorozatok, tömbök, függvények, struktúrák, felsorolás, mutatók és sztringek lehetnek a feladatokban. A dinamikus memóriakezelés, és a fájlok kezelése már nem részei a számonkért anyagnak.
*'''2. ZH''': Dinamikus memóriakezelés, láncolt listák, fésűs listák és társai, lényegében az utolsó gyakorlatig az összes anyag. Felkészülni a laborok és gyakorlatok anyagából érdemes, általában az ott vett anyagból merítenek feladatokat.


== Régi nagy ZH ==
== Régi nagy ZH ==
105. sor: 112. sor:


===Régebbi ZH-k===
===Régebbi ZH-k===
''(bővítendő)''
*[[Media:Prog1_ZH_2010x.pdf‎| 2010 tavaszi ZH]]
*[[Media:Prog1_ZH_2010.pdf‎| 2010 őszi ZH]]
*[[Media:Prog1_ZH_2011x.pdf‎| 2011 tavaszi ZH]]
*[[Media:Prog1 2011ppzh 1.jpg|2011 ppzh 1.oldal]] [[Media:Prog1 2011ppzh 2.jpg|2. oldal]] rossz minőségű
*[[Media:Prog1_ZH_2012osz_megoldas.pdf| 2012 őszi ZH hivatalos megoldásai]]
*[[Media:Prog1_PZH_2012osz_megoldas.pdf| 2012 őszi PótZH hivatalos megoldásai]]
*[[Media:Prog1_ZH_2013tavasz_megoldas.pdf| 2013 tavasz ZH hivatalos megoldások]]
*[[Média:Prog1_ZH_2013osz_megoldas.pdf‎| 2013 őszi ZH hivatalos megoldásai]]
*[[Média:Prog1_PZH_2013osz_megoldas.pdf‎| 2013 őszi PótZH hivatalos megoldásai]]


*[[Média:Prog1 ZH 2010x.pdf| 2010 tavaszi ZH]]
*[[Média:Prog1 ZH 2010.pdf| 2010 őszi ZH]]
*[[Média:Prog1 ZH 2011x.pdf| 2011 tavaszi ZH]]
*[[Média:Prog1 2011ppzh 1.jpg|2011 ppzh 1.oldal]] [[Média:Prog1 2011ppzh 2.jpg|2. oldal]] rossz minőségű
*[[Média:Prog1 ZH 2012osz megoldas.pdf| 2012 őszi ZH hivatalos megoldásai]]
*[[Média:Prog1 PZH 2012osz megoldas.pdf| 2012 őszi PótZH hivatalos megoldásai]]
*[[Média:Prog1 ZH 2013tavasz megoldas.pdf| 2013 tavasz ZH hivatalos megoldások]]
*[[Média:Prog1 ZH 2013osz megoldas.pdf| 2013 őszi ZH hivatalos megoldásai]]
*[[Média:Prog1 PZH 2013osz megoldas.pdf| 2013 őszi PótZH hivatalos megoldásai]]
*[[Média:Zh regi.pdf|2014 első ZH]]
*[[Média:PROG Nzh1 2015.c|2015 első ZH megoldással]]
*[[Média:Prog1 zh2 2021.c|2021/22 ősz második ZH]] - hivatalos megoldással
*[[Média:Prog1 zh 2021 pot.c|2021/22 ősz pót ZH]] - hivatalos megoldással
*[[Média:2024 nzh1 megold.c|2024 első ZH]] - hivatalos megoldással
*[[Média:Prog1 zh2 2024 megold.c|2024 második ZH]] - hivatalos megoldással
*[[Média:Prog1 pzh 2024 megold.c|2024 pót ZH]] - hivatalos megoldással
*[[Média:Prog1 ppzh 2024 megold.c|2024 pót-pót ZH]] - hivatalos megoldással
== IMSc ==
*A félév során négy szorgalmi feladatot adnak ki a tárgy Moodle felületén. Ezek teljesítésével 5-5 pontot lehet szerezni. (Ezek hasonlítanak a laborfeladatokra, de lényegesen nehezebbek.)
*Mindkettő nagyZH-ban egy pluszfeladat megoldásával külön-külön 6 pont szerezhető.
*A nagyházival kapcsolatos többletfeladatok megoldásával további 3 pont szerezhető. Ebből két többletfeladatot jelent az előkészítő munkaszakaszok (specifikáció, adatszerkezetek és algoritmusok terve) eredményeinek részletesebben kidolgozott és időben történő beadása, és egyet a tesztelési struktúra kidolgozása és dokumentálása.
== Tippek ==
== Tippek ==
*Egy nap alatt nem lehet megtanulni programozni. A programozás tárgy pont nem egy seggelős tárgy. Új gondolkodásmódot tanít, amit csak úgy lehet eredményesen az elmébe vésni, ha időről időre gyakorolja az ember. Házi feladatból meg egy is elég, és ezért vannak kisZH-k, hogy ezt az állandó készülést próbálják forszírozni.
*Egy nap alatt nem lehet megtanulni programozni. A programozás tárgy pont nem egy seggelős tárgy. Új gondolkodásmódot tanít, amit csak úgy lehet eredményesen az elmébe vésni, ha időről időre gyakorolja az ember. Házi feladatból meg egy is elég, és ezért vannak kisZH-k, hogy ezt az állandó készülést próbálják forszírozni.


*Programozni minden mérnöknek tudni kell. A tantárgy anyagának elsajátítása elengedhetetlen a villamosmérnök hallgatóknak is. Jellemzően ez a tárgy szokta a legtöbb nehézséget okozni azoknak az első féléves diákoknak, akik még semmilyen előképzettséggel nem rendelkeznek. Fel kell készülniük, hogy az első pár hétben nagyon erős lesz a tempó az előadásokon, azért ajánlott már az első héttől kezdve legalább heti 3-4 órát foglalkozni az anyaggal. A programozás nem csak tantárgy, hanem egy gondolkozásmód is egyben, amit csak sok gyakorlással és idővel lehet elsajátítani.  
*Programozni minden mérnöknek tudni kell. A tantárgy anyagának elsajátítása elengedhetetlen a villamosmérnök hallgatóknak is. Jellemzően ez a tárgy szokta a legtöbb nehézséget okozni azoknak az első féléves diákoknak, akik még semmilyen előképzettséggel nem rendelkeznek. Fel kell készülniük, hogy az első pár hétben nagyon erős lesz a tempó az előadásokon, azért ajánlott már az első héttől kezdve legalább heti 3-4 órát foglalkozni az anyaggal. A programozás nem csak tantárgy, hanem egy gondolkozásmód is egyben, amit csak sok gyakorlással és idővel lehet elsajátítani.  
== Kedvcsináló ==
* Pointer pointere: https://pointerpointer.com/


{{Lábléc_-_Villamosmérnök_alapszak_2014}}
{{Lábléc_-_Villamosmérnök_alapszak_2014}}