>> Tudo bem.
Bem-vindo à Ciência da Computação 164.
Então, antes de mergulhar com uma visão geral
de que o curso será sobre este semestre e um pouco
de material neste primeiro dia, Pensei em dar-lhe um sentido
de como passamos a noite passada.
Não é tanto como desafio do lado do servidor que enfrentamos
mas um do lado do cliente um.
Então, ter qualquer um de vocês descobriu este site especial apenas ainda
ou lona que alguns Harvard cursos estão agora movendo-se para?
Então Genwi está prestes a morrer um lento morte se você chegou anexado
para isso, é provável que ser substituído por Canvas.
E então pensamos que saltar a bordo e ser parte
deste beta teste usando Canvas que é uma ferramenta de código aberto.
É patrocinado por uma empresa chamada Instructure.
Portanto, há uma corporativo apoio por trás dele.
Mas para a maior parte estamos a usá-lo desta forma.
Mas ontem à noite, quando tentávamos
para obter o website cursos finalizado, nós funcionamos em um monte
da frustração porque esta é um sistema de gerenciamento de aprendizagem
que significa que é um pedaço de software
com o qual você pode gerenciar o conteúdo
usando interface baseada na web.
Você não tem que usar arquivos de configuração do arcano.
Você não tem que saber nada sobre bancos de dados,
é muito bonito e ponto clique em uma maneira sites do Google
ou algo como isso poderia ser.
Mas, como resultado, foi muito duro para fazer algo simples como -
vamos para o site cursos.
Agora, basta colocar as opções do menu neste lado da mão esquerda.
O caso em questão, não há nada há, na verdade, agora
porque a maneira como o software é projetado é que, se você quiser
para instalar as coisas em o menu do lado esquerdo,
você tem que realmente instalar esses módulos
ou aplicações no software.
E nós não queremos fazer isso.
Nós apenas queríamos um link gostar do programa.
Queríamos um link para o pessoal.
Queríamos um link para videos e similares.
Então, se você se depararam com os sites,
é a partir do site de terceiros
mas você não tem controle sobre o código fonte.
Você não tem acesso ao servidor, você não pode SSH,
você pode SFTP, tudo o que você pode usar é a interface web local
e você quer começar a mudar
ou alterando o utilizador interagir através de outros meios.
O que pode a sua primeira instinto ser?
Que perguntas você pode perguntar de Instructure neste caso,
da empresa para que você pode tipo de trabalho
em torno destas limitações como nós fizemos?
Queremos adicionar opções de menu
mas não podemos mudar seu código do servidor.
Então, qual a solução pode sugerir que isso?
É.
[Inaudível Observação]
OK.
[Inaudível Observação]
É. Para que pudéssemos considerar algo
como uma extensão do Chrome.
Se não está familiarizado, um Chrome extensão é essencialmente um pedaço
de software do Chrome navegador geralmente escrito
em JavaScript.
E é apenas uma maneira de injetar código tipicamente JavaScript talvez
alguns CSS em uma web página que você visita.
Pelo qual a extensão Chrome é apenas monitorando constantemente o que
sites que você visita e tentando detectar.
Oh, se você é facebook.com fazer isso.
Oh, se você está em isites.harvard.edu fazer isso.
Então, aqueles de vocês que pode usaram plugue 2x da CS50
em que lhe permite acelerar vídeos para cima é exatamente isso.
Então, isso é interessante e é tipo de no caminho certo.
Porque se você não tem acesso para o servidor, você só quer
para mudar de alguma forma o DOM o árvore que o usuário está vendo,
você pode muito bem apenas fazê-lo do lado do cliente.
Agora é claro que uma captura óbvio
de usar um cromo extensão é o quê?
Certo. Então, nem todo mundo está usando Chrome e se sente espécie de coxo
se você tem uma espécie de para o mandato que todos
de seus usuários podem utilizar apenas o site
e ver as opções do menu se eles têm Chrome.
Então o que mais poderia poderíamos queremos pedir Instructure?
>> Então, uma coisa é que eu acho que provavelmente você pode adicionar um texto
no site, certo?
>> OK.
>> Descubra se você puder realmente colocar HTML no texto.
>> OK. Boa.
Então, poderíamos perguntar-lhes se pudéssemos colocar HTML no próprio texto.
Então ao invés de postar uma textual anúncio, podemos adicionar links?
Podemos adicionar imagens?
Podemos adicionar marcadores?
Tudo o que poderíamos quer fazer esteticamente.
E a resposta curta é sim.
Há de fato uma tipo de WYSIWG,
O que você vê é o que você Obter editor que vem
com este particular pedaço de software
que permite que você edite.
Coisas como a página inicial com o meu nome e Rob
e Tim e assim por diante.
E isso nos levou parte do caminho até lá.
Infelizmente isso não faz vamos colocar nada aqui
por exemplo.
Isso não vamos colocar nada aqui porque estamos limitados
pelo que o original autores queriam que fizéssemos.
Então, nós estamos um passo mais perto.
O que mais poderíamos pedir à empresa?
Quais são os outros Soluções Alternativas talvez?
Tem que ser resolvidas.
O que mais você pode fazer?
Então você estava à direita acompanhar com esta noção
de client-side JavaScript injecção.
De que outra forma poderíamos obter JavaScript no site, talvez, certo?
Porque uma vez que você tem o JavaScript,
você pode fazer muita coisa mesmo que o seu experimentado
com JavaScript é limitado a 50 ou alguma outra experiência prévia,
você sabe, que você pode percorrer a árvore
que é uma página web, o DOM.
Você provavelmente se lembra de que você pode adicionar ou remover nós de nós.
Você pode injetar coisas em uma página da web.
Na verdade é exatamente isso que os 2x CS50 ligar faz.
Rasga as Genwi ' player de vídeo e puts
em um diferente todos juntos.
Assim que se a empresa Instructure permitiu-lhe
para injetar o JavaScript em seu site curso?
Em outras palavras, o que se permitiu-lhe através do seu GUI,
sua interface para WYSIWG cole a URL de um arquivo JS
e talvez até mesmo um arquivo css. e, em seguida, eles cuidaram
do processo de inserção de ele no topo de cada página.
Então, com certeza, esta foi a única maneira que pudemos
para conseguir isso.
Se eu ver o código fonte da página aqui - e deixe-me aproximar e procurar
para cs164.net que é um domínio que o curso próprio.
Observe que através de algumas séries de passos, demorou um tempo para descobrir
com sua documentação.
Nós somos capazes de dizer, no topo de cada página web que saídas Canvas
para este curso, saída. css.
E se fizermos um outro comando f e pesquisar um pouco mais,
você vai ver que aqui em baixo,
aninhadas com algum JavaScript código há também mencionar
desta URL aqui.
Assim, em outras palavras, nós espécie de ter enganado-los
em injetar qualquer que seja CSS,
o que quer que nós JavaScript quer no site.
Para que, então, levanta a pergunta, o que ele faz?
Bem, vamos em frente e basta pegar esta fonte,
cole este aqui em cima.
É proibido porque para simular este,
Eu CHMOD [fonética] tudo.
Então deixe-me dar isso de volta.
O acesso de leitura e agora recarregar.
Então, o que nós fizemos?
Assim, você vai ficar melhor para esta particularmente meio do semestre
quando gastamos um monte de nosso tempo em JavaScript.
Mas o que isso parecem estar fazendo?
Então, um no topo desta Arquivo JS que mais uma vez está incluído
em cada página da web que o Claro que agora é executado no site.
Nós verificamos para ver se o tipo de jQuery não é indefinido.
Assim, em termos leigos O que isso significa?
O que significaria se jQuery é indefinido?
Bem, você tem JavaScript carregada.
Você não tem jQuery carregado.
Então, nós estamos apenas esperando que Instructure,
a empresa na verdade, é usando jQuery si.
Caso contrário, teríamos que cole a biblioteca jQuery no topo
deste arquivo, de modo para ter acesso a ele.
E isso não é porque eu simplesmente querem ter acesso às coisas
como o sinal notação dólar e outro funcionalmente
que vem com jQuery.
Se bem se lembram este biblioteca e se familiarizado
ou se já faz um tempo, descansar certeza vamos chegar a este
com em poucas semanas.
Então, quais são as coisas que estamos fazendo aqui?
Portanto, para aqueles que podem se lembrar, o que esta sintaxe aqui significa?
Quando você acaba de passar por um anônimo função ou função lambda?
Em CS51 falar com o função jQuery assim.
Quando é esse código vai ser executado?
É.
[Inaudível Observação]
Exatamente. Portanto, este código, por natureza,
desta chamada de função padrão só vai começar executado
quando o DOM assim falar é totalmente carregado.
Todo o topo HTML para baixo, esquerda ou direita foi lido
na memória e há algum estrutura de árvore dentro da memória.
Agora isso é bom porque se eu quero começar a jogar
redor com ele e mudando o As opções de menu, removendo coisas,
acrescentando coisas, é melhor eu esperar
até pelo menos o padrão DOM está no lugar.
Portanto, esta é apenas padrão sintaxe jQuery.
É equivalente a dizer quando o DOM está pronto.
E agora é realmente apenas uma combinação
de sintaxe jQuery e alguns HTML.
Assim, por exemplo, eu decidi que isso estava me incomodando.
Ninguém no campus, diz, oh, você está tomando Comp Sci 164,
ou Comp Sci o que quer, você CS164 dizer ou o que quer que CS.
Então, pouco menor incômodo, nós queremos mudar isso,
assim como podemos fazer isso com algo parecido com JavaScript?
Bem, o aviso prévio, se eu ir para a página aqui
e no topo da página, anteriormente era CS164.
Se eu abrir o Chrome, que é um navegador útil
para fazer inspeções DOM e você aumenta o zoom aqui.
Observe que dentro desta HTML era um elemento que tinham um ID
de farinha de rosca e ID que faz o quê?
Identifica uma única dos nós da árvore
e assim que eu tenho a identificador único para algum pedaço
de HTML no DOM, agora Eu posso fazer o que eu quiser
com esta página web.
Eu poderia apagar cada nó DOM.
Cada tag HTML da página e colocar tudo o que eu quero
mas necessidades que são bastante humildes.
Eu simplesmente queria para o trecho de código aqui.
Eu queria primeiro encontrar o cabeçalho da seção guias
que era um dos pais elementos apenas acima disso.
E eu queria ir em frente e mudança -
Eu queria sim mudança os conteúdos
de que através desta HTML função de um link para CS164
e então eu queria alterar o CSS nele
ter uma espessura de fonte de negrito.
E nós não vamos entrar em grandes detalhes sobre o resto deste aqui.
Mas observe esta linha aqui.
Eu fiz uma substituição global em todos os lugares.
Essencialmente, dizendo: em qualquer lugar que você vê um palmo
que tem uma classe chamado ellipsible,
isso não é uma coisa normal,
isso é apenas o que o Canvas software chama determinadas classes.
Se ele contém a chave frase COMPSCI164 vá em frente
e substituir o HTML dentro de qualquer período com apenas CS164.
E o resto é muito bem comentado.
Mas, no resultado final, o que eu sou fazendo é manualmente com Chrome
ou qualquer navegador de descobrir o que os identificadores únicos são
vários nós DOM no árvore e transformando-os
da maneira que eu queria.
E o resultado final, agora que nós CHMOD coisas corretamente é
que agora eu posso colocar um arbitrário pedaço de código HTML aqui.
Eu posso arrancar as coisas como o rodapé.
Eu posso arrancar HTML aqui e Eu deveria acenar um enorme aviso de isenção.
Este é um hack completo
a ser implementando um site como este.
Mas que tipo de fala ao processo de pensamento
que deveria para o meio do semestre,
especialmente quando passar o tempo em JavaScript você pensar
sobre como você pode resolver vários problemas espero que melhor
que deste modo.
Mas os ingredientes para resolver um problema
como esta realmente apenas reduzida a alguns princípios.
Abrindo-se para algo como Inspector do Chrome
e compreensão que a árvore DOM é.
Saber o que o Seletores CSS são
para IDs exclusivos ou para nomes de classes.
Sabendo alguma sintaxe se é em JavaScript puro
ou em jQuery biblioteca para realmente mudar o DOM.
E no final do dia, estamos muito bem capaz
dobrar o software a nossa vontade.
Mas provavelmente há um porém.
Qual é o preço que é provavelmente pagando por este hack completo?
Qual é o risco?
É.
[Inaudível Observação]
Exatamente. Se Instructure renomeia uma das suas aulas
ou renomeia um de seus IDs ou apenas reorganiza seu HTML
que é totalmente sua prerrogativa,
tudo isso poderia quebrar e em seguida, um de nós vai ter
notá-lo ou um de vocês caras vai ter de informar
e nós vamos ter para pensar sobre isso de novo.
Então, talvez não um enorme lidar, mas ainda uma ameaça.
O que mais poderia acontecer?
O que mais é ruim sobre esta abordagem?
É menos comum nos dias de hoje.
É. É um pouco mais lenta em que -
ao invés de apenas obter o original a partir do servidor.
Você está agora fazendo adicional do lado do cliente muda.
E, de fato, se tivéssemos um modo conexão com a internet muito lenta,
você realmente ver provavelmente alguns flashes
na tela como DOM nós estão mudando.
Nós só acontecerá a ter uma conexão,
um computador muito rápido e assim por é bastante evasivo ao usuário.
Mas e se eles têm JavaScript desativado?
Agora, este é um extremo caso canto estes dias.
A maioria das pessoas - a maioria quando saem JavaScript diante.
Mas se ele está fora o que acontece?
Nós não vemos qualquer de que qualquer.
Assim, em breve, contando com JavaScript para alguma coisa
assim começa o trabalho feito
mas o takeaway é como fomos sobre dong isso.
E você pode ver por si mesmo apenas vendo a fonte
e depois picar ao redor em qualquer das duas URLs em cs164.net.
Como nós realmente fez isso?
Mas a sua ilustrativos de como você pode começar a construir mais
DOM interessantes e ainda no caso
sites de acionados de forma dinâmica como o aplicativo do Facebook,
ou GChat ou semelhantes que são constantemente a puxar em mais dados,
como você pode realmente mudar essa interface.
Mas agora, vamos olhar para o caminho certo para começar a fazer as coisas.
Portanto, este ano, o curso, ao contrário de há dois anos
quando vocês principalmente em PHP para o primeiro semestre
e JavaScript para o último metade enquanto que há dois anos,
nós nos concentramos mais no celular com um pouco de PHP, este ano,
decidimos mudar coisas para se concentrar mais
em aplicações baseadas na web.
Implementado não em pares de pessoas
mas em equipes especificamente equipes de quatro
e as motivações foram vários.
Mas entre eles eram de que,
com uma equipe de quatro pessoas há apenas muito mais peças você pode morder
fora como um grupo.
Fazer evolução da web tende a aterrar-se a diferentes aspectos
do projeto que você puder então delegar entre sua equipe.
Por exemplo, nós vamos provavelmente ter um ou dois de vocês
de uma determinada equipe trabalhando no front-end, o código JavaScript,
o CSS, a estética.
No mesmo projeto outro um ou dois de vocês vão se concentrar
na extremidade traseira, a base de dados projeto de esquema, a validação
de dados, gravando a API que os finais pessoas da frente vai funcionar.
E, assim, ficou muito mais fôlego de oportunidades
para as pessoas a colaborar.
E assim que você vai encontrar se você já fez projetos
com apenas um sócio no passado,
que, com quatro que vai ser um pouco mais desafiador,
mais interessante, mas muito mais poderoso do que ter tudo
de vocês colaborando juntos.
Em termos de pré-requisitos, que provavelmente vai ficar com estes
para o catálogo quatro cursos anteriores do CS.
E isso é baseado na experiência.
Um par de anos atrás, como aludido antes,
nós praticamente permitido quem tomou apenas 50
ou talvez alguma classe em alta escola para fazer o curso
mas havia apenas como um spread de habilidades e níveis de conforto.
Ele fez que é difícil ter certas conversas e muito
dos estudantes no classe lutou.
Então pensamos desta forma,
podemos espécie de fazer todos um favor coletivamente.
Portanto, manter isso em mente.
Em termos de tamanho da equipe, quatro será o padrão
se você tem três amigos com quem tinha
como fazer parceria, isso é totalmente bom.
Não vamos mandato equipes específicas para você.
Se você não tem amigos ou parceiros em mente para a classe,
não é grande coisa, vamos continuar que mente tão bem e tentar
para facilitar os tipos de parcerias.
Em termos de estrutura do classe, isto é muito anómala.
O curso não será estruturada para a maior parte
em torno de palestras e não vai ser estruturado
em torno de vocês sentado lá olhando desta forma
e me falar desta maneira.
Em vez disso a maior parte do sessões de classe será
na forma de reuniões de equipe.
Ou o seu time vai reunir aqui ou em outro lugar no campus
por um par de horas na segunda-feira tardes ou por um par
de horas na quarta-feira tardes.
Nas próximas semanas, vamos descobrir qual dia
e que cada vez gente vai ser.
Se a necessidade de ser, podemos ajustar o vezes, mas veremos Based
em uma pesquisa que vocês em última análise, preencher.
O que acontece nessas reuniões?
Assim, as reuniões semanais é
onde vocês principalmente apresentar os avanços
em vários projetos, mais sobre aqueles em um momento.
Então, nessas reuniões de equipe, um dos docentes e
ou eu mesmo estará presente eo objetivo será para cada
das quatro pessoas no equipe para informar sobre os marcos
que você tem ou não conseguiram.
Onde a marca será definida
como pesquisar alguma coisa, implementar algo,
projetar algo, pensando sobre algo ou similar,
defender as decisões de design.
Assim é - que significava esta classe
de particularmente crítico ou desafiador.
Então não é só ir a ser falar sobre o seu dia
e como você realmente escolheu implementar isso, mas eu e Rob
e Tim, que vai conhecer um pouco vai estar lá para desafiá-lo.
Assim que se você tomou uma decisão
e não é necessariamente o melhor que está bem.
Se você realmente tem um forte opinião a respeito de por que você fez isso.
E na resposta do forma, bem, ele funciona
mas eu realmente não estou certo é não o que realmente espera
nessas reuniões.
Então é realmente concebido para ser uma conversa bidirecional
em que você defender a sua decisões e também nos convencer
que o caminho que você tem tomada é idealmente melhor
ou é uma oportunidade para você para solicitar o feedback de nós
e até mesmo seus parceiros
quanto ao que você pode fazer de forma diferente.
E, em seguida, em particular estes serão oportunidades
para revisão de código.
Então vocês estão escrevendo Código PHP e JavaScript código
e outro técnico aspectos de cada projeto
ea meta estará em frente de uma TV de tela grande,
à volta da mesa como esta para um de vocês para ficar
em um momento quem tem vindo a fazer mais trabalho
em algum aspecto o projeto ter colocado
e apresentar o código.
E dá-nos uma visita verbal do código e dar-nos uma oportunidade
dizer por que você tem seis loops aninhados execução
uma coisa dessas?
Ou por que você não tem índices
em sua tabela de banco de dados diferentes tópicos que nós vamos explorar
ao longo do semestre.
Então, de vez em quando vamos tem palestras técnicas ou
sob a forma destes em reuniões pessoa de estilo
onde todos se reúnem em conjunto ou através de vídeo
para tornar as coisas um pouco assíncrona
pelo amor de conveniência em temas particularmente técnicos
e ferramentas que usaremos durante este semestre.
Alguns JavaScript populares bibliotecas
por exemplo, são Backbone.js e Bookshelf.js e Express.js.
Estas são todas as ferramentas com que você pode fazer com base na Web
aplicações usando JavaScript.
Não no lado do cliente, embora
mas no lado do servidor usando um quadro chamado Node.js
que é uma alternativa ao usando algo como Apache
ou o Microsoft IIS ou outros software de servidor web.
Então, vamos realmente escrever em o código JavaScript classe,
tanto no lado do cliente como bem como sobre o lado do servidor.
Falaremos sobre ferramentas com as quais alguns
de vocês já estão familiarizados.
Coisas como Git.
Vamos mergulhar no mais profundo para as coisas como SQL e restrições
e transacções e muito dos detalhes que certamente
em uma classe como 50, que tipo de acenar as mãos para cima para tempos bem
mas são cada vez mais importante
quando, na verdade, a implementação de um projeto que vai ser utilizado
por real e espero que grande número de usuários
onde o desempenho vai começar a fazer a diferença.
No mundo do PHP, usaremos um quadro chamado Laravel.
Esta é uma arquitetura MVC.
Se conhecer ou relembrar que sigla.
E é apenas um monte de Código PHP para fazer um monte
de postos de trabalho mais fácil e para torná-la mais fácil
escrever mais complexo software especialmente projetos
que são implementados por várias pessoas.
Para os testes, vamos usar ferramentas Zombaria como em unidades de PHP
e nós vamos adquirir o hábito de não apenas a escrita de código e classificar
de bater nele e informalmente tentando tentando descobrir,
funciona como pretendido.
Mas, em vez fá-lo passar alguns testes.
Assim que especialmente se um amigo seu
em suas mudanças de grupo algum código, você pode ter certeza
que aqui ela não tem quebrado nada, simplesmente
executando novamente os testes
que você já escrita para esse código.
Assim que não tenha regressões com erros estados de software.
Além disso, os projetos é
onde passaremos maior parte do nosso tempo.
Portanto, não há exames.
Tudo é conduzido por projetos nesta classe
e não há realmente ser apenas duas equipes por.
Essencialmente o primeiro semestre do semestre incidirá
em um sites baseados em PHP
que terão utilizador final frontal as interfaces tanto para a área de trabalho
e opcionalmente móvel.
Portanto, esta será uma oportunidade, embora tangencial à classe
para realmente fazer algo como uma interface baseada em web móvel
ou se você é realmente determinado, Android
ou iOS seria perfeitamente bem.
Basta perceber que o curva de aprendizado não
se familiarizado faria ser pouco maior.
Mas ele iria jogar muito muito bem com a visão
de também ter cada projeto ter alguma API back-end.
De modo que você pode ter uma separação,
abstração entre o que você está fazendo eo que Alice e Bob
e Charlie em sua grupo são também bem.
Para que cada um de seus front-ends
ou para trás extremidades pode de alguma forma se intercomunicam.
Em termos de especificações, para o quadro,
vamos contar com Laravel e Eloqüente que é um ORM,
um mapeador objeto-relação que é apenas uma camada de software
que aborda a M no MVC, o modelo.
Isso torna um pouco mais fácil especialmente para grandes projetos
para consultar dados de bases de dados e gravar dados
e para representar mundo real entidades sem ter
para escrever o código SQL puro.
No mundo do JavaScript, que novamente vai utilizar o Express
e Bookshelf que são análogos
no mundo JavaScript.
Mas em vez de usar Apache usando Node.js
que é cada vez mais popular e permite particularmente
para aplicações que envolvam interacções em tempo real,
quartos gráfico e afins.
Node é muito melhor do que quando se usa Apache -
ao implementar projetos como o que
porque você pode enviar mensagens usando modelos como pub e sub,
publicar e assinar, se familiarizados com essas frases.
Então, mais sobre isso mais para a meio do semestre.
Em termos de expectativas, estes são os para o curso.
Participar ou assistir a esses ocasional palestras, palestras técnicas.
A programação para que acabará por colocar
no site de cursos.
Participar de tudo das reuniões.
Assim, é necessária a presença cada um causa dos reuniões de equipe
depois de tudo que é onde a maioria de instrução do curso
e feedback e interações vai acontecer.
Marcos semanais, usaremos uma ferramenta que eu vou fazer menção
de um momento para geral atribuir-lhe a partir de um ou dois
dos membros da equipe a cada um dos quatro pessoas no grupo.
Coisas para fazer e aqueles as coisas vão vir na forma
de por que você não vet ir esta opção.
Por que você não ir vet esta opção e descobrir qual
dos dois implementação possibilidades são melhores
entre agora e dizer na próxima semana.
Por que você não vai implementar isso?
Ou você projetar estes tabelas de banco de dados.
E assim, em breve a programação no curso vai
a ser bastante orgânica dependendo dos projectos
que cada equipe tackles dependendo no que seus resultados são
quando vetar alguma implementação opção e, dependendo potencialmente
sobre o que os usuários finais, em última instância deseja que o projeto de fazer.
E assim, para esse fim, não há prazos fixos por exemplo.
Não vai muito bem ser em uma atribuição de rolamento
de prazos cada poucos dias, a cada semana, com base
nas conversas que você tem com um ou dois
dos membros da equipe à sua mesa.
Em última análise, embora o que é devido é a submissão
destes dois projectos finais.
Em termos do que o projetos serão,
Os projetos ser qualquer proposta
e selecionados por vocês.
Na verdade, a forma de loteria por exemplo, você será solicitado
sobre o que são um ou mais projetos particularmente que de alguma forma se relacionam
para o campus que você acha que faria ser atraente para implementar.
Desde uma das esperanças para o curso é
que quaisquer projetos vêm
deste curso sobreviver o final do semestre.
E então particularmente se eles são temas do campus,
se se isso é outra catálogo de cursos, ferramenta de compras
ou eventos de calendário ou serviço de transporte ou qualquer número
dos projetos finais populares.
A esperança após o término deste semestre é
que tal projeto viver.
E, de fato para esse fim,
o que nós pensamos que fazemos é torná-lo um pouco interessante.
E também uma espécie de oportunidades de insight
para debates em que para mais qualquer projeto que nós
como uma classe resolver este semestre,
haverá duas equipes atribuída a esse mesmo projeto.
A idéia geral é que eles não estão realmente suposto
para falar sobre a sua várias decisões de design,
sim o seu significado ser mais de uma competição quanto aos
que em última instância pode produzir o melhor concepção, implementação.
De modo que no final do semestre, venha maio, nós enviamos um
e não de ambas as soluções.
E nós, como um curso terá cuidar da hospedagem e assim por diante
de modo que suas vidas legados sobre a extremidade da mola.
O que essas aplicações fazem?
Pode ser qualquer coisa, algo para um departamento,
algo para um grupo de estudantes,
algo para os alunos mais geralmente que fará parte
da conversa na próxima semana
até mergulhar de cabeça
depois de pegar um punhado de tais projetos.
Em termos de pessoal, vamos me apresentar Tim e Rob
que gostaria de dizer Olá.
E é para esses caras que um dos projetos será -
para ambos os projectos será o seu principal assessor.
Essencialmente para um dos projetos, Rob estará reunida
com você semanalmente para estas conversas.
Para um dos projetos, Tim se reunirão com você
para os chats e vamos trocar cerca de meio do semestre
como transição projetos.
Se você gosta de apenas falar próximo deste microfone.
>> Oi, eu sou Rob.
Eu me formei em maio passado a partir de [inaudível].
Eu sou preceptor em CS aqui agora.
Animado para o curso.
>> E eu sou Tim e eu estou realmente completamente novo para a área.
Sou originalmente de Filadélfia então eu comecei a
aqui um par de semanas atrás e eu estou realmente
em software de código aberto.
Eu ajudo com a manutenção da Projeto Backbone.js onde alguns
de que você pode estar familiarizado com
e eu também criou a Bookshelf.js projeto
que David estava mencionando.
Então, eu estou animado para veja os projetos.
>> Fato.
Para mais informações sobre Tim, pelo menos se você for
a página inicial do curso e clique o nome dele ele vai levar
ao seu repositório GitHub se que você gostaria de olhar para alguns
de seu código-fonte aberto ferramentas e projetos.
Então, em termos de notas, apenas Porque este é um FAQ mesmo
se uma espécie de tangente ao visão maior de uma classe,
Como é que as notas finais ser determinado?
Então, o que nós vamos, em última instância ser bastante subjetivas baseadas
sobre as interações que você durante o curso -
com o seu sobre o curso do semestre base
em suas contribuições tanto para repositórios de código
e conversas que temos.
E, em uma casca de noz, será baseado
em suas contribuições aos projetos.
O delta entre o primeiro semana ea semana passada.
Então não se preocupe se você têm apenas quatro cursos
com o seu cinto enquanto alguns outros estudantes
na classe pode ter oito,
vamos certamente continuar isso em mente.
O escopo, correção, design e estilo de seu projeto,
para que esses eixos familiares.
O grau em que você preparar para a reunião.
Então, isso realmente é feito para ser uma oportunidade para nós
reunir semanalmente e têm inteligente e divertido e tipo
debates de idealmente emocionais.
Às vezes em que vocês fazem propor como você pode resolver
alguma coisa e, em seguida, defender o que que você pode fazer eo papel de Tim
e meu papel eo papel de Rob vai estar para desafiá-lo, esperançoso.
Para que seja possível ser convencido a ir para fora
em alguma outra aplicação direção ou pode estar confiante
e sinto muito bem sobre o fato de que, sim,
você acha que tem a melhor implementação possível
para este.
Particularmente e, tanto quanto haverá outro trabalho em equipa
no mesmo projeto de o seu próprio ângulo individual.
Em termos de ferramentas, de modo que este talvez de todas as horas extras
e você está convidado a usar tudo o que é de interesse
Para a sua própria equipe interna.
Mas para a maior parte, vamos fazer uso
de uma ferramenta gratuita chamada Asana para o gerenciamento de tarefas.
Você verá mais sobre isso via e-mail nos próximos dias
e é essencialmente uma ferramenta através do qual você pode trabalhar os espaços
e projetos para a equipe.
Portanto, se seu projeto é implementar completos [fonética].
Seus quatro membros da equipe estar dentro desse projeto,
nessa pasta por assim dizer.
E você e nós vamos ser capazes de atribuir metas e fazer do
e as datas e os comentários.
E é bom porque é integrado com o e-mail.
Assim, você pode ou não pode visitar a site é totalmente até você.
E você também pode obter um sentido agregado
de que as pessoas são trabalhar e ter uma noção
do que está acontecendo para além sua própria bolha especial
se sua cabeça vai para baixo depois de um tempo se concentrando
em uma coisa particular.
Para GitHub também, se desconhecido, GitHub é um
dos mais populares, se não o repositório mais popular
lá fora, para fonte codificar esses dias.
Nós vamos usar isso como uma central de repositório para cada equipe de quatro
de modo que você quatro e, em seguida, nós três têm acesso a
e pode comentar na forma
de revisões de código, usando A interface do GitHub.
Mas nós vamos apresentá-lo para que
se estranha quando chega a hora.
E isso é apenas uma rápida um vislumbre de Asana.
Vislumbre rápida no GitHub e agora deixe-me fazer uma pausa para todas as perguntas.
É.
[Inaudível Pergunta]
Boa pergunta o que pensamos de quadros Python ou Ruby?
Eles poderiam atingir o mesmos objetivos, em particular.
Nós acontecer usar o PHP em 164, porque um monte
de web antes das pessoas experiências saindo de 50
que usa PHP agora.
Mas com certeza, poderia qualquer um desses projetos ser feito em Ruby,
Python, Java ou até mesmo outro frameworks, Node.js certamente.
Mas nós acontecer de você usar o PHP e nós acontecer de você usar o Node.js
e queremos padronizar aqueles para ambos os projectos
de modo que é muito mais fácil como uma classe
ter muito semelhante conversas
e não tem muitas maçãs e laranjas na classe.
Mesmo que não haverá discrição quando se trata
para os add-ons específicos em bibliotecas que você pode usar
para um desses ambientes.
Assim, não há alegação de que um é particularmente melhor
do que o outro.
E PHP tem uma espécie de um feio história mas é chegado muito,
muito melhor nos últimos anos.
Então, o que está por vir?
Sem lição de casa ou qualquer coisas esta noite outra
do que para visitar este URL se de fato de interesse.
Vamos postar o link no site
se você esquecer onde é.
O prazo para isso vai para ser 06:00 na quarta-feira
para que Rob e Tim e eu pode sentar-se naquela noite
e analisar as submissões e descobrir a melhor forma
para optimizar os grupos e assim por diante.
Vamos informá-lo até quinta-feira ou não tivemos
a loteria e se temos um ponto
para que vocês possam obter cartões de estudo assinou contrato com a figura
o que você quer fazer.
E nesse meio tempo, se você tem alguma dúvida,
ir para o site do curso.
E-mail pessoal no cs164.net.
Quando chegamos de volta na quarta-feira, será ainda este formato.
Mas provavelmente começando meados da próxima semana ou na semana
depois onde dividir em grupos muito pequenos
com apenas quatro de vocês reunidos em um tempo comigo
e ou Tim e ou Rob.
Muito obrigado a a equipe em volta hoje.
Vamos vê-lo na quarta-feira.