MIT Challenge

, Author

A következő 12 hónapban megtanulom az MIT teljes 4 éves informatikai tantervét, anélkül, hogy órákra járnék.

UPDATE: Az MIT Challenge már befejeződött. 2012. szeptember 26-án fejeztem be, alig 12 hónappal a 2011. október 1-jei kezdés után. Kattintson a “See More…” gombra bármelyik osztály esetében, hogy hozzáférjen a vizsgáimhoz, a hivatalos megoldásokhoz vagy az általam írt kódhoz.

Válaszok néhány gyakori kérdésre:

  1. Mennyit dolgoztam a kihívás alatt? Az elején nagyjából 60 órát/hét. Később inkább 35.
  2. Az MIT-n szereztél diplomát? Nem. Lásd a fenti beszélgetést a motivációmról, hogy a teljes képzést kredit nélkül végeztem el.
  3. Megtettél mindent, amit egy MIT hallgató csinál? Nem. A vizsgákat és a programozási projekteket egy olyan tantervhez csináltam, ami nagyon hasonlít az MIT sajátjához (néhány laborórát és humán tárgyakra vonatkozó követelményeket kellett kicserélnem más órákra). A kreditórák száma azonban ugyanaz. Nézd meg itt az MIT tényleges 4 éves CS tantervét összehasonlításként az enyémmel. (Megjegyzés: Ezt a linket frissítettük, mivel a régi már halott volt, azonban nem ellenőriztem, hogy történtek-e változások a CS tantervben azóta, hogy én elvégeztem az MIT Challenge-et)
  4. Tankönyveket vagy előadásvideókat használtál? Minden megtalálható az egyes órák “See More…” ablaka alatt. Kérlek, nézd meg, ha bizonytalan vagy az egyes óráknál.
  5. Milyen sorrendben végezted az órákat? Az alábbi sorrendben. Kivéve, hogy néhányat egyszerre vettél fel. Azonban ha ezt a sorrendet követte volna sorban, akkor nem maradna le semmilyen előkövetelményről.
  6. Maga osztályozta a munkákat? Igen. Kétségtelen, hogy ez némi hibalehetőséget jelent ahhoz képest, hogy egy professzor osztályozza a munkámat. A legtöbb vizsga azonban kvantitatív, megoldáskészletekkel, amelyekhez osztályozási rubrikák tartoznak, így ez némileg korlátozza a hibát. Bátorítok mindenkit, hogy nézze meg a tényleges vizsgaeredményeimet, és hasonlítsa össze őket a megoldásokkal. Sok olyan vizsgán, ahol hosszadalmas számításokat kellett elvégezni, megengedtem a részjegyeket, feltéve, hogy a kurzuson tanított fogalmakat helyesen alkalmazták. Úgy vélem, hogy a megadott osztályozás vitathatóan igazságos, de ha azt az erős álláspontot akarná képviselni, hogy bármilyen hiba (például egy mínuszjel elfelejtése) érvényteleníti az egész kérdést, akkor ez csökkentené néhány osztályzatomat. Átnéztem és újraszámoltam ezeket a szigorúbb megszorításokat, és ez a 18.01, 5.111, 18.03, 6.002 és 6.013 záróvizsgákat az átmenő küszöb alá helyezné (a többi 28 osztályra ez vagy nem volt hatással, vagy átmenő felett maradt). Úgy gondolom, hogy az eredeti osztályozás tisztességes volt, ha nem is tökéletes, de ezek a későbbi számítások megmutatják a részjegyek használatára vonatkozó döntésem hatását.
  7. Szerinted mindenkinek nem kellene egyetemre járnia, és helyette ezt kellene tennie? Természetesen nem. Én az egyetemen végeztem az alapképzésemet, és nem bántam meg. Az volt a célom ezzel a projekttel, hogy megnézzem, lehetséges-e – hogy feszegessem az elvárásokat azzal kapcsolatban, hogy milyen hosszú, milyen költséges és milyen konvencionális módon kell megszerezni az oktatást.

A számítógépek mindig is lenyűgöztek. A pénzügyektől a Facebookig az algoritmusok a rejtett nyelv, amely életünk nagy részének alapját képezi. Világunk legnagyobb átalakulásait kódban írjuk, és a mesterséges intelligencia fejlődése lehetővé teszi számunkra, hogy a számítógépek segítségével megértsük, mit jelent embernek lenni.

A gép költészetén túl az informatika mérhetetlenül gyakorlatias is. A kódsorokon vagyonokat szereztek és forradalmakat indítottak el.

Mindig is szerettem volna beszélni ezt a nyelvet. De nem akartam négy évet az életemből és több százezer dollárt befektetni, hogy megtanuljam.

