>> Greit.
Velkommen til Computer Science 164.
Så før vi dykker på med en oversikt
av hva kurset vil være om dette semesteret og litt
av materialet i denne første dagen, Jeg tenkte jeg skulle gi deg en følelse
av hvordan vi har brukt i går kveld.
Det er ikke så mye som server-side utfordring vi står overfor
men en klient-side én.
Så har noen av dere oppdaget denne nettsiden ennå
eller lerret som noen Harvard Kursene er nå flyttet til?
Så iSites er i ferd med å dø en langsom død hvis du har fått festet
til det, er det sannsynlig at erstattes med lerret.
Og så tenkte vi at vi hoppe ombord og være en del
av denne beta test med Canvas som er en åpen kilde verktøyet.
Den er sponset av en selskap som heter instructure.
Så det er en bedrifts backing bak det.
Men for det meste vi bruker det på denne måten.
Men i går kveld når vi prøvde
å få kurs nettside avsluttet, kjørte vi inn i en masse
frustrasjoner fordi dette er en learning management system
noe som betyr at det er en stykke programvare
som du kan administrere innhold
ved å bruke web-basert grensesnitt.
Du trenger ikke å bruke uforståelige konfigurasjonsfiler.
Du trenger ikke å vite noe om databaser,
det er ganske mye poeng og Klikk på en måte Google-nettsteder
eller noe sånt kan være.
Men som en følge av det var jævla vanskelig å gjøre noe enkelt som -
la oss gå til kurs nettstedet.
Nå, bare sette Menyalternativer i venstre side.
Case in point, det er ingenting det faktisk akkurat nå
fordi måten programvare er utformet er at hvis du vil ha
å installere ting i din venstre menyen,
du må faktisk installere disse modulene
eller applikasjoner i programvaren.
Og vi ønsker ikke å gjøre dette.
Vi ville bare en link å like pensum.
Vi ville ha en link til de ansatte.
Vi ville ha en kobling til videoer og lignende.
Så hvis du ble møtt med nettsteder,
det er fra tredjeparts nettside
men du har ingen kontroll over kildekoden.
Du har ikke tilgang til server, kan du ikke SSH,
du kan SFTP, alt du kan bruke er den lokale web-grensesnitt
og du vil begynne å endre
eller endring av bruks samhandle på andre måter.
Hva kan din første instinkt være?
Hvilke spørsmål kan du spørre av instructure i dette tilfellet,
selskapet slik at du kan slags jobber
rundt disse begrensningene som vi gjorde?
Vi ønsker å legge til menyvalg
men vi kan ikke forandre deres server-kode.
Så hva løsningen kanskje at hint om at?
Yeah.
[Hørbar Remark]
OK.
[Hørbar Remark]
Yeah. Så vi kunne vurdere noe
som en Chrome utvidelse.
Hvis ikke er kjent, en Chrome utvidelsen er egentlig et stykke
av programvare fra Chrome leseren generelt skrevet
i Javascript.
Og det er bare en måte å injisere kode typisk Java kanskje
noen CSS i en web side som du besøker.
Hvorved Chrome utvidelsen er bare konstant overvåking hva
nettsteder du besøker og prøver å oppdage.
Oh hvis du er facebook.com gjøre dette.
Oh hvis du er i isites.harvard.edu gjøre dette.
Så de av dere som kanskje har brukt CS50 sin 2x plugg
in som lar deg øke hastigheten opp videoer er akkurat det.
Så det er interessant, og det er type på riktig spor.
For hvis du ikke har tilgang til serveren, du bare ønsker
å liksom endre DOM den tre som brukeren er å se,
du kan ganske mye bare gjøre det på klientsiden.
Nå er selvfølgelig en åpenbar fangst
for å bruke en Chrome Utvidelsen er hva?
Høyre. Så ikke alle bruker Chrome og hvis føles litt teit
hvis du liksom har til mandat at alle
av brukerne kan bare bruke nettsiden
og se Menyalternativer hvis de har Chrome.
Så hva annet kan vi kanskje vi ønsker å spørre instructure?
>> Så en ting er jeg gjette du kan sikkert legge til en tekst
på nettsiden, ikke sant?
>> OK.
>> Finn ut om du kan faktisk sette HTML i teksten.
>> OK. Bra.
Så vi kunne spørre dem om vi kunne sette HTML i selve teksten.
Så i stedet for å legge inn en tekstlig kunngjøring, kan vi legge til linker?
Kan vi legge til bilder?
Kan vi legge kuler?
Alt som vi kanskje ønsker å gjøre estetisk.
Og det korte svaret er ja.
Det er faktisk en slags WYSIWG,
Hva du ser er hva du Få editor som kommer
med denne stykke programvare
som gjør at du kan redigere.
Ting som startside med mitt navn og Roberts
og Tim og så videre.
Og det fikk oss en del av veien der.
Dessverre er det ikke la oss sette noe her
for eksempel.
Som ikke lar oss sette noe her fordi vi er begrenset
av hva den opprinnelige Forfatterne ville ha oss til å gjøre.
Så vi er ett skritt nærmere.
Hva annet kan vi spør selskapet?
Hva er den andre midlertidige løsninger kanskje?
Det er nødt til å kunne løses.
Hva annet kan du gjøre?
Så du var på rett spore med denne oppfatningen
av klient-side Javascript injeksjon.
Hvordan ellers kan vi få Java inn i området kanskje, ikke sant?
Fordi når du har Javascript,
du kan stort sett gjøre noe selv om din erfaring
med Javascript er begrenset til 50 eller en annen tidligere erfaring,
du vet, at du kan traversere treet
som er en web-side, DOM.
Du husker sikkert at du kan legge til noder eller fjerne noder.
Du kan injisere ting i en web-side.
Faktisk det er akkurat det Det CS50 2x plugg i gjør.
Det river ut iSites ' videospiller og setter
i en annen sammen.
Så hva om selskapet Instructure lot deg
å injisere Java inn i kurset ditt nettsted?
Med andre ord, hva om de tillot deg via deres GUI,
deres WYSIWG grensesnitt til lim inn URL til en JS-fil
og kanskje til og med en. css fil og da de tok seg
av prosessen med å sette inn det på toppen av hver side.
Så sikker nok, dette var den eneste måten vi kunne
for å oppnå dette.
Hvis jeg siden kilde her - og la meg zoome inn og søk
for cs164.net som er en Domenet vi kurset eier.
Legg merke til at via noen serie trinn, det tok en stund å finne
med sin dokumentasjon.
Vi vi er i stand til å si, på toppen av hver nettside hva Canvas utganger
for dette kurset, utgang. css-fil.
Og hvis vi gjør en annen kommando f og søke litt videre,
vil du se at her nede,
nestet med i noen Java kode det er også nevne
av denne nettadressen her.
Så med andre ord, vi liksom har lurt dem
til å injisere uansett CSS,
uansett Java vi vil inn på nettsiden.
Slik at da begs spørsmålet, hva gjør den?
Vel, la oss gå videre og bare ta denne kilden,
lim dette opp her.
Det er forbudt fordi for å simulere dette,
Jeg CHMODet [fonetisk] alt.
Så la meg gi det tilbake.
Les tilgang og nå lesse.
Så hva gjorde vi?
Så, vil du bli bedre på dette spesielt mid-semester
når vi bruker mye vår tid på Javascript.
Men hva betyr dette synes å være å gjøre?
Så man på toppen av dette JS-fil som igjen er inkludert
i hver nettside at Kurset går nå på nettsiden.
Vi sjekket for å se om den typen jQuery er ikke definert.
Så i lekmann sikt hva betyr det?
Hva ville det bety hvis jQuery er udefinert?
Vel, har du Java lastet.
Du har ikke jQuery lastet.
Så håper vi bare at at instructure,
selskapet faktisk er ved hjelp jQuery selv.
Ellers ville vi ha til limer jQuery biblioteket på toppen
av denne filen, slik som å ha tilgang til den.
Og dette er ikke fordi jeg rett og slett ønsker å ha tilgang til ting
som dollartegnet notasjon og andre funksjonelt
som kommer med jQuery.
Hvis du husker dette bibliotek og hvis ukjente
eller hvis det har gått en stund, resten trygg på at vi vil komme til dette
med i et par ukers tid.
Så hva er de tingene vi gjør her?
Så for de som kanskje husker, hva betyr denne syntaksen her bety?
Når du bare passere en anonym funksjon eller lambda-funksjon?
I CS51 snakke med jQuery funksjon som dette.
Når er denne koden kommer til å bli henrettet?
Yeah.
[Hørbar Remark]
Nettopp. Så denne koden av natur
av denne standardfunksjonskall er bare kommer til å bli henrettet
når DOM så å snakke er fullastet.
Alle de HTML topp til bunn, venstre eller høyre har blitt lest
inn i minnet og det er noen trestruktur inne i minnet.
Nå er dette bra fordi hvis jeg ønsker å begynne å spille
rundt med den og endre Menyalternativer, fjerne ting,
legge ting, ville jeg bedre vente
til minst standard DOM er på plass.
Så dette er bare standard jQuery syntaks.
Det er samme som å si når DOM er klar.
Og nå er det virkelig bare en kombinasjon
av jQuery syntaks og noen HTML.
Så for eksempel, bestemte jeg meg for at dette var bare plager meg.
Ingen på campus sier, oh, tar du Comp Sci 164,
eller Comp Sci uansett, du sier CS164 eller CS uansett.
Så liten liten plage, vi ønsker å endre det,
så hvordan kan vi gjøre det med noe sånt Java?
Vel, varsel, hvis jeg gå til siden her
og på toppen av siden, tidligere var CS164.
Hvis jeg åpner opp Chrome, som er en nyttig nettleser
for å gjøre DOM inspeksjoner og du zoome inn her.
Legg merke til at innsiden av denne HTML var et element som hadde en ID
av brødsmuler og at ID gjør hva?
Det identifiserer en av disse nodene i treet
og så snart jeg har unik identifikator for noen blings
av HTML i DOM, nå Jeg kan gjøre hva jeg vil
med denne nettsiden.
Jeg kunne slette hver DOM node.
Hver HTML-koden fra siden og sette noe som jeg vil
men behovene vi er ganske ydmyke.
Jeg bare ønsket å for kodeutklippet her.
Jeg ønsket å først finne avsnittet tabs header
som var en av de overordnede elementer bare over det.
Og jeg ønsket å gå fremover og endring -
Jeg ville heller endring innholdet
av at via denne hmtl fungere til en link til CS164
og da jeg ønsket å endre CSS på det
å ha en vekt på fet skrift.
Og vi vil ikke gå inn i stor detalj på resten av dette her.
Men legg merke til denne linjen her.
Jeg gjorde en global erstatte overalt.
Hovedsak si, overalt ser du et spenn
som har en klasse kalt ellipsible,
det er ikke en standard ting,
Det er akkurat hva de Canvas programvare kaller enkelte klasser.
Hvis den inneholder nøkkelen frase COMPSCI164 gå videre
og erstatte HTML innsiden av slike span med bare CS164.
Og resten av denne er ganske godt kommentert.
Men på sluttresultatet, hva jeg er gjør er manuelt med Chrome
eller hvilken som helst nettleser finne ut hva de unike identifikatorer
ulike DOM noder i treet og mutere dem
på den måten at jeg ønsket.
Og sluttresultatet, nå som vi CHMODet ting riktig er
at nå kan jeg sette en vilkårlig del av HTML over her.
Jeg kan rive ut ting som bunntekst.
Jeg kan rive ut HTML over her og Jeg skal vinke en stor ansvarsfraskrivelse.
Dette er en komplett hack
som skal implementere et nettsted som dette.
Men den slags taler til tankeprosessen
som skal mot midten av semesteret,
spesielt når vi tilbringer tid på Java få deg å tenke
om hvordan du kan løse ulike problemer forhåpentligvis bedre
enn på denne måten.
Men ingrediensene for å løse et problem
som dette egentlig bare redusert til noen grunnleggende.
Å åpne opp for noe som Chrome Inspector
og forståelse hva DOM treet er.
Å vite hva CSS velgere er
for unike IDer eller for klasse navn.
Kjenne noen syntaks om det er i Java ren
eller i jQuery biblioteket å faktisk endre DOM.
Og på slutten av dagen, vi er ganske mye i stand
å bøye programvaren til vår vilje.
Men det er nok en fangst.
Hva er prisen vi er trolig betale for denne komplette hack?
Hva er risikoen?
Yeah.
[Hørbar Remark]
Nettopp. Hvis instructure omdøper en av sine klasser
eller omdøper en av sine IDer eller bare omorganiserer sin HTML
som er helt deres privilegium,
alt dette kan brekke da en av oss er nødt til
å legge merke til det, eller en av dere gutta er nødt til å rapportere
og vi kommer til å ha å tenke over det igjen.
Så kanskje ikke en stor avtale, men fortsatt en trussel.
Hva annet kan skje?
Hva annet er dårlig om denne tilnærmingen?
Det er mindre vanlig i disse dager.
Yeah. Det er litt langsommere ved at -
i stedet for bare får opprinnelige kilden fra serveren.
Du er nå å gjøre ytterligere endringer på klientsiden.
Og ja hvis vi hadde et så mye treg internettforbindelse,
ville du faktisk se mest sannsynlig noen blinker
på skjermen som DOM noder er i endring.
Vi bare tilfeldigvis har en sammenheng,
en ganske rask datamaskin og så det er ganske unnvikende til brukeren.
Men hva om de har Javascript er deaktivert?
Nå er dette en ekstrem hjørne tilfelle i disse dager.
De fleste er - de fleste når de forlater Java på.
Men hvis det er av det som skjer?
Vi ser ingen av det overhodet.
Så kort sagt, å stole på Javascript for noe
som dette får jobben gjort
men takeaway er hvordan vi gikk om dong dette.
Og du kan se selv bare ved å vise kilden
og deretter poking rundt på noen av de to nettadresser på cs164.net.
Hvordan vi faktisk gjorde dette?
Men det er illustrerende for hvordan du kan begynne å bygge mer
interessante Doms og til og med i tilfellet
av dynamisk drevne nettsteder som Facebook-programmet,
eller GChat eller lignende som er konstant trekke inn flere data,
hvordan kan du faktisk endre det grensesnittet.
Men nå, la oss se på rette måten å begynne å gjøre ting.
Så dette året, kurset, i motsetning til for to år siden
når dere først og fremst i PHP for første halvår
og Javascript for siste halvparten, mens to år siden,
vi fokusert mer på mobil med litt PHP, dette året,
vi besluttet å endre ting å fokusere mer
på web-baserte applikasjoner.
Implementeres ikke i parene av mennesker
men i team spesifikt team på fire
og motivasjon var flere.
Men blant dem var det,
med et team på fire er det bare mange flere brikker du kan bite
ut som en gruppe.
Doing web utviklingen har en tendens til å lande seg til ulike aspekter
av prosjektet som du kan deretter delegere blant laget ditt.
For eksempel, vil vi trolig har en eller to av dere
i et gitt team som arbeider på front end, Javascript-koden,
CSS, estetikk.
På det samme prosjektet en annen en eller to av dere vil fokusere
på den bakre enden, databasen schema design, validering
av data, skriver API som front end folk vil jobbe.
Og så vi bare fikk en mye mer pust av muligheter
for folk å samarbeide.
Og så vil du finne hvis du har gjort prosjekter
med bare én partner i det siste,
at med fire vil det være en litt mer utfordrende,
mer interessant, men mye kraftigere å ha alle
av dere samarbeider sammen.
I forhold til forutsetningene, vi trolig vil holde med disse
for katalogen fire tidligere CS kurs.
Og dette er basert på erfaring.
Et par år siden som hentydet til deg tidligere,
vi ganske mye tillatt noen som tok bare 50
eller kanskje noen klasse i videregående skolen for å ta kurset
men det var bare en slik spredning av evner og komfort.
Det gjorde det vanskelig å ha visse samtaler og mye
av studenter i klasse slet.
Så vi tenkte på denne måten,
vi kan liksom gjøre alle en tjeneste kollektivt.
Så ha det i bakhodet.
I form av teamet størrelse, fire vil være standard
hvis du har tre venner med hvem du vil
liker å samarbeide, det er helt greit.
Vi vil ikke mandat bestemte lag for deg.
Hvis du ikke har noen venner eller partnere i tankene for klassen,
ingen big deal, vil vi holde at tankene også, og prøver
å legge til rette for de som typer partnerskap.
I forhold til strukturen i klasse, er dette veldig unormalt.
Kurset vil ikke være strukturert for det meste
rundt forelesninger og vil ikke være strukturert
rundt dere sitter der og stirrer på denne måten
og meg å snakke på denne måten.
I stedet for de fleste av de klasse økter vil være
i form av gruppemøtene.
Enten laget ditt vil samle her eller andre steder på campus
for et par timer på mandag middager eller for et par
av timer på onsdag middager.
I de kommende ukene, Vi vil finne ut hvilken dag
og hvilken tid hvert folk vil være.
Hvis behovet for å være, kan vi finjustere ganger, men vi skal se baserte
på en undersøkelse som dere alle til slutt fylle ut.
Hva skjer på disse møtene?
Så de ukentlige møtene er
der dere først og fremst presentere fremdriften
på ulike prosjekter, mer på dem i et øyeblikk.
Så på disse gruppemøtene, en av lærerstaben og
eller meg selv vil være til stede og målet vil være for hvert
av de fire personene i team for å rapportere om milepæler
at du har eller har ikke oppnådd.
Der milepæl vil bli definert
som undersøker noe, implementere noe,
designe noe, tenker om noe eller lignende,
forsvar design beslutninger.
Så it '- vi mente denne klassen
til spesielt kritisk eller utfordrende.
Så det er ikke bare kommer til å skal snakke om dagen din
og hvordan du faktisk valgte å implementere dette, men jeg og Rob
og Tim som vil møtes i en litt vil være der for å utfordre deg.
Slik at hvis du har gjort en beslutning
og det er ikke nødvendigvis det beste er det helt greit.
Hvis du faktisk har en sterk mening om hvorfor du gjorde det.
Og som svar på skjema, vel, det fungerer
men jeg er ikke helt sikker på er ikke hva som egentlig forventet
på disse møtene.
Så det er egentlig ikke ment å være en toveis samtale
hvor du skal forsvare din beslutninger og også overbevise oss
at banen du har tatt er ideelt beste
eller det er en mulighet for deg å be om tilbakemelding fra oss
og selv dine partnere
med hensyn til hva du kanskje gjøre annerledes.
Og da i særdeleshet disse vil være muligheter
for kodegjennomgang.
Så dere skal skrive Javascript-kode og PHP-koden
og annen teknisk aspekter av hvert prosjekt
og målet vil være i foran en storskjerm,
rundt bordet sånn for en av dere å stå
opp på et tidspunkt den som har gjort mest arbeid
på noen aspekter av Prosjektet har lagt
og å frem koden.
Og gi oss en verbal omvisning i kode og gi oss en mulighet
å si hvorfor du har seks nestede løkker gjennomførings
noe sånt?
Eller hvorfor ikke du har indekser
i databasetabellen ulike emner som vi vil utforske
i løpet av semesteret.
Så noen ganger vil vi har tekniske samtaler enten
i form av disse i person stil møter
der vi alle samles sammen eller via video
å gjøre ting litt asynkron
for enkelhets skyld på særlig tekniske emner
og verktøy som vi vil bruke i løpet av dette semesteret.
Noen populære Java bibliotekene
for eksempel er Backbone.js og Bookshelf.js og Express.js.
Disse er alle verktøy med som du kan lage web-baserte
applikasjoner ved hjelp av Javascript.
Ikke på klientsiden skjønt
men på serversiden ved hjelp et rammeverk kalt Node.js
som er et alternativ til bruke noe sånt som Apache
eller Microsoft IIS eller andre web-server-programvare.
Så får vi faktisk skrive i klassen Javascript-kode,
både på klientsiden som vel som på serversiden.
Vi skal snakke om verktøy som noen
av dere allerede er kjent.
Ting som Git.
Vi vil dykke dypere til ting som SQL og begrensninger
og transaksjoner, og mye av detaljene som sikkert
i en klasse som 50, vi slags bølge våre hender opp for tider skyld
men er evig viktig
når faktisk implementere en prosjekt som kommer til å bli brukt
av faktiske og forhåpentligvis et stort antall brukere
hvor ytelsen skal begynner å gjøre en forskjell.
I PHP verden, vil vi bruke et rammeverk kalt Laravel.
Dette er en MVC-arkitektur.
Hvis vet eller husker at akronym.
Og det er bare en haug med PHP-koden til å lage mye
jobber lettere og å gjøre det enklere
å skrive mer komplekse programvare spesielt prosjekter
som er implementert av flere personer.
For testing, vil vi bruke verktøy som Mockery i PHP enheter
og vi vil komme inn i vanen med ikke bare å skrive kode og sortere
banging på den og anekdotisk prøver å prøver å finne ut,
virker det som du hadde tenkt.
Men heller ikke det passere visse tester.
Så det spesielt hvis en venn av deg
i din gruppe endringer noen kode, kan du være sikker på at
at her har hun ikke brutt noe rett og slett
ved omproduksjon testene
at du allerede har skrevet for denne koden.
For at ikke har regresjoner til buggy tilstander av programvare.
I tillegg er prosjektene
hvor vi vil tilbringe mesteparten av vår tid.
Så det er ingen eksamener.
Det er alle drevet av prosjekter i denne klassen
og det virkelig bare være to per lag.
I hovedsak første halvår av semesteret vil fokusere
på en PHP-baserte nettsteder
som vil ha foran sluttbrukeren grensesnitt både for stasjonære
og eventuelt mobil.
Så dette vil være en mulighet, riktignok tangential til klassen
å faktisk gjøre noe sånt en web-basert mobil grensesnitt
eller hvis du er virkelig bestemt, Android
eller iOS ville være helt greit.
Bare innse at læringskurve der
hvis ukjente ville være litt høyere.
Men det ville spille veldig pent med visjonen
for også å ha hvert prosjekt å ha litt back end API.
Slik at du kan ha en separasjon,
abstraksjon mellom hva du gjør og hva Alice og Bob
og Charlie i din -gruppen kan også i tillegg.
Slik at hver av grensesnitt
eller tilbake endene kan liksom intercommunicate.
Når det gjelder de nærmere detaljer, for rammen,
vi vil stole på Laravel og Veltalende, som er en ORM,
et objekt-forhold Mapper som er bare et lag av programvare
som tar for seg M i MVC, Model.
Det gjør det litt enklere spesielt for store prosjekter
å spørre data fra databaser og å skrive data
og til å representere virkelige verden enheter uten å ha
å skrive rå SQL-kode.
I en verden av Javascript, vi vil igjen bruke Express
og bokhylle, og dette er analoger
i Java verden.
Men ved å bruke istedenfor Apache bruker Node.js
som er stadig mer populært og lar spesielt
for applikasjoner som involverer sanntid interaksjoner,
chart rom og lignende.
Node er mye bedre enn Apache ved bruk -
når implementere prosjekter som det
fordi du kan sende meldinger ved hjelp av modeller som pub og sub,
publisere og abonnere på, hvis kjent med disse uttrykkene.
Så mer på det mot midten av semesteret.
I forhold til forventningene, disse er dem for kurset.
Delta eller se disse sporadiske forhandlingene, tekniske forhandlingene.
Tidsplanen for hvilke til slutt vil sette
på kurs nettstedet.
Delta i alle av møtene.
Så frammøte på hver av gruppemøtene enes sak
etter alt som er der mest av kurset instruksjon
og tilbakemelding og interaksjoner vil skje.
Ukentlig milepæler, vil vi bruke et verktøy som jeg vil gjøre omtale
av i et øyeblikk å generelt tildele deg fra ett eller to
av de ansatte til hver av de fire personer i gruppen.
Ting å gjøre og de ting vil komme i form
hvorfor gjør ikke du Veterinæren gå for dette alternativet.
Hvorfor ikke gå veterinæren dette alternativet og finne ut hvilke
av de to implementering Mulighetene er bedre
mellom nå og si neste uke.
Hvorfor går du ikke gjennomføre dette?
Eller du designe disse databasetabeller.
Og så i korte tidsplanen i kurset går
å være ganske organisk avhengig av prosjektene
at hvert lag taklinger avhengig på hva funnene er
når vetting noen implementering alternativet og avhengig potensielt
på hva sluttbrukerne til slutt ønsker prosjektet å gjøre.
Og så mot at slutten, det er ingen faste tidsfrister per si.
Det vil stort sett være i en rullende oppdrag
av tidsfrister hvert få dager, hver uke basert
på samtalene som du har med ett eller to
av de ansatte ved bordet ditt.
Til syvende og sist, om hva som er grunn er det innsending
av disse to siste prosjektene.
I forhold til hva prosjekter vil bli,
Prosjektene vil enten foreslått
og valgt av dere.
Faktisk, på lotteri skjema for eksempel at du vil bli bedt om
på hva som er ett eller flere prosjekter spesielt som liksom forholde
til campus som du tror ville være attraktivt å gjennomføre.
Siden ett av de forhåpninger for kurset er
at uansett hva prosjektene kommer
ut av dette kurset overleve slutten av semesteret.
Og så særlig hvis de er campus temaer,
enten om det er en annen kurskatalog, shopping verktøy
eller hendelser i kalenderen eller transporttjeneste eller hvilket som helst tall
av populære endelige prosjekter.
Håpet etter utløpet av dette semesteret er
at ethvert slikt prosjekt leve på.
Og faktisk mot at slutten,
hva vi trodde vi gjør er gjøre det litt interessant.
Og også liksom innsikt muligheter
for debatter hvorved for mest ethvert prosjekt som vi
som en klasse takle dette semesteret,
Det vil være to lag er tildelt samme prosjekt.
Den generelle ideen er at de er egentlig ikke ment
å snakke om sin ulike designbeslutninger,
snarere dens ment å være flere av en konkurranse om
som kan til slutt produsere beste design, implementering.
Slik at ved slutten av den semester, kom mai, sender vi en
og ikke begge disse løsninger.
Og vi som et kurs vil ta omsorg av hosting og så videre
slik at dine eksisterende liv on ved enden av fjæren.
Hva gjør disse programmene gjøre?
Kan være hva som helst, noe for en avdeling,
noe for en studentgruppe,
noe for studentene mer generelt som vil være en del
av samtalen i den kommende uken
inntil dykke med hodet først
etter å plukke en håndfull av slike prosjekter.
I forhold til de ansatte, la meg introdusere Tim og Rob
som ønsker å si hei.
Og det er disse gutta som for ett av prosjektene vil være -
for begge prosjektene vil være din primære rådgiver.
I hovedsak for en av de prosjekter, vil Rob være å samle
med deg ukentlig for disse samtalene.
For ett av prosjektene, Tim vil være å samle med deg
for disse samtalene, og vi vil bytte omtrent mid-semester
som vi overgangen prosjekter.
Hvis du liker å bare snakke nærheten til dette mikrofonen.
>> Hei, jeg er Rob.
Jeg ble uteksaminert i mai i fjor fra [uhørbart].
Jeg er veileder i CS her nå.
Spent for kurset.
>> Og jeg er Tim og jeg er faktisk helt ny på området.
Jeg er opprinnelig fra Philadelphia så jeg nettopp startet
opp her et par uker siden, og jeg er virkelig
i åpen kildekode.
Jeg hjelper med å opprettholde Backbone.js prosjekt der noen
av dere kan bli kjent med
og jeg har også opprettet Bookshelf.js prosjekt
at David var nevne.
Så, jeg er spent på å se prosjektene.
>> Ja.
For mer informasjon om Tim minst hvis du går
til kursets hjemmeside og Klikk navnet hans det vil føre
til hans GitHub repository hvis du ønsker å se på noen
av sin åpen kildekode verktøy og prosjekter.
Så i form av karakterer, bare Fordi dette er et spørsmål selv
hvis form for tangential til større visjon av en klasse,
Hvordan vil standpunktkarakterer bestemmes?
Så hva vi vil til slutt være ganske subjektive baserte
on samvirkningene du i løpet -
med i løpet av semesteret basert
på dine bidrag både å kode repositories
og til samtaler som vi har.
Og i et nøtteskall, det vil være basert
på dine bidrag til prosjekter.
Delta mellom den første uke og den siste uken.
Så ikke bekymre deg hvis du har bare fire kurs
under beltet mens noen andre studenter
i klassen kan ha åtte,
vi vil sikkert holde det i tankene.
Omfanget, korrekthet, design og stil på prosjektet,
så de kjente akser.
I hvilken grad du forberede møtet.
Så dette virkelig er ment å være en mulighet for oss
å samle ukentlig og har intelligent og morsom og sortere
av ideell emosjonelle debatter.
Til tider hvor dere gjøre foreslå hvordan du kan løse
noe, og så forsvare det du kan gjøre og Tim rolle
og min rolle og Rob rolle vil være å utfordre deg forhåpentligvis.
Slik at enten du kan bli overtalt til å gå av
på annen implementering retning eller kan være trygg
og føler meg ganske bra om det faktum at, ja,
du tror du har den beste implementering mulig
for dette.
Spesielt og så langt som Det vil være et annet lag arbeids
på at samme prosjekt fra sin egen individuelle vinkel.
Når det gjelder verktøy, så dette vil kanskje av all overtid
og du er velkommen til å bruke hva er av interesse
å for din egen interne team.
Men for det meste del, vil vi ta i bruk
av et gratis verktøy kalt Asana for oppgavebehandling.
Du vil se mer om dette via e-post i de kommende dagene
og det er i hovedsak et verktøy via hvor du kan arbeide mellomrom
og prosjekter for teamet.
Så hvis prosjektet er å gjennomføre fulle [fonetikk].
Dine fire gruppemedlemmer vil være inne i det prosjektet,
i den mappen så å si.
Og du og vi vil være i stand til tildele milepæler og oppgaver
og datoer og kommentarer.
Og det er fint fordi det er integrert med e-post.
Så du kan eller ikke kan besøke webside er det helt opp til deg.
Og du kan også få en samlet følelse
av hva folk er jobbe og få en følelse
av hva som skjer utover din egen spesielle boble
hvis hodet går ned etter en stund med fokus
på en bestemt ting.
For GitHub også, hvis ukjent, er GitHub ett
av de mest populære, om ikke den mest populære repository
ute for kilde kode i disse dager.
Vi vil bruke det som en sentral oppbevaringssted for hvert lag på fire
slik at du fire og deretter vi tre har tilgang til
og kan kommentere i form
av kodegjennomgang ved hjelp GitHub grensesnitt.
Men vi vil introdusere deg for at
hvis ukjent når den tid kommer.
Og det er bare en rask et glimt av Asana.
Hurtig glimt på GitHub og nå la meg pause for eventuelle spørsmål.
Yeah.
[Inaudible Spørsmål]
Godt spørsmål hva vi mener av Python eller Ruby rammer?
De kunne oppnå samme målene spesielt.
Vi måtte bruke PHP i 164 fordi mye
av folks før web erfaringer som kommer ut av 50
som bruker PHP akkurat nå.
Men absolutt, kunne noen av disse prosjektene gjøres i Ruby,
Python, selv Java eller andre rammeverk, Node.js sikkert.
Men vi måtte bruke PHP og vi måtte bruke Node.js
og vi ønsker å standardisere de for begge av prosjektene
slik at det er mye lettere som en klasse
å ha svært lik samtaler
og ikke ha for mange epler og appelsiner i klassen.
Selv om det vil bli skjønn når det gjelder
til de spesielle tilleggene i biblioteker som du kan bruke
for noen av disse miljøer.
Så, ikke noe krav at man er særlig bedre
enn den andre.
Og PHP har en slags en stygg historie, men det er blitt mye,
mye bedre de siste årene.
Så hva som ligger foran?
Ingen lekser eller noe slikt ting i kveld andre
enn å besøke denne nettadressen hvis faktisk av interesse.
Vi vil poste linken på nettsiden
hvis du glemmer hvor den er.
Fristen for dette kommer å være 18:00 på onsdag
slik at Rob og Tim og jeg kan sitte ned den kvelden
og gjennomgå innleveringer og finne ut hvordan man best
for å optimalisere grupper og så videre.
Vi vil gi deg beskjed innen torsdag hvorvidt vi har hatt
til lotteriet, og hvis vi har en flekk
slik at dere kan få studiekort signert til figur
ut hva du ønsker å gjøre.
Og i mellomtiden, hvis Har du spørsmål,
gå til kursets hjemmeside.
E-post ansatte ved cs164.net.
Når vi kommer tilbake på onsdag, det vil fortsatt være dette formatet.
Men trolig starter mid-neste uke eller uken
etter hvor vi divvy opp i mye mindre grupper
med bare fire av dere møte i en tid med meg
og eller Tim og eller Rob.
Tusen takk til teamet i ryggen i dag.
Vi vil se deg på onsdag.