>> Okej.
Välkommen till Computer Science 164.
Så innan vi dyker in med en översikt
av vad kursen kommer att om den här terminen och lite
av material i denna första dagen, Jag trodde att jag skulle ge dig en känsla
om hur vi tillbringade i går kväll.
Det är inte så mycket som serversidan utmaning vi står inför
men en klientsidan en.
Så har någon av er upptäckt denna webbplats ännu
eller Canvas som vissa Harvard kurser är nu att flytta till?
Så Genwi är på väg att dö en långsam döden om du har fått fäst
till det, är det troligt att ersättas med kanfas.
Och så vi trodde vi hoppa ombord och vara en del
av denna beta test med Canvas som är ett open source verktyg.
Den är sponsrad av en företag som heter Instructure.
Så det finns en företagskultur uppbackning bakom det.
Men för det mesta vi använder det på det sättet.
Men igår kväll när vi försökte
att få kurserna hemsida slutförts, sprang vi in ​​en hel del
av frustration eftersom detta är en lärplattform
vilket betyder att det är en mjukvara
med vilken du kan hantera innehåll
med hjälp av webbaserat gränssnitt.
Du behöver inte använda svårbegripliga konfigurationsfiler.
Du behöver inte veta någonting om databaser,
det är ganska mycket poäng och klicka på ett sätt Google-webbplatser
eller något liknande skulle kunna vara.
Men som ett resultat det var förbaskat svårt att göra något enkelt som -
låt oss gå till kurser hemsida.
Nu satte bara menyalternativ i denna vänster sida.
Ett typexempel, det finns inget det faktiskt just nu
eftersom det sätt programvaran är utformad är att om du vill
att installera saker i din vänstra menyn,
du måste faktiskt installera dessa moduler
eller program i mjukvaran.
Och vi vill inte göra det här.
Vi ville bara ha en länk att vilja kursplanen.
Vi ville ha en länk till personalen.
Vi ville ha en länk till filmer och liknande.
Så om du ställdes inför med webbplatser,
det är från tredje parts webbplats
men du har ingen kontroll över källkoden.
Du har inte tillgång till den server, kan du inte köra SSH,
du kan sftp, allt du kan använda är den lokala webbgränssnittet
och du vill börja ändra
eller förändra användaren gränssnitt via andra medel.
Vad kan din första instinkt vara?
Vilka frågor kan du ställa av Instructure i det här fallet,
företaget så att du kan typ av arbete
runt dessa begränsningar som vi gjorde?
Vi vill lägga till menyalternativ
men vi kan inte ändra deras server kod.
Vad lösning skulle det antyda att?
Yeah.
[Ohörbart Anmärkning]
OK.
[Ohörbart Anmärkning]
Yeah. Så vi kunde överväga något
som en Chrome förlängning.
Om inte bekant, en Chrome förlängningen är i huvudsak ett stycke
av programvara från Chrome browser allmänt skriven
i JavaScript.
Och det är bara ett sätt att injicera kod typiskt JavaScript kanske
några CSS till en bana sida som du besöker.
Varvid Chrome förlängning är precis hela tiden övervaka vad
webbplatser du besöker och försöker upptäcka.
Åh, om du är facebook.com göra detta.
Åh om du är i isites.harvard.edu gör detta.
Så de av er som kanske har använt CS50 s 2x plugg
in som tillåter dig att snabba upp filmer är just det.
Så det är intressant och det är typ av på rätt väg.
För om du inte har tillgång till servern, du bara vill
att på något sätt ändra DOM den träd som användaren ser,
du kan ganska mycket bara göra det på klientsidan.
Nu naturligtvis en uppenbar fångst
för att använda en krom förlängning är vad?
Rätt. Så inte alla använder Chrome och det känns typ av Lama
om du liksom måste att uppdra att alla
av dina användare kan endast använda webbplatsen
och se menyalternativ om de har Chrome.
Så vad annat kan vi kanske vi vill fråga Instructure?
>> Så en sak är jag antar du kan nog lägga till en text
på hemsidan, eller hur?
>> OK.
>> Ta reda på om du kan faktiskt sätta HTML i text.
>> OK. Bra.
Så vi kan fråga dem om vi kunde sätta HTML i själva texten.
Så i stället för att lägga in en text tillkännagivande, kan vi lägga till länkar?
Kan vi lägga till bilder?
Kan vi lägga till punkter?
Något som vi kanske vill göra estetiskt.
Och det korta svaret är ja.
Det är verkligen en slags WYSIWG,
Vad du ser är vad du Få editor som kommer
med just denna mjukvara
som tillåter dig att redigera.
Saker som hemsidan med mitt namn och Robs
och Tims och så vidare.
Och det fick oss en del på vägen dit.
Tyvärr som inte Låt oss sätta något här
till exempel.
Som inte låter oss sätta något här eftersom vi är begränsade
av vad den ursprungliga Författarna ville att vi skulle göra.
Så vi är ett steg närmare.
Vad annat kan vi be företaget?
Vilka är de andra lösningar kanske?
Det måste kunna lösas.
Vad mer kan du göra?
Så du var på rätt spår med detta begrepp
av JavaScript på klientsidan injektion.
Hur annars kan vi få JavaScript till tomten kanske, eller hur?
"Orsak när du har JavaScript
du kan ganska mycket göra något även om din erfarenhet
med Javascript är begränsat till 50 eller någon annan tidigare erfarenhet,
du vet, att du kan genomlöpa trädet
det är en webbsida, DOM.
Ni minns säkert att du kan tillfoga noder eller ta bort noder.
Du kan injicera saker in i en webbsida.
Faktum är att det är precis vad de CS50 2x koppla in gör.
Det sliter ut Genwi " videospelare och sätter
i en annan alla tillsammans.
Så vad händer om företaget Instructure tillåtit
att injicera JavaScript in i din kurs hemsida?
Med andra ord, vad händer om de tillät dig via deras GUI,
deras WYSIWG gränssnitt till klistra in webbadressen till en JS-fil
och kanske till och med en. css-fil och sedan de tog hand
av processen för att sätta in den högst upp på varje sida.
Så säker nog, var detta det enda sättet vi kunde
att uppnå detta.
Om jag visa sidan käll här - och låt mig zooma in och söka
för cs164.net som är en domän vi kursen äger.
Lägg märke till att via någon serie av steg, det tog ett tag att räkna
med sin dokumentation.
Vi vi kan säga, ovanpå varje webbsida vilken Canvas utgångar
för denna kurs, utgång. css-fil.
Och om vi gör ett annat kommando f och söka lite längre,
du ser att här nere,
kapslade med i vissa JavaScript koden finns också nämna
av denna URL här.
Så med andra ord är vi slags har lurat dem
in injicera vad CSS,
oavsett JavaScript vi vill in på webbplatsen.
Så att då väcker fråga, vad gör det?
Nåväl, låt oss gå vidare och bara ta denna källa,
klistra upp här.
Det är förbjudet på grund att simulera detta,
Jag chmoded [fonetisk] allting.
Så låt mig ge det tillbaka.
Läs åtkomst och nu ladda om.
Så vad gjorde vi?
Så får du bättre på detta särskilt i mitten av terminen
när vi tillbringar mycket vår tid på JavaScript.
Men vad gör detta verkar göra?
Så en högst upp i den här JS-fil som återigen finns med
i varje webbsida som den Kursen löper nu på hemsidan.
Vi kontrolleras för att se om den typ av jQuery är inte odefinierad.
Så i lekman sikt vad betyder det?
Vad skulle det betyda om jQuery är odefinierad?
Tja, har du JavaScript laddad.
Du har inte jQuery laddad.
Så vi bara hoppas att Instructure,
företaget faktiskt är använder jQuery själva.
Annars skulle vi behöva klistra jQuery biblioteket ovanpå
i denna fil så för att få tillgång till den.
Och det är inte för att jag helt enkelt vill ha tillgång till saker
liksom dollartecken notation och andra funktionellt
som kommer med jQuery.
Om ni minns det här bibliotek och om obekanta
eller om det har varit ett tag, vila säker på att vi ska komma till detta
med i några veckor.
Så vad är det vi gör här?
Så för dem som kanske kommer ihåg, vad innebär det syntax här betyda?
När du bara skicka en anonym funktion eller lambda-funktion?
I CS51 tala med jQuery funktion som denna.
Då är den här koden kommer att få avrättas?
Yeah.
[Ohörbart Anmärkning]
Exakt. Så här koden av naturen
av denna standard funktionsanrop kommer bara att bli avrättade
när DOM så att tala är fullastad.
Samtliga av HTML toppen till botten, vänster eller höger har läst
i minnet och det finns några trädstruktur inuti minnet.
Nu är det här bra eftersom om jag vill börja spela
omkring med den och ändra Menyalternativ, ta bort saker,
lägga till saker, skulle jag bättre vänta
åtminstone fram till Standard DOM är på plats.
Så detta är bara standard jQuery syntax.
Det är detsamma som att säga när DOM är redo.
Och nu är det verkligen bara en kombination
av jQuery syntax och lite HTML.
Så till exempel, bestämde jag att detta var bara stör mig.
Ingen på campus säger, åh, tar du Comp Sci 164,
eller Comp Sci vad, du säger CS164 eller CS vad.
Så liten liten olägenhet, Vi vill ändra på det,
så hur kan vi göra det med något i stil med JavaScript?
Tja, varsel, om jag gå till sidan här
och på toppen av sidan, tidigare var CS164.
Om jag öppnar Chrome, vilket är en bra webbläsare
för att göra DOM inspektioner och du zooma in här.
Lägg märke till att insidan av denna HTML var ett element som hade en ID-
av ströbröd och att ID gör vad?
Det identifierar en av dessa noder i trädet
och så fort jag har unik identifierare för en bit
av HTML i DOM, nu Jag kan göra vad jag vill
med denna webbsida.
Jag kunde ta bort alla DOM-nod.
Varje HTML-taggen på sidan och lägga något som jag vill ha
men behov vi är ganska ödmjuk.
Jag ville helt enkelt för den kodsträng här.
Jag ville först hitta avsnittet flikarna header
som var en av moder element precis ovanför det.
Och jag ville gå framåt och förändring -
Jag ville hellre förändring innehållet
av att via denna hmtl fungera till en länk till CS164
och då jag ville förändra CSS på det
att ha ett typsnitt vikt fetstil.
Och vi kommer inte att gå in i detalj på resten av detta här.
Men märker denna linje här.
Jag gjorde en global ersätta överallt.
I huvudsak säger, var du ser en spännvidd
som har en klass kallas ellipsible,
det är inte en vanlig sak,
Det är precis vad de Canvas programvara kallar vissa klasser.
Om det innehåller nyckeln fras COMPSCI164 gå vidare
och ersätta HTML insida någon sådan spännvidd med bara CS164.
Och resten av det här är ganska väl kommenterade.
Men slutresultatet, vad jag är gör är manuellt med Chrome
eller alla webbläsare räkna ut vad de unika identifierare är
olika DOM-noder i träd och mutera dem
på det sätt som jag ville.
Och slutresultatet, nu när Vi chmoded saker på rätt sätt är
som nu kan jag sätta ett godtyckligt bit av HTML hit.
Jag kan slita ut saker som sidfoten.
Jag kan slita ut HTML hit och Jag ska vinka en stor ansvarsfriskrivning.
Detta är en komplett hacka
att genomföra en webbplats som denna.
Men det slags talar till tankeprocess
att om mot mitten av terminen,
speciellt när vi umgås på JavaScript få dig att tänka
om hur man kan lösa olika problem förhoppningsvis bättre
än på detta sätt.
Men ingredienserna för att lösa ett problem
så här egentligen bara reduceras till några grunderna.
Att öppna upp för något som Chromes Inspector
och förståelse vad DOM-trädet är.
Att veta vad CSS-väljare är
för unika ID: n eller för klassnamn.
Att känna några syntax huruvida det är i JavaScript ren
eller i jQuery biblioteket att faktiskt ändra DOM.
Och i slutet av dagen, vi är ganska mycket kompetent
att böja programvara till vår vilja.
Men det är nog en hake.
Vad är priset vi förmodligen betala för detta kompletta hacka?
Vad är riskerna?
Yeah.
[Ohörbart Anmärkning]
Exakt. Om Instructure döper en av sina klasser
eller döper om en av deras ID eller bara ordnar deras HTML
som är helt deras privilegium,
allt detta kan bryta och då en av oss kommer att ha
att märka det eller någon av er killar kommer att behöva rapportera
och vi kommer att ha att tänka över det igen.
Så kanske inte en stor hantera men ändå ett hot.
Vad kan hända?
Vad är dåligt om detta tillvägagångssätt?
Det är mindre vanligt i dessa dagar.
Yeah. Det är lite långsammare i det -
snarare än att bara få ursprungliga källan från servern.
Du gör nu ytterligare ändringar på klientsidan.
Och faktiskt, om vi hade en så mycket långsam internetuppkoppling,
du faktiskt skulle se troligen några blixtar
på skärmen som DOM noder förändras.
Vi råkar bara ha en anslutning,
en ganska snabb dator och så det är ganska svårfångade för användaren.
Men om de har JavaScript inaktiverat?
Nu är det här en extrem hörn fall dessa dagar.
De flesta människor är - de flesta när de lämnar JavaScript på.
Men om det är av det som händer?
Vi ser inga av det alls.
Så kort sagt, att förlita sig på JavaScript för något
så här får jobbet gjort
men takeaway är hur Vi gick omkring dong här.
Och du kan se själv bara genom att titta på källan
och sedan peta runt på någon av de två webbadresser på cs164.net.
Hur vi faktiskt gjorde det här?
Men dess illustrativa för hur du kan börja bygga mer
intressanta utomeuropeiska departementen och även i fallet
dynamiskt drivna webbplatser som Facebook-programmet,
eller Gchat eller liknande som är ständigt dra in mer data,
hur du kan faktiskt ändra på det gränssnittet.
Men nu, låt oss titta på det rätt sätt att börja göra saker.
Så i år, banan, till skillnad från två år sedan
när ni i första hand i PHP för första halvåret
och JavaScript för sista hälften medan två år sedan,
Vi fokuserar mer på mobil med lite PHP, i år,
Vi beslutade att ändra saker att fokusera mer
på webbaserade applikationer.
Genomförs inte i par av människor
men i lag uttryckligen lag av fyra
och motiven var flera.
Men bland dem var det,
med ett team av fyra finns det bara många fler bitar du kan bita
av såsom en grupp.
Gör webbutvecklingen tenderar att landa sig till olika aspekter
av projektet som du kan sedan delegera bland ditt team.
Till exempel, vi kommer sannolikt har en eller två av er
i en given teamet som arbetar med front, den JavaScript-kod,
CSS, estetik.
På samma projekt en annan en eller två av er kommer att fokusera
på bakändan, databasen schemadesign, validering
av data, skriva API som front end folk kommer att fungera.
Och så fick vi bara en massa mer fläkt av möjligheter
för människor att samarbeta.
Och så hittar du om du har gjort projekt
med bara en partner i det förflutna,
att med fyra det blir en lite mer utmanande,
mer intressant, men mycket mer kraftfull att ha alla
om ni samarbetar tillsammans.
I termer av förutsättningar, vi troligen kommer att hålla fast vid dessa
för katalogen fyra tidigare CS kurser.
Och detta är baserat på erfarenhet.
För ett par år sedan som hänvisade till dig tidigare,
vi ganska mycket tillåtet någon som bara tog 50
eller kanske någon klass i hög skola att gå kursen
men det var bara en sådan spridning av förmågor och komfortnivåer.
Det gjorde det svårt att få vissa samtal och en hel del
av eleverna i klass kämpade.
Så vi tänkte på detta sätt,
vi kan sorts göra alla en tjänst kollektivt.
Så ha det i åtanke.
När det gäller laget storlek, fyra kommer att vara standard
om du har tre vänner med vem du skulle
som att samarbeta, det är helt bra.
Vi kommer inte att uppdra särskilda team för dig.
Om du inte har några vänner eller partners i åtanke för klassen,
ingen big deal, vi håller att sinnet också och försöka
att underlätta de typer av partnerskap.
När det gäller strukturen av klass, detta är mycket anmärkningsvärt.
Kursen kommer inte att vara strukturerad för det mesta
kring föreläsningar och kommer inte att vara strukturerad
runt om ni sitter där och stirrade på detta sätt
och jag talar här sättet.
Snarare de flesta av klass sessioner kommer att vara
i form av gruppmöten.
Antingen ditt team kommer att samla här eller någon annanstans på campus
för ett par timmar på måndagen eftermiddagar eller för ett par
timmar på onsdag eftermiddagar.
Under de kommande veckorna, vi ska lista ut vilken dag
och vilken tidpunkt varje folk kommer att bli.
Om behov av att vara, kan vi justera gånger men vi får se Based
på en undersökning som ni allt till slut fylla ut.
Vad händer i dessa möten?
Så de veckomöten är
där ni i första hand presentera framsteg
på olika projekt, mer om de i ett ögonblick.
Så vid dessa gruppmöten, en av lärarna och
eller jag själv kommer att närvara och målet kommer att vara för varje
av de fyra personer i team för att rapportera om milstolpar
att du har eller har inte uppnåtts.
Om milstolpe kommer att definieras
som forskar något, genomföra något,
designa något, tänkte om något eller liknande,
försvara designbeslut.
Så Det är - vi menade denna klass
att speciellt kritisk eller utmanande.
Så det är inte bara att att prata om din dag
och hur du faktiskt valde att genomföra detta men jag och Rob
och Tim som möter i lite kommer att vara där för att utmana dig.
Så att om du har gjort ett beslut
och det är inte nödvändigtvis det bästa det är bra.
Om du faktiskt har en stark yttrande om varför du gjorde det.
Och som svar på formen, ja, det fungerar
men jag är inte riktigt säker på är inte vad som verkligen väntat
vid dessa möten.
Så det är egentligen tänkt att vara ett dubbelriktat samtal
där du försvara din beslut och också övertyga oss
att den väg du har tagen är idealiskt bäst
eller det är en möjlighet för dig för att få feedback från oss
och till och med din partner
vad du kanske att göra annorlunda.
Och då i synnerhet Dessa kommer att finnas möjligheter
för kodgranskning.
Så ni kommer att skriva JavaScript-kod och PHP-kod
och andra tekniska aspekter av varje projekt
och målet kommer att vara i framför en storbilds-TV,
runt bordet så här för en av er att stå
upp på en gång den som har gjort det mesta arbetet
på någon aspekt av Projektet har lagt
och lägga fram koden.
Och ge oss en verbal rundtur i kod och ge oss en möjlighet
att säga varför har du sex nästlade loopar genomförande
något sådant?
Eller varför har du inte index
i din databastabell olika ämnen som vi kommer att undersöka
under loppet av terminen.
Så då kommer vi har tekniska samtal antingen
i form av dessa i person som utformar möten
där vi alla samlas tillsammans eller via video
att göra saker liten asynkron
för enkelhetens skull på särskilt tekniska ämnen
och verktyg som vi kommer att använda under denna termin.
Några populära JavaScript bibliotek
till exempel är Backbone.js och Bookshelf.js och Express.js.
Dessa är alla verktyg med som du kan göra webbaserad
applikationer med hjälp av JavaScript.
Inte på klientsidan om
men på serversidan med hjälp en ram kallas Node.js
vilket är ett alternativ till med hjälp av något som Apache
eller Microsoft IIS eller annan webbserverprogrammet.
Så vi ska faktiskt skriva in klassen JavaScript-kod,
både på klientsidan som såväl som på serversidan.
Vi pratar om verktyg med vilka vissa
om du redan är bekant.
Saker som Git.
Vi kommer att dyka in djupare på saker som SQL och begränsningar
och transaktioner samt en hel del av de detaljer som verkligen
i en klass som 50, vi slags våg våra händer upp till tider skull
men är allt viktigare
när faktiskt genomföra en projekt som kommer att användas
med faktisk och förhoppningsvis ett stort antal användare
där prestanda ska börja göra en skillnad.
I PHP värld, använder vi en ram kallas Laravel.
Detta är en MVC-arkitektur.
Om vet eller minns att akronym.
Och det är bara en massa PHP-kod för att göra en hel del
jobb enklare och att göra det lättare
att skriva mer komplexa mjukvaru synnerhet projekt
som genomförs av flera personer.
För att testa, kommer vi att använda verktyg liknande Mockery i PHP-enheter
och vi kommer att komma in i vanan att inte bara skriva kod och sortera
av banka på den och anekdotiskt försöker att försöka lista ut,
fungerar det som du tänkt.
Utan snarare gör det passera vissa tester.
Så att i synnerhet Om en vän till dig
i dina gruppändringar lite kod, kan du vara säker på
det här har hon inte bruten någonting helt enkelt
genom att köra testerna
som du redan har skriven för den koden.
Så det inte har regressioner att buggy tillstånd av programvara.
Dessutom är de projekt
där vi tillbringar mesta av vår tid.
Så det finns inga tentor.
Det är alla drivna av projekt i denna klass
och det verkligen bara vara två per lag.
I huvudsak det första halvåret av terminen kommer att fokusera
på ett PHP-baserade webbplatser
som kommer att ha främre slutanvändaren gränssnitt både för skrivbordet
och valfritt rörligt.
Så det här blir ett tillfälle, albeit tangerar den klass
att faktiskt göra något liknande en webb-baserad mobil gränssnitt
eller om du verkligen beslutsam, Android
eller iOS skulle vara helt bra.
Bara inse att inlärningskurva där
om obekant skulle vara lite högre.
Men det skulle spela mycket fint med visionen
för även med varje projekt att ha lite back end-API.
Så att du kan ha en separation,
abstraktion mellan vad du gör och vad Alice och Bob
och Charlie i ditt Gruppen är också liksom.
Så att alla dina användargränssnitt
eller tillbaka ändarna kan på något sätt kommunicera med varandra.
När det gäller de närmare detaljerna, för ramen,
vi ska lita på Laravel och Eloquent vilket är ett ORM,
ett objekt-relation Mapper som är bara ett lager av mjukvara
som behandlar M i MVC, modell.
Det gör det lite enklare särskilt för stora projekt
för att hämta data från databaser och att skriva data
och att representera verkligheten enheter utan att
att skriva rå SQL-kod.
I en värld av JavaScript Vi kommer återigen att använda Express
och bokhylla som är analoger
i JavaScript världen.
Men att använda i stället för Apache använder Node.js
vilket är allt populärare och tillåter i synnerhet
för applikationer med realtidsinteraktioner,
diagram rum och liknande.
Noden är mycket bättre än Apache vid användning -
vid genomförandet projekt som det
eftersom du kan skicka meddelanden med hjälp av modeller som pub och sub,
publicera och prenumerera, om förtrogen med dessa fraser.
Så mer om det mot mitten av terminen.
När det gäller förväntningar, dessa är dem för kursen.
Delta i eller titta på dessa enstaka samtal, tekniska samtal.
Schemat för vilka slutändan kommer att sätta
på kurserna hemsida.
Delta i alla av mötena.
Så närvaro krävs vid var och en av gruppmöten "orsak
efter allt det är där den mest av kursens undervisning
och återkoppling och interaktioner kommer att hända.
Vecko milstolpar, kommer vi att använda ett verktyg som jag ska nämna
av i ett ögonblick att generellt tilldela dig från en eller två
av de anställda till var och en av de fyra personer i gruppen.
Saker att göra och de som saker kommer att komma i form
varför gör inte du veterinär går detta alternativ.
Varför går du inte vet detta alternativ och räkna ut vilka
av dessa två genomförande Möjligheterna är bättre
mellan nu och säga nästa vecka.
Varför går du inte genomföra detta?
Eller du utformar dessa databastabeller.
Och så på kort schemat under loppet går
vara ganska organiskt beroende på projekt
att varje lag tacklingar beroende på vad dina resultat är
när prövning vissa genomförande alternativ och beroende potentiellt
på vad slutanvändarna ultimately vill att projektet ska göra.
Och så mot detta syfte, där finns inga fasta tidsfrister per säga.
Det blir ganska mycket att vara i en löpande uppdrag
tidsfrister varje fåtal dagar, varje vecka baserat
på de samtal som du har med en eller två
av de anställda vid ditt bord.
I slutändan, men vad är grund är inlämning
av dessa två sista projekt.
I fråga om vad de projekt kommer att bli,
projekten kommer antingen föreslås
och väljs ut av er.
I själva verket, på lotteri formen till exempel kommer du att bli tillfrågad
om vad som är en eller flera projekt särskilt som på något sätt relaterar
till campus som du tror skulle vara tvingande att genomföra.
Eftersom ett av de förhoppningar för kursen är
att oavsett projekt gör kommit
ur kursen överleva I slutet av terminen.
Och så särskilt om de är campus teman,
oavsett om det är en annan kurskatalog, shopping verktyg
eller händelser kalender eller transfer eller valfritt antal
av populära slutprojekt.
Förhoppningen efter utgången av denna termin är
att alla sådana projekt lever vidare.
Och faktiskt mot detta syfte,
vad vi trodde vi gör är göra det lite intressant.
Och även sorts insight möjligheter
för diskussioner så att det för mest ett projekt som vi
som klass tackla den här terminen,
det kommer att finnas två grupper som delar samma projekt.
Den allmänna tanken är att de är inte riktigt tänkt
att prata om sina olika designbeslut,
snarare dess avsedda att vara mer av en tävling som till
som i slutändan kan producera bästa design, implementering.
Så att vid slutet av den termin, kom maj, vi skickar en
och inte båda dessa lösningar.
Och vi som en kurs kommer att ta ta hand om hosting och så vidare
så att ditt gamla liv på vid den ände av fjädern.
Vad gör dessa program göra?
Kan vara vad som helst, något för en avdelning,
något för en studentgrupp,
något för eleverna mer i allmänhet som kommer att vara en del
av samtalet i den kommande veckan
tills dyka med huvudet före
efter att plocka en handfull av sådana projekt.
När det gäller personalen, låt mig presentera Tim och Rob
som vill säga hej.
Och det är dessa killar som för ett av projekten kommer att vara -
för de båda projekten ska vara ditt primära rådgivare.
I grunden för en av de projekt, kommer Rob att samla
med dig i veckan för dessa chattar.
För ett av projekten, Tim att samlas med dig
för de chattar och vi kommer byta ungefär i mitten av terminen
som vi övergången projekt.
Om du gillar att bara tala nära denna mikrofon.
>> Hej, jag är Rob.
Jag tog examen i maj från [ohörbart].
Jag är handledare i CS här nu.
Upphetsad för kursen.
>> Och jag är Tim och jag är faktiskt helt ny på området.
Jag är ursprungligen från Philadelphia så jag bara börjat
upp här ett par veckor sedan och jag är verkligen
i öppen källkod.
Jag hjälper till med att upprätthålla Backbone.js projekt där en del
av er kanske känner till
och jag skapade också Bookshelf.js projekt
att David hade nämna.
Så, jag är glada över att se projekten.
>> Faktiskt.
För mer information om Tim åtminstone om du går
till kursens hemsida och klicka på hans namn det kommer att leda
till hans GitHub förvar om du vill titta på några
av hans öppen källkod verktyg och projekt.
Så när det gäller betyg, precis För det här är en FAQ även
om slags tangerar den större vision om en klass,
Hur kommer slutbetyg bestämmas?
Så vad vi kommer i slutändan vara ganska subjektiv Based
om interaktioner vi dig under loppet -
med under loppet av terminen bygger
på era bidrag både till kodförråd
och konversationer att vi har.
Och i ett nötskal, det kommer att vara baserad
på era bidrag till projekt.
Det delta mellan den första vecka och den sista veckan.
Så inte oroa dig om du har bara fyra kurser
under bältet medan några andra studenter
i klassen kan ha åtta,
Vi kommer säkert att hålla detta i åtanke.
Omfattningen, korrekthet, design och stil i ditt projekt,
så de välbekanta axlar.
I vilken grad du förbereda sig för mötet.
Så det här egentligen är tänkt att vara en möjlighet för oss
för att samla in varje vecka och har intelligent och roligt och sorterar
av idealt emotionella diskussioner.
Ibland när ni gör föreslå hur man skulle kunna lösa
något och sedan försvara det du kan göra och Tim roll
och min roll och Rob roll kommer vara att utmana dig förhoppningsvis.
Så att antingen du kan övertalas att gå av
på annat genomförande riktning eller kan vara säker
och känner mig ganska bra om det faktum att, ja,
du tror att du har den bästa genomförande som möjligt
för detta.
Särskilt och såvitt det blir ett annat lag arbets
på samma projekt från sina egna individuella vinkel.
När det gäller verktygen, så detta kommer kanske för all övertid
och du är välkommen att använda allt som är av intresse
till för din egen interna lag.
Men för det mesta del kommer vi att använda
av ett gratis verktyg som heter Asana för ärendehantering.
Du kommer att se mer om detta via e-post under de kommande dagarna
och det är i huvudsak ett verktyg via vilken du kan arbeta utrymmen
och projekt för laget.
Så om ditt projekt är att genomföra fullständiga [fonetik].
Dina fyra lagmedlemmarna kommer vara inne i det projektet,
i den mappen så att säga.
Och du och vi kommer att kunna tilldela milstolpar och att göra s
och datum och kommentarer.
Och det är skönt för det är integrerat med e-post.
Så du kan eller inte kan besöka hemsida det är helt upp till dig.
Och du kan också få aggregerad mening
av vad folk är arbeta och få en känsla
om vad som händer bortom din egen speciella bubbla
Om ditt huvud går ner efter ett tag med fokus
på en viss sak.
För GitHub också, om obekant, är GitHub en
av de mest populära, om inte den mest populära förvaret
ute för källa koda dessa dagar.
Vi kommer att använda det som en central slutförvar för varje lag av fyra
så att ni fyra och sedan Vi tre har tillgång till
och kan lämna synpunkter i form
av kod recensioner hjälp GitHub gränssnitt.
Men vi kommer att introducera dig till det
om obekant när det är dags.
Och det är bara en snabb en glimt av Asana.
Snabb glimt på GitHub och nu Låt mig stanna upp några frågor.
Yeah.
[Ohörbart Fråga]
Bra fråga vad vi tycker av Python eller Ruby ramar?
De skulle kunna uppnå samma mål i synnerhet.
Vi råkar använda PHP i 164 eftersom mycket
människors tidigare web erfarenheter som kommer ut ur 50
som använder PHP just nu.
Men absolut, kan någon av dessa projekt göras i Ruby,
Python, även Java eller andra ramar, Node.js säkert.
Men vi råkar använda PHP och vi råkar använda Node.js
och vi vill standardisera de för båda projekten
så att det är mycket lättare som en klass
att ha mycket liknande konversationer
och inte har för många äpplen och apelsiner i klassen.
Även om det kommer att finnas skönsmässig bedömning när det gäller
till de särskilda tillägg i bibliotek som du kan använda
för någon av de som miljöer.
Så, inga anspråk att en är särskilt bättre
än den andra.
Och PHP har en sorts en ful historia men det har blivit mycket,
mycket bättre under de senaste åren.
Så vad som väntar?
Inga läxor eller något sådant saker annan kväll
än att besöka denna webbadress om det verkligen intressant.
Vi kommer att lägga upp länken på webbplatsen
Om du har glömt var det är.
Tidsfristen för detta kommer att vara 06:00 på onsdag
så att Rob och Tim och jag kan sitta ner den kvällen
och se över de inlagor och räkna ut hur man bäst
att optimera grupper och så vidare.
Vi meddelar dig från torsdag om vi har haft eller inte
till lotteri och om vi har en plats
så att ni kan få studiekort undertecknat figur
ut vad du vill göra.
Och under tiden, om du har några frågor,
gå till kursens hemsida.
E-personal på cs164.net.
När vi kommer tillbaka på onsdag, det kommer fortfarande att vara detta format.
Men sannolikt börjar i mitten av nästa vecka eller veckan
efter var vi dela upp rabatten i mycket mindre grupper
med bara fyra av er möte på en tid med mig
och eller Tim och eller Rob.
Tack så mycket till laget i ryggen idag.
Vi kommer att se dig på onsdag.