Elkezdek ebbe a kísérletbe, mert meg akarom mutatni, hogy a tanuláshoz nem kellenek felvételi bizottságok és SAT tesztek, több ezer dolláros adósság, vagy akár az a 4 éves tempó, amit a legtöbb diák feltételez, hogy szükséges egy tárgy elsajátításához.

Meg fogok bukni? Ez mindenképpen lehetséges – nálam sokkal okosabb emberek küzdenek hatalmas munkaterhekkel az olyan intézményekben, mint az MIT, én pedig megpróbálom ugyanazt az anyagot 4x olyan sebességgel megtanulni, oktatók nélkül.

Mindössze annyit ígérhetek, hogy megosztom veletek, amit találok. Az alábbiakban felsorolom mind a 33 órát, amivel foglalkozni fogok. Mindegyikhez megírom a záróvizsgát, és összehasonlíthatjátok a válaszaimat az MIT hivatalos megoldásaival. Az esetleges kudarcokat is közzéteszem, így biztosak lehettek benne, hogy nem hagyom ki a hibáimat.

Post-MIT Challenge Update

Mióta a kihívás befejeződött, ezt a helyet arra használom, hogy megosszam néhány új kurzust, amit elvégzek, vagy programot, amit befejeztem az informatikával kapcsolatban.

  • WordSmith – Ez egy általam épített mesterséges intelligencia, amely Scrabble-t játszik. Ingyenes és nyílt forráskódú.

TANULÁSI ELJÁRÁS (33/33):

Kattints a címekre a videók megtekintéséhez, a kurzusok eléréséhez és az eredményeim megtekintéséhez

8.01: Fizika I – Klasszikus mechanika – ELVÉGZETT

Júliusban fejeztem be ezt a kurzust egy kísérleti kísérlet részeként, hogy lássam, képes vagyok-e elvégezni a teljes programot. A kurzus zseniális, Walter Lewin professzor elképesztő munkát végez a fizika életszerűvé tételében anélkül, hogy feláldozná az intellektuális szigorát. Megjegyzés: Ezt a kurzust az MIT eltávolította, egy másik változatot itt érhetsz el. Scott értékelése: Ez volt az első hivatalos kurzus, amelyet az MIT Challenge keretében végeztem el. A szilárd előadások jó érzéket adtak a számtan alapjairól a határértékektől kezdve a haladó integrálásig.
Scott értékelése: 4/5

18.02: Többváltozós számtan – TELJESÍTETT

Ez az óra az egyváltozós számtan alapelveit egynél több dimenzióra terjeszti ki. Nagyon hasznos tudni az elektromosság, a mágnesek, a fény vagy bármi más, 3D-s objektumokkal kapcsolatos dolog megértéséhez.
Scott értékelése: 4/5

8.02: Fizika II – Elektromágnesesség – TELJESÍTETT

Egy újabb óra, amelyet Walter Lewin professzor tanít, a demonstrációk lenyűgözőek. Szigorú azoknak, akik a technikai részletekre kíváncsiak, de mégis megközelíthető, olyan hétköznapi fogalmakat tárgyal, mint a szivárvány és a fémdetektor. Megjegyzés: Az eredeti kurzust, amelyen részt vettem, az MIT eltávolította. Itt van egy helyettesítő kurzus.
Scott értékelése: 5/5

6.01: Introduction to EE and CS I – COMPLETED

Ez egy jó kurzus, de nem ajánlom, ha nincs programozói múltad, mivel viszonylag kevés magyarázattal rögtön az objektum-orientációba veti bele magát. Nekem nagyon tetszett az AI és az állapotgépek haladóbb fogalmainak keverése az alaptanfolyamba. A tanfolyami jegyzetek ingyenesek és kiválóak, bár a hangsúly nagyrészt a robotikán van, amely speciális eszközöket használ, amelyekhez nincs hozzáférésem. (Mellékesen megjegyzem, sokan rámutattak arra, hogy az általam írt záróvizsga nem volt teljesen átfogó, a részletes válaszomat itt olvashatja) Megjegyzés: Az eredeti kurzust, amelyen részt vettem, az MIT kicserélte. Itt van egy csere.
Scott értékelése: 4/5

  1. A tananyaghoz ingyenesen hozzáférhet
  2. Kód letöltése
    • Projekt: State-Machine Library
    • Project: A* Pathfinding Algorithm
  3. Az én vizsgaeredményeim
  4. Actual MIT Solutions

5.111: Principles of Chemical Science – COMPLETED*

Jó bevezetés a kvantumkémiába, Lewis diagramok, sav/bázis és redox reakciók. Tartalmaz egy haladóbb részt is az átmeneti fémekről és a kristálymező-elméletről. Sajnos az órának nem volt életképes záróvizsgája, így kénytelen voltam a gyakorlati félévközi vizsgáimat használni az értékelés alapjául.
Scott értékelése: 4/5

