>> Okay.
Velkommen til Datalogi 164.
Så før vi dykker i et overblik
af, hvad kurset vil være om dette semester, og en smule
af materialet i denne første dag, Jeg troede, jeg ville give dig en fornemmelse
af, hvordan vi har brugt i aftes.
Det er ikke så meget som server-side udfordring, vi står over for
men et klient-en.
Så har nogen af ​​jer opdagede denne særlige hjemmeside bare endnu
eller lærred som nogle Harvard kurser er nu flytter til?
Så iSites er ved at dø en langsom død, hvis du har fået vedhæftet
til det, er det sandsynligt, at blive erstattet med lærred.
Og så vi troede, vi hoppe ombord og være en del
af denne beta-test med lærred som er et open source-værktøj.
Det er sponsoreret af en selskab kaldet instructure.
Så der er en corporate opbakning bag det.
Men for det meste vi bruger det på denne måde.
Men i aftes, da vi forsøgte
at få kurserne hjemmeside færdiggjort, vi løb ind i en masse
frustrationer, fordi dette er et learning management system
hvilket betyder, at det er en stykke software
som du kan administrere indhold
ved hjælp af web-baseret interface.
Du behøver ikke at bruge mystiske konfigurationsfiler.
Du behøver ikke at kende noget om databaser,
det er temmelig meget punkt og klik på en måde Google-websteder
eller noget lignende, der måtte være.
Men som et resultat var det sgu svært at gøre noget simpelt som -
lad os gå til kurser hjemmeside.
Nu, bare sætte Menupunkter i denne venstre side.
Sag i punkt, er der intet der faktisk lige nu
fordi den måde softwaren er designet er, at hvis du ønsker
at installere ting i Deres menu venstre,
du har rent faktisk installere disse moduler
eller applikationer i softwaren.
Og vi ønsker ikke at gøre dette.
Vi ville bare et link at lide pensum.
Vi ønskede et link til personalet.
Vi ønskede et link til videoer og lignende.
Så hvis du var konfronteret med de hjemmesider,
det er fra tredjeparts websted
men du har ingen kontrol over kildekode.
Du har ikke adgang til den serveren, kan du ikke SSH,
du kan SFTP, alt hvad du kan bruge er den lokale web interface
og du ønsker at begynde at ændre
eller ændre brugerens grænseflade via andre midler.
Hvad kan din første instinkt være?
Hvilke spørgsmål kunne man spørge af instructure i denne sag,
selskabet, således at du kan slags arbejde
omkring disse begrænsninger som vi gjorde?
Vi ønsker at tilføje menupunkter
men vi kan ikke ændre deres server kode.
Så hvad løsning måske at antyde det?
Ja.
[Lydløs Bemærkning]
OK.
[Lydløs Bemærkning]
Ja. Så vi kunne overveje noget
ligesom en Chrome forlængelse.
Hvis det ikke er bekendt, en Chrome forlængelse er i det væsentlige et stykke
af software fra Chrome browser generelt skrevet
i JavaScript.
Og det er bare en måde at injicere kode typisk JavaScript måske
nogle CSS i en web side, du besøger.
Hvorved Chrome udvidelse er bare hele tiden overvåge, hvad
websteder, du besøger og forsøger at opdage.
Åh, hvis du er facebook.com gøre dette.
Åh, hvis du er i isites.harvard.edu gøre dette.
Så dem af jer, der måske har brugt CS50 s 2x stik
in som tillader dig at fremskynde up videoer er nøjagtigt.
Så det er interessant, og det er slags på rette spor.
Fordi hvis du ikke har adgang til serveren, du bare vil have
en eller anden måde ændre DOM den træ, som brugeren er at se,
du kan temmelig meget kun gøre det client-side.
Nu er selvfølgelig en oplagt fangst
af en Chrom udvidelse er hvad?
Right. Så ikke alle bruger Chrome og hvis føles slags halt
hvis du slags har til mandat, at alle
af dine brugere kan kun bruge hjemmesiden
og se Menupunkter hvis de har krom.
Så hvad andet kunne vi måske vi ønsker at spørge instructure?
>> Så en ting er jeg gætte du kan sikkert tilføje en tekst
på hjemmesiden, right?
>> OK.
>> Find ud af om du kan faktisk lægge HTML i teksten.
>> OK. Godt.
Så kunne vi spørge dem, hvis vi kunne sætte HTML i selve teksten.
Så i stedet for at skrive en tekstuel annonceringen, kan vi tilføje links?
Kan vi tilføje billeder?
Kan vi tilføje kugler?
Noget, som vi måske ønsker at gøre æstetisk.
Og det korte svar er ja.
Der er faktisk en slags WYSIWG,
Hvad du ser, er hvad du Få redaktør, der kommer
med denne særlige stykke software
der giver dig mulighed for at redigere.
Ting som startside med mit navn og Robs
og Tims og så videre.
Og det fik os en del af den måde der.
Desværre, der ikke Lad os sætte noget her
for eksempel.
Det betyder ikke lade os sætte noget her, fordi vi er begrænset
af, hvad den oprindelige forfattere ville have os til at gøre.
Så vi er et skridt nærmere.
Hvad ellers kan vi bede virksomheden?
Hvad er de andre workarounds måske?
Det er nødt til at kunne løses.
Hvad ellers kan du gøre?
Så du var på rette spore med dette begreb
af client-side JavaScript injektion.
Hvor ellers kan vi få JavaScript ind i stedet måske, right?
Fordi når du har JavaScript,
kan du stort set gøre noget selvom din oplevet
med JavaScript er begrænset til 50 eller en anden forudgående erfaring,
du ved, at du kan krydse træet
der er en web-side, DOM.
Du husker nok, at du kan tilføje noder eller fjerne noder.
Du kan injicere ting i en webside.
Faktisk det er præcis, hvad Den CS50 2x stik i gør.
Det river de iSites ' videoafspiller og sætter
i en anden alle sammen.
Så hvad hvis virksomheden Instructure tilladt dig
at injicere JavaScript i dit kursus website?
Med andre ord, hvad nu hvis de tilladt dig via deres GUI,
deres WYSIWG grænseflade til indsætte webadressen på en JS fil
og måske endda en. css fil og så de tog sig
af processen med at indsætte det øverst på hver side.
Så sikker nok, det var den eneste måde, vi var i stand
at opnå dette.
Hvis jeg se siden kilde her - og lad mig zoome ind og søg
for cs164.net som er en domæne vi løbet ejer.
Bemærk, at via nogle række trin, det tog lang tid at regne
med deres dokumentation.
Vi er vi i stand til at sige, på toppen af ​​hver webside hvad Canvas udgange
til dette kursus, output. css fil.
Og hvis vi gør en anden kommando f og søge lidt længere,
du vil se, at hernede,
indlejret med i nogle JavaScript kode er der også nævner
af denne URL her.
Så med andre ord, vi slags har lokket dem
til injektion uanset CSS,
uanset JavaScript vi ønsker ind på hjemmesiden.
Så da rejser spørgsmål, hvad gør den?
Nå, lad os gå videre og bare få fat i denne kilde,
indsæt denne heroppe.
Det er forbudt, fordi simulere denne,
Jeg chmoded [fonetisk] alt.
Så lad mig give det tilbage.
Læseadgang og nu genindlæse.
Så hvad gjorde vi?
Så får du bedre på dette især midt-semester
når vi bruger en masse vores tid på JavaScript.
Men hvad betyder dette synes at gøre?
Så man på toppen af ​​dette JS-fil, som igen indgår
i hver webside, at den Kurset kører nu på hjemmesiden.
Vi kontrolleres for at se, om den type jQuery er ikke defineret.
Så i lægmands sigt hvad betyder det?
Hvad ville det betyde, hvis jQuery er udefineret?
Nå, har du JavaScript indlæst.
Du behøver ikke have jQuery indlæst.
Så vi bare håber at instructure,
virksomheden faktisk er hjælp jQuery selv.
Ellers ville vi have til indsætte jQuery biblioteket på toppen
af denne fil, så at få adgang til det.
Og det er ikke fordi jeg simpelthen ønsker at have adgang til ting
ligesom dollartegn notation og andre funktionelt
der kommer med jQuery.
Hvis du husker dette biblioteket, og hvis uvant
eller hvis det har været et stykke tid, hvile sikker vil vi komme til denne
med i et par uger.
Så hvad er de ting, vi laver her?
Så for dem, der kan huske, hvad betyder denne syntaks her betyde?
Når du bare bestå en anonym funktion eller lambda-funktion?
I CS51 tale med jQuery funktion som dette.
Hvornår er denne kode kommer til at blive henrettet?
Ja.
[Lydløs Bemærkning]
Præcis. Så denne kode af natur
af denne standard funktion opkald kun kommer til at blive henrettet
når DOM så at tale er fuldt læsset.
Alle HTML top til bund, venstre eller højre er blevet læst
i hukommelsen, og der er nogle træstruktur inde i hukommelsen.
Nu er det godt, fordi hvis jeg ønsker at begynde at spille
rundt med det og ændre Menupunkter, fjerne ting,
tilføje ting, ville jeg hellere vente
i hvert fald indtil standard DOM er på plads.
Så det er bare standard jQuery syntaks.
Det er svarer til at sige når DOM er klar.
Og nu er det virkelig bare en kombination
af jQuery syntaks og nogle HTML.
Så for eksempel, besluttede jeg, at Dette var blot generer mig.
Ingen på campus siger, åh, er du tager Comp Sci 164
eller Comp Sci uanset hvad, du sige CS164 eller CS whatever.
Så mindre lille plage, vi ønsker at ændre det,
så hvordan kan vi gøre det med noget som JavaScript?
Tja, varsel, hvis jeg gå til den side her
og på toppen af ​​siden, tidligere var CS164.
Hvis jeg åbner Chrome, som er et nyttigt browser
for at gøre DOM inspektioner og du zoome ind her.
Bemærk, at indersiden af ​​denne HTML var et element, der havde et ID
brødkrummer og at id gør hvad?
Det identificerer en af disse knuder i træet
og så snart jeg har den entydig identifikator for nogle luns
af HTML i DOM, nu Jeg kan gøre hvad jeg vil
med denne webside.
Jeg kunne slette hver DOM node.
Hver HTML-tag fra siden og sætte noget, som jeg vil
men behov, vi er temmelig ydmyg.
Jeg ønskede blot at for det kodestykke her.
Jeg ville først finde afsnittet faner header
som var en af ​​moderselskabet elementer, lige over det.
Og jeg ønskede at gå fremad og forandring -
Jeg ville hellere forandring indholdet
denne via denne HMTL fungere på et link til CS164
og så ville jeg ændre CSS på det
at have en skrifttype vægt fed.
Og vi vil ikke gå ind i stor detaljer på resten af ​​denne her.
Men læg mærke denne linje her.
Jeg har en global erstatte overalt.
Væsentlige siger, overalt du ser en spændvidde
der har en klasse kaldet ellipsible,
det er ikke en standard ting,
Det er lige det lærredet software kræver visse klasser.
Hvis det indeholder nøglen sætning COMPSCI164 gå videre
og erstatte HTML indersiden af en sådan spændvidde med blot CS164.
Og resten af ​​denne er temmelig godt kommenteret.
Men i slutningen resultat, hvad jeg gøre manuelt med Chrome
eller enhver browser regne ud hvad de unikke identifikatorer
forskellige DOM noder i træ og muterer dem
på den måde, jeg ønskede.
Og slutresultatet nu, vi chmoded tingene korrekt er
at nu kan jeg sætte en vilkårlig luns af HTML herovre.
Jeg kan rippe ud af ting ligesom footer.
Jeg kan rippe ud HTML herover og Jeg skulle vinke en enorm ansvarsfraskrivelse.
Dette er en komplet hack
til gennemførelse af en hjemmeside som denne.
Men det slags taler til tankeprocessen
at hvis mod midten af ​​semestret,
især når vi bruger tid JavaScript får dig til at tænke
om, hvordan du kan løse diverse problemer forhåbentlig bedre
end på denne måde.
Men ingredienserne for at løse et problem
som dette virkelig bare reduceret til nogle grundlæggende.
Åbning op til noget ligesom Chromes Inspector
og forståelse hvad DOM-træet er.
Vide, hvad det CSS selectors er
for unikke id'er eller for klasse navne.
Kendskab til nogle syntaks, om det er i JavaScript ren
eller jQuery biblioteket til rent faktisk at ændre DOM.
Og i slutningen af ​​dagen, vi er temmelig meget i stand
at bøje softwaren til vores vilje.
Men der er sikkert en fangst.
Hvad er den pris, vi er sikkert betale for denne komplet hack?
Hvad er risikoen?
Ja.
[Lydløs Bemærkning]
Præcis. Hvis instructure omdøber en af ​​deres klasser
eller omdøber en af ​​deres id'er eller bare omarrangerer deres HTML
som er helt deres prærogativ,
alt dette kan knække og så en af ​​os kommer til at have
at lægge mærke til det, eller en af ​​jer fyre er nødt til at indberette
og vi bliver nødt til at tænke over det igen.
Så måske ikke en kæmpe håndtere, men stadig en trussel.
Hvad der ellers kunne ske?
Hvad er dårlig om denne fremgangsmåde?
Det er mindre almindeligt i disse dage.
Ja. Det er en lidt langsommere, at -
snarere end blot få oprindelige kilde fra serveren.
Du er nu gøre yderligere ændringer client-side.
Og faktisk, hvis vi havde en så meget langsom internetforbindelse,
du rent faktisk ville se sandsynligvis nogle blinker
på skærmen som DOM knudepunkter er under forandring.
Vi har lige tilfældigvis har en forbindelse,
en temmelig hurtig computer og så det er temmelig undvigende for brugeren.
Men hvad nu hvis de har JavaScript er deaktiveret?
Nu dette er en ekstrem hjørne tilfældet i disse dage.
De fleste mennesker er - de fleste når de forlader JavaScript på.
Men hvis det er slukket hvad sker der?
Vi kan ikke se nogen denne overhovedet.
Så kort sagt, at forlade sig på JavaScript for noget
som dette får jobbet gjort
men takeaway er, hvordan vi gik om dong dette.
Og du kan se for dig selv blot ved at se kilden
og derefter rode rundt på alle af de to webadresser på cs164.net.
Hvordan vi rent faktisk gjorde det?
Men dens illustrative for, hvordan du kan begynde at bygge mere
interessante DOMs og selv i tilfælde
af dynamisk drevne websites ligesom Facebook-applikation,
eller Gchat eller lignende, der er konstant trækker i flere data,
hvordan du kan faktisk ændre denne grænseflade.
Men lad os nu se på rigtige måde at begynde at gøre tingene på.
Så dette år, kurset, i modsætning til for to år siden
når du fyre primært i PHP for første halvår
og JavaScript for sidste halvdelen mens to år siden,
vi fokuserede mere på mobil en smule PHP med, dette år,
besluttede vi at ændre ting at fokusere mere
på web-baserede applikationer.
Gennemført ikke i par af mennesker
men i teams specifikt hold af fire
og motivationer var flere.
Men blandt dem var, at
med et team på fire der er bare en masse flere stykker du kan bide
ud som en gruppe.
Gøre web udvikling har en tendens til jord sig til forskellige aspekter
af projektet, som du kan derefter uddelegere blandt dit hold.
For eksempel, vil vi sandsynligvis har en eller to af jer
i en given team, der arbejder på forreste ende, JavaScript-koden,
CSS, æstetik.
På samme projekt en anden en eller to af jer vil fokusere
på bagsiden ende databasen skema design, validering
af data, skrive API, der forenden folk vil arbejde.
Og så fik vi blot en masse flere pust af muligheder
for folk til at samarbejde.
Og så vil du finde, hvis du har gjort projekter
med kun én partner i fortiden,
at med fire det vil være en lidt mere udfordrende,
mere interessant, men en masse mere kraftfuld at have alle
af jer samarbejder sammen.
I forhold til de forudsætninger, vi sandsynligvis vil holde med disse
til katalog fire forudgående CS kurser.
Og dette er baseret på erfaring.
Et par år siden som hentydet til dig tidligere,
vi temmelig tilladt enhver, der tog lige 50
eller måske nogle klasse i høj skole for at tage kurset
men der var bare sådan en spredning af evner og komfort niveauer.
Det gjorde det svært at have visse samtaler og en masse
af de studerende i klasse kæmpede.
Så vi tænkte på denne måde,
vi kan sortere i gøre alle en tjeneste kollektivt.
Så holder det i tankerne.
Med hensyn til holdet størrelse, fire vil være standard
Hvis du har tre venner med hvem du ville
gerne partner, det er helt fint.
Vi vil ikke mandat særlige hold for dig.
Hvis du ikke har nogen venner eller partnere i tankerne til klassen,
nogen big deal, vil vi holde at sindet så godt og prøve
for at lette de former for partnerskaber.
Med hensyn til strukturen af klasse, det er meget unormal.
Kurset vil ikke være struktureret for det meste
omkring foredrag og vil ikke blive struktureret
omkring jer sidder der stirrer på denne måde
og mig taler på denne måde.
Snarere de fleste af de klasse sessioner vil være
i form af teammøder.
Enten dit team vil samle her eller andre steder på campus
for et par timer på mandag eftermiddage, eller for et par
timer på onsdag eftermiddage.
I de kommende uger, vi vil finde ud af, hvilken dag
og hvilket tidspunkt hver folk vil være.
Hvis det er nødvendigt at være, kan vi justere gange, men vi skal se Based
på en undersøgelse, at du fyre alle i sidste ende udfylde.
Hvad sker der i disse møder?
Så de ugentlige møder er
hvor du fyre primært præsentere fremskridt
på forskellige projekter, mere på dem i et øjeblik.
Så på disse teammøder, en af ​​underviserne og
eller selv vil være til stede og målet vil være for hver
af de fire mennesker i hold til at rapportere om milepæle
at du har eller har ikke nået.
Hvor milepæl vil blive defineret
som forsker noget, gennemføre noget,
designe noget, tænker om noget eller lignende,
forsvare design beslutninger.
Så Det er - vi mente denne klasse
at særlig kritisk eller udfordrende.
Så det er ikke bare kommer til at være tale om din dag
og hvordan du rent faktisk valgte at gennemføre dette, men jeg og Rob
og Tim, der vil mødes i en lidt vil være der til at udfordre dig.
Så hvis du har lavet en beslutning
og det er ikke nødvendigvis det bedste, der er fint.
Hvis du rent faktisk har en stærk udtalelse om, hvorfor du gjorde det.
Og som svar på formular, ja, det virker
men jeg er ikke rigtig sikker på er ikke hvad der virkelig forventet
på disse møder.
Så det er virkelig beregnet til at være en tovejs samtale
hvor du forsvare din beslutninger og også overbevise os
at den vej, du har taget er ideelt bedste
eller det er en mulighed for dig at hverve feedback fra os
og endda dine partnere
som til hvad du måske gøre anderledes.
Og så især disse vil være muligheder
for kode gennemgang.
Så jer vil skrive JavaScript-kode og PHP kode
og andre tekniske aspekter af hvert projekt
og målet vil være i foran en stor skærm TV,
omkring bordet som denne for en af ​​jer til at stå
op på et tidspunkt, uanset hvem der har gjort mest arbejde
på nogle aspekter af Projektet har lagt
og præsentere koden.
Og give os en verbal rundvisning i kode og give os en mulighed
at sige, hvorfor har du seks indlejrede løkker gennemførelsesbestemmelser
sådan noget?
Eller hvorfor du ikke har indekser
i din database tabel diverse emner, som vi vil udforske
i løbet af semesteret.
Så lejlighedsvis vil vi har tekniske drøftelser enten
i form af disse i møder persons stil
hvor vi alle samles sammen eller via video
at gøre tingene lille asynkron
for nemheds skyld på særligt tekniske emner
og værktøjer, som vi vil bruge i løbet af dette halvår.
Nogle populære JavaScript biblioteker
for eksempel er Backbone.js og Bookshelf.js og Express.js.
Disse er alle værktøjer med som du kan lave web-baseret
applikationer ved hjælp af JavaScript.
Ikke på klientsiden selv
men på den server-side ved hjælp af en ramme kaldet Node.js
som er et alternativ til ved hjælp af noget som Apache
eller Microsoft IIS eller andre web server software.
Så vi vil faktisk skrive i klassen JavaScript-kode,
både på klientsiden som samt på server-side.
Vi taler om værktøjer, som nogle
af jer allerede kender.
Ting som Git.
Vi vil dykke dybere på tingene ligesom SQL og begrænsninger
og transaktioner og en masse af de detaljer, som helt sikkert
i en klasse som 50, vi slags bølge vores hænder op til tider skyld
men er evig vigtigt
når rent faktisk gennemfører en projekt, der kommer til at blive brugt
af den faktiske og forhåbentlig stort antal brugere
hvor ydeevne kommer til at begynde at gøre en forskel.
I PHP verden, bruger vi rammer kaldet Laravel.
Dette er en MVC arkitektur.
Hvis kender eller minde om, at akronym.
Og det er bare en flok PHP kode til at gøre en masse
job lettere og at gøre det lettere
at skrive mere komplekse software bl.a. projekter
der gennemføres af flere personer.
Til prøvning, vil vi bruge værktøjer ligesom Hån i PHP-enheder
og vi vil komme ind i vanen med at ikke bare skrive kode og sortere
banging på det og anekdotisk forsøger at forsøge at regne ud,
virker det som du havde tænkt dig.
Men snarere gør det bestå visse prøver.
Så det især hvis en af ​​dine venner
i din gruppe ændringer noget kode, kan du være sikker
at her ikke hun har brudt noget blot
ved at køre testene
at du allerede har skrevet til denne kode.
Så der ikke har regressioner fejlbehæftet tilstande af software.
Desuden projekterne er
hvor vi vil tilbringe meste af vores tid.
Så der er ingen eksamener.
Det er alle drevet af projekter i denne klasse
og der er virkelig bare være to per hold.
Hovedsagelig den første halvdel af semestret vil fokusere
på en PHP-baserede hjemmesider
der vil have forreste slutbruger grænseflader både til desktop
og eventuelt mobil.
Så dette vil være en mulighed, omend tangerer klassen
til rent faktisk at gøre noget lignende en web-baseret mobile grænseflade
eller hvis du virkelig beslutsom, Android
eller iOS ville være helt fint.
Bare indse, at den indlæringskurve der
hvis uvant ville være lidt højere.
Men det ville spille meget pænt med visionen
for også at have hvert projekt at have nogle tilbage ende API.
Så du kan få separation,
abstraktion mellem, hvad du gør, og hvad Alice og Bob
og Charlie i dit gruppe er også lige så godt.
Således at hver af dine frontends
eller bagende kan en eller anden måde intercommunicate.
Med hensyn til detaljerne, for rammerne,
vi stole på Laravel og Veltalende som er en ORM,
et objekt-relation Mapper som er bare et lag af software
, der behandler de M i MVC, modellen.
Det gør det lidt lettere især for store projekter
til at forespørge data fra databaser og til at skrive data
og til at repræsentere virkelige verden enheder uden at have
at skrive rå SQL-kode.
I en verden af ​​JavaScript, vi igen bruge Express
og boghylde analoger
i JavaScript-verden.
Men ved anvendelse i stedet for Apache hjælp Node.js
der er stadig mere populær og tillader navnlig
for anvendelser, der involverer realtid interaktioner
chart værelser og lignende.
Node er meget bedre end Apache, når du bruger -
når de gennemfører projekter som det
fordi du kan sende beskeder bruge modeller som pub og sub,
udgive og abonnere, hvis bekendt med disse sætninger.
Så mere om det mod midten af ​​semestret.
I form af forventninger, disse er dem for kurset.
Deltag eller se disse lejlighedsvis foredrag, tekniske drøftelser.
Tidsplanen for hvilke sidste ende vil sætte
på kurserne hjemmeside.
Deltag i alt af møderne.
Så fremmøde er påkrævet ved hver af holdets møder «årsag
efter alt det er, hvor de mest af kurset instruktion
og feedback og interaktioner vil ske.
Ugentlige milepæle, vil vi bruge et værktøj, som jeg vil gøre omtale
af i et øjeblik at generelt tildele dig fra en eller to
af de ansatte medlemmer til hvert af de fire mennesker i gruppen.
Ting at gøre, og dem, ting vil komme i form
hvorfor gør du ikke dyrlægen gå denne mulighed.
Hvorfor tager du ikke gå dyrlæge dette mulighed, og finde ud af hvilke
disse to implementering Mulighederne er bedre
mellem nu og sige næste uge.
Hvorfor går du ikke gennemføre det?
Eller du designe disse databasetabeller.
Og så i kort tidsplanen i løbet går
at være temmelig organisk afhængigt af de projekter,
at hvert hold tackler afhængigt på, hvad dine resultater er
når behandlingen nogle implementering indstilling og afhængigt potentielt
på, hvad slutbrugerne i sidste ende ønsker, at projektet at gøre.
Og så mod at ende, er der er ingen faste frister pr sige.
Der vil stort set være i en rullende opgave
af frister hvert par dage, hver uge baseret
på de samtaler, du har med en eller to
af de ansatte ved dit bord.
I sidste ende, selv om, hvad der er grund er indsendelse
af disse to afgangsprojekter.
Med hensyn til, hvad projekter vil være,
projekterne vil enten foreslås
og udvalgt af jer.
Faktisk på lotteri formular for eksempel vil du blive bedt
om, hvad der er et eller flere projekter især som en eller anden måde relaterer
til campus, som du mener ville være overbevisende at gennemføre.
Da en af ​​de håb for kurset er
at uanset projekter kommer
ud af dette kursus overlever i slutningen af ​​semesteret.
Og så især hvis de er campus temaer,
uanset om det er en anden kursuskatalog, shopping værktøj
eller eventkalender eller shuttle service eller en række
af populære endelige projekter.
Håb efter afslutningen af dette semester er
at et sådant projekt leve på.
Og faktisk mod herpå
hvad vi troede, vi gør, er gøre det lidt interessant.
Og også slags Insight muligheder
til debatter hvorved for de fleste ethvert projekt, som vi
som en klasse tackle dette semester
vil der være to hold tildelt den samme projekt.
Den generelle idé er, at de er ikke rigtig meningen
at tale om deres forskellige design beslutninger
snarere dens betød at være mere af en konkurrence til
der i sidste ende kan producere bedste design, implementering.
Så ved slutningen af semester, kom maj sender vi en
og ikke begge disse løsninger.
Og vi som et kursus vil tage pleje af hosting og så videre
så din arv liv ved afslutningen af ​​fjederen.
Hvad gør disse programmer gøre?
Kan være noget, noget for en afdeling,
noget for en gruppe studerende,
noget for de studerende mere generelt, som vil være en del
af samtalen i den kommende uge
indtil dykke hovedet først
efter plukningen en håndfuld af sådanne projekter.
Med hensyn til personalet, så lad mig introducere Tim og Rob
der gerne vil sige hej.
Og det er disse fyre, der for et af projekterne vil blive -
for begge projekter vil være din primære rådgiver.
Hovedsagelig til en af ​​de projekter vil Rob blive indsamling
med dig hver uge for disse chats.
For et af de projekter, Tim vil indsamling med dig
for disse chats og vi vil bytte nogenlunde midt-semester
som vi overgangen projekter.
Hvis du kan lide at bare tale tæt på denne mikrofon.
>> Hej, jeg er Rob.
Jeg er uddannet i maj sidste år fra [uhørligt].
Jeg preceptor i CS her nu.
Spændt for kurset.
>> Og jeg er Tim og jeg er faktisk helt nye til området.
Jeg er oprindeligt fra Philadelphia, så jeg er lige begyndt
heroppe et par uger siden, og jeg er virkelig
ind i open source software.
Jeg hjælpe med at opretholde Backbone.js projekt, hvor nogle
af jer kan være bekendt med
og jeg har også skabt Bookshelf.js projekt
at David var nævne.
Så jeg er spændt på at se projekterne.
>> Sandelig.
For mere information om Tim i hvert fald hvis du går
til kursets hjemmeside og klik hans navn, det vil føre
til hans GitHub repository hvis du gerne vil se på nogle
af sin open source værktøjer og projekter.
Så i form af kvaliteter, bare Fordi dette er en FAQ selv
hvis slags tangerer den større vision af en klasse,
Hvordan vil de endelige kvaliteter bestemmes?
Så hvad vi vil i sidste ende være temmelig subjektiv Based
på samspillet vi du i løbet -
med din løbet af semestret baseret
på dine bidrag både kode repositories
og samtaler , vi har.
Og i en nøddeskaller, den skal baseres
på dine bidrag til projekter.
Delta mellem den første uge og den sidste uge.
Så ikke at bekymre dig, hvis du har kun fire kurser
under bæltet hvorimod nogle andre elever
i klassen kan have otte,
vi vil helt sikkert holde det i tankerne.
Omfanget, korrekthed, design og stil dit projekt,
så de velkendte akser.
I hvor høj grad du forberede sig til mødet.
Så dette er virkelig beregnet til at være en mulighed for os
at indsamle ugentligt og har intelligent og sjov og sortere
af ideelt følelsesmæssige debatter.
På tidspunkter, hvor du fyre gøre foreslå, hvordan du kan løse
noget, og derefter forsvare, hvad du kan gøre og Tims rolle
og min rolle og Rob rolle vil være at udfordre dig forhåbentlig.
Så enten kan du overtales til at gå ud
på anden implementering retning eller kan være sikker
og føle sig temmelig godt om det faktum, at, ja,
du tror du har den bedste mulige implementering
for dette.
Især og så vidt der vil være et andet hold arbejdsmiljø
på det samme projekt fra deres egen individuelle vinkel.
I forhold til de redskaber, så dette vil måske af alt overarbejde
og du er velkommen til at bruge hvad der er af interesse
til for din egen interne team.
Men for det meste del vil vi gøre brug
af et gratis værktøj kaldet Asana til opgavestyring.
Du vil se mere om dette via e-mail i de kommende dage
og det er hovedsagelig et redskab via hvilken du kan arbejde mellemrum
og projekter til team.
Så hvis dit projekt er at gennemføre fulde [fonetik].
Dine fire teammedlemmer være inde i dette projekt,
i denne mappe, så at sige.
Og dig, og vi vil være i stand til at tildele milepæle og gøre os
og datoer og kommentarer.
Og det er rart, fordi det er integreret med e-mail.
Så du kan eller ikke kan besøge hjemmeside er det helt op til dig.
Og du kan også få en samlet forstand
af, hvad folk er arbejde og få en fornemmelse
af, hvad der foregår uden for din egen særlige boble
hvis dit hoved går ned efter et stykke tid med fokus
på én bestemt ting.
For GitHub også, hvis uvant, GitHub er én
af de mest populære, hvis ikke den mest populære repository
derude for kilde kode disse dage.
Vi vil bruge det som en central opbevaringssted for hvert hold af fire
så du fire, og derefter vi tre har adgang til
og kan kommentere i form
af kode anmeldelser anvender GitHub interface.
Men vi vil introducere dig til det
hvis uvant når den tid kommer.
Og det er bare en hurtig et glimt af Asana.
Hurtig glimt GitHub og nu lad mig pause for eventuelle spørgsmål.
Ja.
[Inaudible Spørgsmål]
Godt spørgsmål, hvad mener vi af Python eller Ruby rammer?
De kunne opnå den samme mål i særdeleshed.
Vi tilfældigvis til at bruge PHP i 164, fordi en masse
af folks forudgående web oplevelser kommer ud af 50
som bruger PHP lige nu.
Men absolut, kunne nogen af disse projekter gøres i Ruby,
Python, selv Java eller andre rammer, node.js sikkert.
Men vi tilfældigvis til at bruge PHP og vi tilfældigvis til at bruge Node.js
og vi ønsker at standardisere dem, for begge projekter
så det er en meget lettere som en klasse
at have meget ens samtaler
og ikke have for mange æbler og appelsiner i klassen.
Selv om der vil være skøn, når det kommer
til de særlige add-ons i biblioteker, som du kan bruge
for nogen af ​​dem, miljøer.
Så ikke påstanden om, at en er især bedre
end den anden.
Og PHP har en slags en grim historie, men det er blevet meget,
meget bedre i de seneste år.
Så hvad venter forude?
Ingen lektier eller enhver sådan ting andet i aften
end at besøge denne URL hvis ja af interesse.
Vi vil sende linket på hjemmesiden
hvis du glemmer, hvor det er.
Fristen for dette foregår at være 6:00 på onsdag
så Rob og Tim og jeg kan sidde ned den aften
og gennemgå de indlæg og finde ud af, hvordan man bedst
at optimere grupper og så videre.
Vi vil lade dig vide torsdag hvorvidt vi har haft
til lotteri og hvis vi har en plet
så du fyre kan få studie-kort underskrevet figur
ud af, hvad du vil gøre.
Og i den mellemliggende tid, hvis du har spørgsmål,
gå til kurset hjemmeside.
Email personale på cs164.net.
Når vi kommer tilbage på onsdag, det vil stadig være dette format.
Men sandsynligvis starter midt i næste uge eller ugen
efter hvor vi divvy op i meget mindre grupper
med blot fire af dig møde på et tidspunkt med mig
og eller Tim og eller Rob.
Tak meget til holdet i tilbage i dag.
Vi vil se dig på onsdag.