7.012: Bevezetés a biológiába – TELJESÍTETT

Kiváló biológia kurzus, amely a biológiát a kísérletező szemszögéből vizsgálja, megalapozva a biokémia, az immunológia, a genetika és az ökológia alapjait. A tankönyv is jó kiegészítő, amely a felfedezésekhez vezető kísérleti gondolkodásmódot is bemutatja.
Scott értékelése:

18.03: Differenciálegyenletek – TELJESÍTETT

A differenciálegyenletek a számtan kiterjesztéseként lehetővé teszik komplex rendszerek modellezését és elemzését. Különösen fontos szerepet játszanak az elektrotechnikában, ahol ezek (és diszkrét megfelelőik) nélkülözhetetlenek az áramkörök, jelek és rendszerek megértéséhez. Az ehhez az órához kapcsolódó videóelőadások jelentős eltéréseket mutatnak a tananyag többi részétől, ami miatt némi időt vesztegettem.”
Scott értékelése:

6.02: Introduction to EE and CS II – COMPLETED

Ezt az órát nehezebb volt felvenni, mivel az MIT OCW-ben nincs hozzá óra. A megtanulása azt jelentette, hogy át kellett szitálni az MIT nyilvános archívumának többnyire rejtett zugait, hogy megpróbáljam megtalálni a jegyzeteket és a vizsgákat. Ennek egyik következménye, hogy a jegyzetekből teljesen hiányzott a szűrőtervezés, egy fontos téma, és képtelen voltam elvégezni a laborokat (6 & 7) vagy a vizsgarészeket, amelyek ezzel foglalkoztak. Nem volt záróvizsga, így mindhárom félévközi vizsgát kitöltöttem és együttesen osztályoztam őket.
Scott értékelése: 3/5

  1. Tananyag
  2. Laborfeladatok (figyelmeztetés nagy), Feladatutasítások/Fájlok
  3. A vizsgaválaszaim
  4. A tényleges MIT megoldások

6.042J: Matematika az informatikához – TELJESÍTETT

Gráfok, számelmélet, bizonyítás, valószínűségszámítás és számolás – csak néhány a témák közül, amelyeket ez a kiváló óra tárgyal. Videóelőadások nincsenek, de az ingyenes kurzus tankönyve hihetetlenül lebilincselő és magával ragadó. A feladatok gyakorlásához is rengeteg forrás áll rendelkezésre, érdekes kihívásokat kínálva.
Scott értékelése: 5/5

6.006: Bevezetés az algoritmusokba – TELJESÍTETT

Egy bevezetés az algoritmusokba és a komplexitáselméletbe. A kurzus jó lehetőséget nyújt az algoritmikus tervezési koncepciók (dinamikus programozás, mohó algoritmusok stb.) alkalmazására tényleges programozási problémákra, ami olyan konkrétságot ad ennek az órának, ami a 6.042J-ből hiányzott. Sajnos nem vettem észre, hogy a záróvizsga nem volt átfogó, mielőtt megírtam volna, ezért a gyakorláshoz készített tesztjeimet is mellékeltem. A feladatok nagy részét teljesítettem, azonban mivel nem voltak megoldások, ezért azokat osztályzat nélkül hagytam.
Scott értékelése: 18.06: Lineáris algebra – TELJESÍTETT

Kiváló videóelőadások és bőséges tananyag tette ezt az OCW katalógusának egyik legmegközelíthetőbb kurzusává. Prof. Gilbert Strang gördülékeny, könnyen érthető előadásokat tart. Az első vizsgám ebből az órából csak 56%-os volt, ezért úgy döntöttem, hogy még egy napot szánok a magasabb pontszámú vizsga megírására, amit alább írtam.
Scott értékelése: 5/5

6.041: Probabilistic Systems Analysis – COMPLETED

Ez a kurzus a valószínűségszámítás alapjait járja körbe a számtan segítségével, hogy a 6.042J-ben felvetettnél nehezebb valószínűségszámítási kérdéseket elemezzen. A tankönyv kifejezetten erre a kurzusra készült, így rendkívül hasznos.
Scott értékelése: 4/5

6.002: Ez a kurzus a digitális és analóg áramkörök alapjaival foglalkozik. A vizsga elég nagy kihívást jelentett, és ez volt az első vizsga, ahol tényleg kifutottam az időből. Sajnos a hivatalos megoldások csak MIT-hozzáféréssel elérhetőek, így nem tudom őket ide feltölteni összehasonlításként. Ez az óra sok későbbi EE óra alapjául szolgál, így biztos vagyok benne, hogy lesz még alkalmam igazán megmérettetni magam az alapfogalmakból.
Scott értékelése: 4/5

6.046J: Design and Analysis of Algorithms – COMPLETED

Egyike az eddigi kedvenc kurzusaimnak! Az óra az algoritmusok néhány haladóbb, a 6.006-ban nem szereplő fogalmát vizsgálja, mint például bizonyos problémák NP-teljes voltának bizonyítása, közelítő algoritmusok, titkosítás, szublineáris algoritmusok és párhuzamos feldolgozás. Óvatosnak kellett lennem, mivel ennek a kurzusnak az OCW verziója még az MIT tantervváltása előtt készült, amikor a 6.006-ot felvették, így lényegesen könnyebb anyagot fed le, mint a jelenlegi verziók.
Scott értékelése: 5/5

6.034: Artificial Intelligence – COMPLETED

Great class that covered a survey of different AI techniques including search, constraint propagation, neural networks, kernel machines, concept learning and natural language processing. Ezen az órán 6 feladatot is teljesítettem, amihez meg kellett tanulnom a Scheme programozási nyelvet. Az egyik kihívást a vizsgák megírása jelentette ebből az osztályból a tananyag változatossága miatt, mivel nagyon sok különböző technikával foglalkoztak, és a sajátosságok óráról órára különböztek.
Scott értékelése: 5/5

6.003: Ez az óra a jel- és rendszerelemzés alapjait tanítja, kiterjesztve az először a 18.03-ban tárgyalt matematikai technikákat. Bár nem csak az áramkörökhöz hasznos, az óra különösen fontos az olyan dolgok megértéséhez, mint a frekvenciamoduláció, a hangszűrők, a zajcsökkentés, és még a képelemzés és -manipuláció alapjául is szolgál. Ez volt az első vizsga is, amit kezdetben elbuktam, szerencsére javítottam, és második próbálkozásra 69%-ot értem el. Megjegyzés: Az eredeti tanfolyam, amelyen részt vettem, már nem elérhető. Itt van a helyettesítője.
Scott értékelése:
Scott értékelése:
Scott értékelése:
Scott értékelése: 4/5

6.004: Computation Structures – COMPLETED

Nagyszerű óra, amely az elektrotechnika és az informatika közötti átjárást tanítja. A tervezési projekt egy kapuszintű CPU specifikáció megépítését foglalta magában, vagyis az áramkörök megépítését, amelyek lehetővé teszik a számítógép megépítését. Az egyetlen gyenge pont az volt, hogy az óra viszonylag kevés anyagot tartalmazott, azonban a feladatok és a laborok erősen támogatottak.”
Scott értékelése:

  1. A tananyaghoz ingyenesen hozzáférhet
  2. Laborok és projektek(Megjegyzés: A fájlok futtatásához BSim és JSim szükséges. Ezek szabadon letölthetők a tanfolyam oldaláról)
  3. A vizsgám
  4. MIT Official Solutions

24.241:

Bevezetés a mondat- és predikátumszámításba, azok levezetési rendszereibe és metateoretikus bizonyításaiba. Az órát elég száraznak és technikai jellegűnek találtam, de az óra jó gyakorlatot nyújtott a szigorúbb bizonyítási módszerekbe, szemben az informatika órákon tanított informálisabb stílusokkal. Sajnos a dolgozatom javításához használt vizsgaválaszok nem nyilvánosak, így nem tudom őket itt közzétenni.
Scott értékelése:

14.01: Principles of Microeconomics – COMPLETED

Mikroökonómiát már tanultam, amikor a gazdasági diplomámat szereztem, így ennek a kurzusnak a túlnyomó része egy ismétlés volt. Mivel azonban az MIT sokkal erősebb matematikai alapokkal rendelkezik, mint az alma materem, üdítő volt látni sok fogalom szigorúbb technikai definícióit. Kicsit kevesebb, mint négy napot töltöttem ezzel a kurzussal, így a legtöbb hibám abból adódott, hogy elfelejtettem a technikai definíciókat és képleteket, mivel a vizsgán egyiket sem adták meg: 3/5

6.033:

Egy hasznos óra, amely a számítógépes hálózatok, a titkosítás, a kliens-szerver paradigma és az internet alapjait tanítja. Az óra egy részét ismétlődőnek találtam a 6.004 és a 6.02 után, amelyeknek átfedő tartalma volt, de így is hasznos volt. Elkövettem azt a hibát, hogy nem koncentráltam eléggé az olvasási feladatokra, mivel a tanulás nagy része onnan származik.
Scott értékelése: 4/5

6.013: Kétségtelenül a legnehezebb óra, amit eddig a programban vettem fel. Az óra nagymértékben használja a vektorszámítást, a transzformációkat és a komplex jelölést, amellett, hogy általánosságban kiterjeszti a 8.02-ben tanított elektromágnesesség alapelveit. A 6.003, 6.002, 18.02, 18.03 és 8.02 témaköreinek alapos ismerete jó ötlet, ha meg akarja próbálni ezt az órát. Csak épphogy átmentem a vizsgán, így ez mindenképpen egy olyan téma, amit a jövőben valamikor szeretnék újra átnézni és finomítani, mivel sok érdekes gondolatot fejezett ki.”
Scott értékelése: 3/5

14.02: Makroökonómia alapjai – MEGVÉGZETT

Makroökonómiával már korábban is foglalkoztam, amikor az alapdiplomámat végeztem, így ez leginkább csak ismétlés volt. Ennek ellenére úgy gondoltam, hogy a kurzus MIT-s változata és a segédanyag sokkal közérthetőbb volt. Remek kurzus, ha a gazdaság egészét akarod megérteni. Megjegyzés: Az eredeti kurzust, amelyen részt vettem, az MIT kapcsolta át. Itt van egy csere.
Scott értékelése: 3/5

24.242: Ez az óra teljes egészében 8 házi feladatra épült, így a vizsgaanyag mennyisége, amin végigmentem, sajnos gyengébb volt, mint sok másé. Ennek ellenére imádtam ezt az órát, mivel Godel befejezetlenségi tételei az egyik legmélyebb gondolatot képviselik, amit valaha is láttam egy órán.
Scott értékelése: 5/5

6.011: Ez az óra a 6.003, Signals and Systems (Jelek és rendszerek) bővítése volt. A jelanalízis és a szűrők alapfogalmait veszi át, és kiterjeszti az állapot-gép ábrázolásokra és a sztochasztikus jelekre. A véletlenszerű jelek bevonása nagyon hasznos a zaj kezelésében, így az ebben az osztályban szereplő fogalmak közül sok gyakorlatiasabb, mint a 6.003-ban szereplő ideális megfelelőik. Az ingyenes tankönyv/tanfolyami jegyzet nagyon hasznos volt.
Scott értékelése: 4/5

24.244:

A modális logika a lehetőség és szükségszerűség logikája, és kibővíti az alapvető predikátumkalkulust. Érdekes logikát tanulmányozni, mert a felvett axiómáktól függően (deontikus, aletikus, tenzuális stb.) sokféle logikai rendszert képviselhet. A záróvizsga házi vizsga volt, így két nap alatt teljesítettem.”
Scott értékelése:

14.20: Ipari szerveződés – TELJESÍTETT

A közgazdaságtani kurzusok általában leegyszerűsítik az elemzést azzal, hogy tökéletes versenyt vagy monopóliumot feltételeznek. Ez az óra feloldja ezt a feltételezést, és azt vizsgálja, hogy a vállalatok hogyan versenyeznek egymással stratégiai szempontból. Ez az óra igazán felkeltette az érdeklődésemet a játékelmélet megismerése iránt. Sajnos nem vettem észre, hogy a minta záróvizsga meglehetősen korlátozottan fedte le a tartalmat, de ez volt a legjobb, amit tehettem.
Scott értékelése:

14.23: Government Regulation of Industry – COMPLETED

Az óra tartalma nagyon hasonló volt a 14.20-hoz, bár inkább a történelmi kontextusra és a politikai keretre koncentrált, mint a játékelméleti oldalra. Érdekes óra, a tankönyv olvasmányos részei elég hosszúak voltak (közel 900 oldal), azonban a matematikai elemzés szintje könnyű volt, így könnyű olvasmány volt.
Scott értékelése:

14.48J: Economics of Education – COMPLETED

A kihívásom jellegét tekintve ez egy szórakoztató óra volt, mivel az oktatás különböző elméleteit vizsgálta. Az óra nagy részét úgy éreztem, mintha az alapvető ökonometriáról folytattam volna vitát, mivel úgy tűnik, hogy a szakirodalom számos alapvető elképzelés tekintetében nem egyértelmű (jobbak-e a kisebb osztályok? működnek-e az utalványprogramok?). Az óra az oktatás standard humántőke-elmélete és a jelátviteli magyarázat közötti különbségeket is feltárta, bár a bemutatott szakirodalom megint csak többnyire nem volt meggyőző.
Scott értékelése: 3/5

6.005:

Ez az MIT kötelező szoftverfejlesztés órája. Nehéz volt, nem azért, mert túl intellektuálisan megterhelő, hanem a munka mennyisége miatt. Áll 3 csoportos projektből, 3 egyéni projektből és több laborból (feladat, önállóan is). Haboztam, hogy elvállaljam-e ezt az órát, mert a kihívás időigénye miatt nehéz ilyen órákat vállalni, azonban végül úgy gondoltam, hogy az egyetlen megoldás az, ha egyszerűen elvégzem az összes munkát.

Az órát körülbelül 3 hét alatt sikerült befejeznem, körülbelül két hónapra elosztva. Ez volt az egyik leghálásabb óra, még ha a legidőigényesebb is. Szerettem volna tovább maradni az egyes projektekkel, különösen az utolsó azonnali üzenetküldő alkalmazással, amit a semmiből építettem, hogy több funkcióval díszítsem. Az óra kiváló választás, ha már kezdő programozó vagy, de szeretnél több magas szintű tervezési ötletet megtanulni, hogy ne csak működő, hanem jól megtervezett kódot írj.

Az összes általam írt projektet feltettem ide, bár a futtatásukhoz telepített Java-ra lesz szükséged. A három tervezési projekt leírását is mellékeltem (elnézést a szkennelések kontraszthiányáért!)
Scott értékelése: A tananyaghoz ingyenesen hozzáférhet

  • All Code
  • Project Write-Ups
  • MIT Provided Material and Assignment Specs
  • 6.801:

    Ez az óra megtanítja a számítógépes algoritmusok használatának alapjait a látáshoz, elsősorban a robotok irányításának összefüggésében, hogy azok a képek alapján műveleteket hajtsanak végre. A témakörök között szerepel a bináris képfeldolgozás, az élérzékelés, a Gauss kiterjesztett felületek, a tájolás és a fotogrammetria. A kurzust két hazavihető kvízzel értékeltük, és a kihívás során felvett két végzős szintű órám egyikének számított.

    Az óra összességében nagy kihívást jelentett, a Fourier-analízis, a vektorszámítás, a lineáris algebra, a kvadratikus programozás és a variációszámítás technikáit használta, így valószínűleg ez volt a legnagyobb kihívást jelentő óra, amit a matematika alkalmazásából vettem fel. Sajnos nem voltak programozási feladatok, ami érdekes lett volna.
    Scott értékelése: 5/5

    1. A tananyaghoz ingyenesen hozzáférhet
    2. A vizsgáim
    3. MIT Official Solutions (and Questions)

    6.837: Computer Graphics – COMPLETED

    Ez az óra a számítógépes grafika alapjait tanítja, elsősorban a sugárkövetést, bár a scanline módszereket is tanítják. Az értékelés kizárólag a feladatokon alapult (volt két kisebb számonkérés, de azokhoz nem volt megoldás, így nem használtam őket). A feladatok egy alapvető sugárkövetéssel és lapos árnyékolással kezdődtek, majd fokozatosan építették fel a sugárkövetőt, hogy tartalmazzanak matt árnyékolást, fényes tükröződéseket, vetett árnyékokat, áttetsző felületeket törésmutatóval, tükörreflexiót és procedurális textúrázást. Egy projektet készítettek egy rácsgyorsító adatszerkezet létrehozására is, amelynek nincs vizuális hatása, de jelentősen felgyorsítja a grafika viszonylag lassú sugárkövetéses megközelítését.

    A felhasznált programozási környezetre vonatkozó részleteket a kód README.rtf fájlja tartalmazza. A fájl elég nagy, de tartalmazza az összes renderelt képet is, így akkor is megnézheted a kimenetet, ha nem fordítod/futtatod az adott jeleneteket. (Összehasonlításképpen a MIT hivatalos kimenetei sample_res.pdf formátumban szerepelnek minden egyes feladathoz, így láthatod, hogy az én raytracerem hogyan viszonyul hozzá). Megjegyzés: Az eredeti kurzus, amelyen részt vettem, megváltozott. Itt van egy csere.
    Scott értékelése: 5/5

    1. A tananyaghoz ingyenesen hozzáférhet
    2. A kódom
    3. MIT Suppled Code (and Sample Answers)

    COSC 545: Ez az óra nem egy MIT kurzus volt, hanem a Georgetown Egyetemen Cal Newport által oktatott számításelméleti kurzus a Georgetown Egyetemen. Ezt a témát nagyon szerettem volna tanulmányozni, miután élveztem az MIT mindkét algoritmus kurzusát, de az MIT komplexitáselmélet kurzusából hiányoztak az általam használható kiértékelési eszközök. Néhány érdekes gondolat a kurzusból: milyen típusú problémák oldhatók meg algoritmusokkal (vagyis van egy eljárás a probléma bármelyik példányának megoldására), valamint a bizonyos osztályok megoldásához szükséges sebességre és memóriára vonatkozó korlátozások.

    Kiterjedten tárgyalja a matematika egyik legfontosabb és megoldatlan problémáját is, azt, hogy P=NP-e. A válaszától függően mélyreható következményei lennének a társadalomra nézve, és a több évtizedes munka és a megoldásáért járó egymillió dolláros díj ellenére senki sem tudta megválaszolni.

    Két vizsga volt, amelyeket én írtam és osztályoztam, mert nem kumulatívak voltak.
    Scott értékelése: 5/5

    1. A tananyaghoz ingyenesen hozzáférhetsz
    2. A vizsgáim

    My MIT Challenge TEDx Talk

    FAQ for the MIT Challenge

    1. Milyen szabályokat követsz?
    2. Megcsinálod az összes feladatot, dolgozatot és projektet?
    3. Eltér a tanterved az MIT-étől?
    4. Mi történik, ha megbuksz egy órán?
    5. Miért csinálod ezt? Csak szeretsz tanulni?
    6. Diplomát kapsz ezért?
    7. Sorozatosan csinálod az órákat, az nem csak magolás a vizsgákra?
    8. Milyen korábbi tapasztalatod van a témában?
    9. Blogger/riporter/újságíró vagyok – hogyan léphetnék kapcsolatba veled, hogy megoszthassam a történetet?

    Q) Milyen szabályokat követsz?

    Mivel nem vagyok beiratkozva az MIT-re (és semmilyen módon nem állok kapcsolatban velük), saját szabályokat kellett alkotnom, hogy a kihívás tisztességes, mégis megvalósítható legyen. Az alapvető szabályok egyszerűek:

    1. Egy órát akkor tekintek sikeresen teljesítettnek, ha át tudok menni a záróvizsgán (ami általában azt jelenti, hogy legalább 50%-os jegyet kapok, bár sokkal magasabbra törekszem).
    2. A vizsgát ugyanazok a megkötések mellett írom, mint egy diák: nem nézem meg előre a kérdéseket vagy a megoldásokat, nincs jegyzet vagy tiltott anyag, ugyanazok az időkorlátok (az alapértelmezett 3 óra, ha nincs megadva).
    3. A dolgozatokat magam osztályozom, összehasonlítva azokat a tényleges MIT megoldásokkal. Mindkettőt közzéteszem, így bárki ellenőrizheti az osztályozási módszeremet.

    Ne feledjétek, hogy ezek csak a kihívásom minimális követelményei. Azokon az órákon, amelyeknek jelentős programozási összetevője van, megpróbálok reprezentatív programozási feladatokat készíteni, amennyire ez lehetséges.

    Q)Minden feladatot, dolgozatot és projektet megcsinálsz?

    Az elméleti vagy matematika alapú órák esetében a záróvizsga általában átfogó értékelési alap, így azokat fogom használni értékelésként. A feladatok és tesztek nagy részét vagy egy részét még mindig elvégzem felkészülésként, de mivel nem tudom fenntartani a következetességet e kritériumok tekintetében a teljes kihívás során (sok feladat vagy nem áll rendelkezésre, vagy lehetetlen objektíven értékelni), ezeket informális módon végzem el.

    A jelentős mennyiségű programozási munkát vagy gyakorlati tervezési problémákat tartalmazó órák esetében megpróbálom a legtöbb feladatot elvégezni. Mivel azonban ezeket nehezebb értékelni, ezeknél az óráknál továbbra is a záróvizsgákra támaszkodom, mint fő kritériumra.

    Q) Eltér a tanterved az MIT tantervétől?

    Majdnem egy hónapig próbáltam összerakni az MIT tényleges informatikai tantervének legközelebbi tükörképét, amit követni tudnék. Sajnos ezt nem tudom tökéletesen megtenni, mivel néhány órát lehetetlen értékelni (beleértve a laborokat és a kutatási órákat), másokhoz pedig nem volt online hozzáférésem.

    Az MIT tényleges diplomájával megegyező kreditóraszámot veszek fel, így ahol egy órát nem tudtam felvenni, azt egy hasonló alternatívával helyettesítettem. A megtanulandó tudás mennyiségét tekintve tehát a tantervem hasonló ahhoz, amit az MIT javasol a diákjainak.

    Az egyetlen másik kivétel az MIT-vel szemben a választható tárgyakhoz kapcsolódik. Különböző nem informatikai tárgyakat veszek fel, hogy a lehető legjobban utánozzam az MIT diákjainak HASS követelményeit. Ezek nem felelnek meg tökéletesen, mivel a művészeti tárgyak online tananyagai lényegesen gyengébbek, mint a természettudományoké az MIT-n.

    Az MIT tényleges informatikai tantervét itt láthatja.

    Q) Mi történik, ha megbukik egy órán?

    A tempót tekintve, amivel próbálkozom, azt hiszem, elkerülhetetlen, hogy megbukjak egy órán. A fő követelményem az, hogy a záróvizsgát sikeresen teljesítsem, így ha megbukom, akkor megengedem magamnak, hogy utána egy másik vizsgát tegyek.

    A stratégiám az, hogy a bukást választom, hogy hatékonyabban gazdálkodjak az időmmel azokon az órákon, ahol több záróvizsgám van, amit az értékelés alapjául használhatok. Ez nagyon különbözik az egyetemtől, ahol egy kudarc igazi visszaesést jelenthet. Ez az önképzés egyik előnye a merev formális intézményekkel szemben.

    Q) Miért csinálod ezt? Egyszerűen csak szeretsz tanulni?

    Senki sem szeret tanulni, de mindenki okos akar lenni. A tanulás, az ilyen felismerésekhez való eljutás és az, hogy okosabbnak érzed magad egy témában, mérhetetlenül kifizetődő. Kár, hogy sokan elfelejtettük ezt a büntető formális oktatás évei után.

    Elismerem, lehet, hogy egy kicsit őrült vagyok, vagy arrogáns, amiért egy 4 éves programot mindössze 12 hónap alatt akarok elvégezni. Az igazi motivációm azonban az, hogy megmutassam az embereknek, hogy gyorsabban is lehet tanulni, és közben még szórakoztatóbb is lehet.

    K) Kap érte diplomát?

    Nem, és pontosan ez a lényeg. Társadalmunk helytelenül teszi egyenlővé a tudást az akkreditációval. Egy darab papír megszerzése nagyszerű, és sok munkaterületen teljesen szükséges. De az egyenlőségjelet olyan erősen teszik, hogy az emberek elfelejtik, hogy a két dolog különbözik egymástól.

    Az írói és kisvállalkozói karrierem már megvan. Soha nem akarok nagyvállalatnál dolgozni, ahol a HR-esek esetleg a diplomám hiánya miatt vizsgálódnának. Számomra csak informatikát akarok tanulni arra az esetre, ha új vállalkozást akarok indítani, vagy egy start-up cégnél akarok dolgozni.

    Nekem semmi bajom a főiskolával. Az egyetem számomra csodálatos és értékes élmény volt, és neked is az lehet. Csak azt remélem, hogy egy alternatíva bemutatásával azok, akik úgy érzik, hogy a jelenlegi rendszer nem működik számukra, más utat találhatnak.

    Q) Ez nem csak magolás a vizsgákra?

    Nem, de a különbség finom. A legtöbb óra a korábbi fogalmakra épül, így mindegyiknél az a célom, hogy olyan mély megértést alakítsak ki, amit hasznosítani tudok. A magolás jellemzően a memorizáláshoz való folyamodás, hogy gyorsan átmenjek egy vizsgán, aztán elfelejtsem. A megértés nehezebb, de nem feltétlenül időigényesebb (és követelmény, ha minden óra az előzőre épül).

    A frissítés: Az első négy óra óta egyszerre 3-4 osztályt folytatok párhuzamosan. Bár ez a tipikusnál jóval rövidebb idő alatt történő átismétlést jelent (1 hónap 1 félév helyett), növeli a szakaszos ismétlés előnyeit.

    Végső soron az lesz a módszerem próbája, hogy képes vagyok-e megérteni és megfelelően teljesíteni a magasabb szintű órákon, mivel a legtöbb elsős osztály elsősorban a nehezebb felsőbb osztályok megalapozására szolgál.

    Q) Milyen korábbi tapasztalata van a témával kapcsolatban?

    Amikor még középiskolás voltam, elég sokat programoztam, főleg kisebb számítógépes játékokat készítettem. Ezen kívül 4 egyetemi szintű informatika órát vettem fel, amikor a Manitobai Egyetemre jártam üzleti diplomát szerezni. Igen, van némi korábbi programozási tapasztalatom, ami előnyt jelent majd a kihívás során. Ettől függetlenül az előzetes tudásszintem valószínűleg nem áll messze a MIT-re ténylegesen járó és a tanterv alapjául szolgáló sok CS-hallgatótól.

    Ezeken kívül 2011 júliusában elvégeztem a 8.01 Klasszikus mechanika című első kurzust, mint a fő kihívás kísérleti kísérletét. Ezért a 12 hónap alatt megkísérelt órák száma hivatalosan 32.

    Q) Blogger/riporter/újságíró vagyok – hogyan léphetek kapcsolatba Önnel, hogy megosszam a történetet?

    Elérhet a [email protected] címen, vagy használhatja az itt található űrlapot. Eléggé elfoglalt leszek (nyilvánvaló okokból), így előre is elnézést kérek, ha eltart egy ideig, amíg átfutom az e-maileket, mivel általában offline vagyok, amikor egy kurzuson dolgozom.

    Vélemény, hozzászólás?

    Az e-mail-címet nem tesszük közzé.