CS 61 | Sistemas de Base de Dados | Primavera 2020

, Author

Exploits de uma mãe (de XKCD)https://xkcd.com/327/

Descrição do curso

ORC. Este curso estuda a gestão de grandes corpos de dados ou informações. Isto inclui esquemas para a representação, manipulação e armazenamento de estruturas complexas de informação, assim como algoritmos para processar estas estruturas de forma eficiente e para a recuperação da informação que contêm. Este curso ensina aos alunos técnicas para alocação e desalocação de armazenamento, recuperação (formulação de consultas), e manipulação de grandes quantidades de dados heterogêneos. Espera-se que os alunos programem e se envolvam em um projeto no qual estudam aspectos importantes de um sistema de banco de dados: formas de organizar um banco de dados distribuído compartilhado por vários computadores; transações que são processadas local e globalmente; garantias de robustez dos dados armazenados contra falhas; garantias de segurança e integridade dos dados contra acesso não autorizado; privacidade; esquemas orientados a objetos para dados multimídia; indexação, hashing, controle de concorrência, mineração de dados, armazenamento de dados, bancos de dados móveis e estruturas de arquivos de armazenamento.

Objetivos de aprendizado O objetivo final deste curso é equipar você para usar os dados para tomar decisões orientadas a dados em vez de tomar decisões sobre intuição ou adivinhação. Depois de completar este curso você deve ser capaz de:

  1. Consultar bases de dados existentes para obter informações. Passaremos as primeiras semanas do curso aprendendo a linguagem padrão de consulta de bancos de dados chamada Structured Query Language (aka SQL, aka ‘sequel’). Isto dar-lhe-á as ferramentas necessárias para consultar bases de dados existentes para obter informações sobre os dados que possuem.
  2. Desenhe as suas próprias bases de dados eficientes. Nós passaremos as próximas semanas examinando como estruturar suas próprias bases de dados, elaborando tabelas e considerando fatores como redundância, confiabilidade e velocidade.
  3. Entenda o que se passa debaixo do capô. A seguir vamos explorar como os bancos de dados operam, recuperando dados de forma rápida e precisa, mesmo com vários usuários acessando e atualizando dados simultaneamente.
  4. Descrever novas e em desenvolvimento tecnologias de bancos de dados. Finalmente vamos olhar para novas tecnologias de bases de dados, tais como bases de dados NoSQL e blockchains.

Ao longo de todo teremos vários conferencistas convidados de especialistas que trabalham na área. Veja a página de agenda para mais detalhes.

Prerequisito CS 50. Eu também vou assumir que você está familiarizado com Python.

Quem, quando, onde

Instrutor Tim Pierson | 210 Sudikoff
horário de expediente: a maioria das semanas terça. 13:30 – 14:30, qui. 13:30 – 14:30 (confirmar via calendário Canvas), e por marcação. Veja o link Zoom em Tela para reuniões virtuais. Assistente de graduação Almas Abdibayev
hora de escritório: mantido em Tela Palestras 2 horas | MWF 14:10 – 15:15 Fuso Horário Leste | Palestras Online estarão online e gravadas neste termo usando Zoom – veja Tela para detalhes de acesso. Ao participar da reunião online, por favor desligue a sua câmara e microfone. Se você tiver uma pergunta, por favor pressione o botão “Levantar a mão” no Zoom. Se eu não ligar para você em um curto período de tempo, por favor, desligue, ligue a sua câmera e pergunte. Vamos elaborar mais regras à medida que formos… Eu não planejo usar regularmente x horas, mas às vezes posso usá-las para faltar às aulas, para pôr em dia o material, ou para uma sessão opcional, informal, para trabalhar através de exemplos. Certifique-se de manter este horário livre no caso de precisarmos usá-lo. Teremos frequentemente exercícios nas aulas para experimentar novos conceitos em uma base de dados ao vivo. Google e StackOverflow serão seus amigos, não hesite em usá-los (a menos que receba instruções em contrário)! Ajude-nos: Horário de expediente O horário de expediente também estará online via Zoom. Eu estarei disponível online durante o horário de expediente, mesmo que não haja dúvidas. Se você gostaria de marcar uma reunião privada, envie-me um e-mail e encontraremos um tempo para falar. Ajuda: Slack Espere um convite para um canal Slack após o primeiro dia de aula. Encorajo-o vivamente a fazer e responder a perguntas lá. Anúncios Monitorar Tela para anúncios periódicos de todo o curso. Textbook Database System Concepts, 7ª edição, por Silberschatz, Korth, e Sudarshan. Recomendo vivamente a versão do ebook em vez da versão em papel (a versão em papel nem sequer está encadernada – é uma colecção de folhas soltas!). Enquanto o livro Silberschatz será o nosso principal livro de texto, e toda a leitura atribuída será a partir desse livro de texto, outro recurso útil é o Database Systems: Design, Implementação, & Gestão, 13ª edição, por Coronel e Morris. Outro grande recurso é o https://www.mysqltutorial.org.

Avaliação

As notas nesta classe serão uma combinação de um projeto de termo longo, vários trabalhos de laboratório, um exame intermediário e a participação na classe. Uma nota total de pelo menos 60% é necessária para passar neste curso.

Projeto (40%)

Durante o período do curso você trabalhará em um projeto relacionado ao banco de dados de sua escolha com outros três alunos. Os detalhes dos requisitos do projeto estão aqui.

Labs (30%)

Haverá três trabalhos de laboratório (além do Lab 0 que é simplesmente para coletar informações) que juntos respondem por 30% da nota neste curso. Os pontos para cada laboratório são:

  • Lab 1: 5%
  • Lab 2: 10%
  • Lab 3: 15%.

Requisitos para submissões de laboratório: Os laboratórios são projetados para serem concluídos fora da aula e devem ser submetidos eletronicamente via Tela antes do prazo indicado na Tela. Mesmo quando um laboratório tem alguns exercícios escritos, você deve digitar um arquivo ou escanear seu trabalho escrito e enviá-lo eletronicamente. Para enviar os resultados do seu programa, envie um arquivo em formato pdf e/ou uma captura de tela, conforme o caso. Para texto simples, você pode usar um programa como TextEdit, NotePad, ou Emacs, ou mesmo Word, mas não se esqueça de salvar como um pdf. Para uma captura de tela, você pode usar o Preview no Mac (no menu “File”) ou o botão PrntScrn no Windows.

Você pode trabalhar com um parceiro nestas tarefas de laboratório (veja Colaboração abaixo). Além disso:

  • Se você trabalhou com um parceiro, inclua seu nome e o nome de seu parceiro, ou se você trabalhou sozinho, declare “sem parceiro” em um comentário em sua submissão.
  • Se você trabalhou com um parceiro e acabou com uma única solução compartilhada, indique isso em um comentário na solução e na submissão. Cada parceiro deve submeter a mesma solução. A solução será então classificada uma vez com a mesma nota atribuída a ambos os parceiros.
  • Se você trabalhou com um parceiro mas escreveu código separado, indique a colaboração mas que você tem submissões diferentes. Indique isto tanto no código como na submissão. Cada um de vocês deve carregar sua própria solução, e cada um receberá uma nota separada.
  • Colha todos os seus arquivos de código em um único arquivo zip e carregue esse zip, ao invés de um monte de arquivos separados.

Política tardia Due via Canvas na data e hora anotadas na atribuição de Canvas. Penalidades: < 8 horas: 10%; < 24 horas: 20%; < 48 horas: 40%; mais: sem crédito.
É permitido no máximo uma apresentação tardia (até 48 horas) sem penalização; sem necessidade de desculpa. Indique na sua submissão que você está escolhendo usar o seu passe livre; não desfaça a escolha. Isto não pode ser combinado com uma penalidade (por exemplo, você não pode tomar uma penalidade de 8 horas em cima do passe livre de 48 horas). Se você estiver trabalhando como parceiro, isso conta como passe livre para ambos. As rubricas de classificação específica serão fornecidas para cada laboratório.

Exames (20%)

Haverá um exame intermediário que valerá 20% da nota final (sem final – o seu projeto conta como final). Você está autorizado a usar uma página de 8,5 x 11 polegadas para o exame, mas você não deve incluir respostas ou código de exames anteriores do CS61, a menos que tenha sido explicitamente fornecido pelo instrutor ou parte do material coberto na aula.

Se você tiver perguntas sobre a sua nota no exame, ou quiser que uma pergunta seja revalidada, consulte a sua TA dentro de uma semana a partir da data em que o exame foi devolvido à turma. Se você solicitar uma revalidação de uma determinada questão, nós nos reservamos o direito de revalidar todo o seu exame.

Participação da classe (10%)

A maioria das aulas terá uma parte prática onde trabalharemos através de uma série de problemas em um banco de dados ao vivo. No final desta parte da aula você poderá ser selecionado aleatoriamente (com substituição) para apresentar sua solução. A sua apresentação será classificada da seguinte forma:

  • 0: Nada de substância
  • 1: Sua solução precisa de trabalho significativo
  • 2: Correto ou principalmente correto.

Se você não puder participar da aula via Zoom live, mas for selecionado aleatoriamente, poste sua solução no Canvas antes do próximo período de aula.

Pode ser que você nunca seja selecionado aleatoriamente para apresentar sua solução durante o período de aula. Neste caso você receberá crédito total por esta parte da nota.

Colaboração

Muito do aprendizado neste curso vem da realização dos exercícios de programação. Às vezes a aprendizagem pode acontecer de forma mais eficaz quando você pode fazer as coisas com outra pessoa, portanto, trabalhar com um parceiro será permitido em tarefas de laboratório. Você pode trabalhar em conjunto com uma outra pessoa em um determinado laboratório. Se você escolher trabalhar com outra pessoa, você e seu parceiro devem apresentar a mesma tarefa conjunta com ambos os nomes, e você deve trabalhar com a mesma pessoa para toda a tarefa (você não pode trabalhar com uma pessoa para algumas partes de uma tarefa e uma pessoa diferente para outras partes).

Se você trabalhar com um parceiro, você ainda é responsável por não entender a tarefa completa. Isso significa que dividir o código em partes, fazer a sua parte e nunca olhar para as partes do seu parceiro não é uma boa idéia. Você pode aprender muito lendo o código do seu parceiro e descobrindo como ele funciona, se está correto e como ele pode ser melhorado. Você também pode pegar coisas como maus comentários que podem lhe custar pontos de estilo quando o assignmentis se classifica.

Ao trabalhar com um parceiro, eu sugiro que você pegue emprestado uma prática daExtreme Programming, um método de escrever código que muitas empresas acham bastante eficaz. Uma pessoa (o condutor) senta-se no teclado. A outra pessoa (o navegador) olha para a tela (virtual) como se fosse o motorista, fazendo perguntas, fazendo sugestões, e pegando erros. Ambos entenderão o codebetter se o discutirem como está escrito do que se o escreverem (ou lerem) sozinhos. Troque regularmente quem é o condutor e quem é o isavigator.

A reacção habitual a esta ideia é, “isso vai levar o dobro do tempo!” Na prática é normalmente mais rápido do que cada pessoa a programar sozinha. A razão é que os erros são apanhados mais cedo, e a quantidade de tempo é poupada quando se depura mais do que compensa a falta de paralelismo na escrita do código. Além disso, o código tende a ser melhor escrito. Estas são as razões pelas quais esta ideia foi adoptada na indústria.

Gravação em linha

Gravarei as sessões de aula realizadas durante as 2 horas no Zoom e publicarei esses vídeos.O meu plano é não gravar nenhum horário de trabalho, certamente não um a um, mas também não pequenos grupos. Se eu achar que uma pergunta ou resposta do horário de expediente seria bom para toda a turma ver, vou preparar uma nota ou vídeo separado, ou incluí-lo na próxima palestra. Isto é o que eu faço normalmente nas minhas aulas. Se eu tiver uma sessão problemática ou X hora em que toda a turma seja convidada a vir preparada com perguntas, eu vou gravar isso porque é essencialmente uma sessão de aula. Mas provavelmente vou editá-la antes de postar para que seja mais rápido para você rewatch

Do Reitor da Faculdade para os alunos em relação à gravação das sessões de aula:

(1) Consentimento para gravação das horas de curso e de escritório em grupo

  • a) Afirmo o meu entendimento de que este curso e quaisquer reuniões de grupo associadas envolvendo alunos e o instrutor, incluindo mas não se limitando às horas de escritório agendadas e ad hoc e outras consultas, podem ser gravadas dentro de qualquer plataforma digital utilizada para oferecer instrução remota para este curso;
  • b) Afirmo ainda que o instrutor detém os direitos autorais do seu material de instrução, dos quais estas gravações constituem uma parte, e a distribuição de qualquer uma destas gravações no todo ou em parte sem o consentimento prévio por escrito do instrutor pode ser sujeita a disciplina por Dartmouth até e incluindo a expulsão;
  • c) Eu autorizo Dartmouth e qualquer pessoa agindo em nome de Dartmouth a gravar minha participação e aparência em qualquer meio, e a usar meu nome, semelhança e voz em conexão com tal gravação; e
  • d) Eu autorizo Dartmouth e qualquer pessoa agindo em nome de Dartmouth a usar, reproduzir, ou distribuir tal gravação sem restrições ou limitações para qualquer propósito educacional considerado apropriado por Dartmouth e qualquer pessoa agindo em nome de Dartmouth.

(2) Requerimento de consentimento para gravações individuais

    Ao me inscrever neste curso, eu afirmo que não farei, sob nenhuma circunstância, uma gravação em qualquer meio de qualquer reunião individual com o instrutor sem obter o consentimento prévio por escrito de todos os participantes, e entendo que se eu violar esta proibição, estarei sujeito à disciplina por Dartmouth até e incluindo a expulsão, bem como qualquer outra penalidade civil ou criminal sob a lei aplicável.

Requisitos tecnológicos

Dada a natureza online deste curso, é necessário que os alunos tenham a capacidade de transmitir 1 hora ou menos de conteúdo de vídeo a cada dia. Faremos o nosso melhor para planejar e acomodar quaisquer limitações ao seu acesso à tecnologia necessária. É impossível para nós planejarmos para todas as restrições tecnológicas possíveis. Portanto, por favor, informe-nos sobre as barreiras que você tem para completar o curso online o mais rápido possível. Dadas as interrupções atuais na cadeia de suprimentos, gostaríamos de planejar com a maior antecedência possível.

Código Honorário

Código de Honra da Dartmouth se aplica a este curso, e as políticas de má conduta acadêmica serão rigorosamente aplicadas. Vou relatar casos suspeitos de traição ao Oficial de Assuntos Judiciais da Graduação. Eu também me reservo para atribuir uma nota de reprovação para um trabalho ou exame se eu concluir que o princípio de honra foi violado, independentemente da conclusão do Comitê de Normas. Se você tiver dúvidas, pergunte!

Necessidades de Acessibilidade

Estudantes solicitando acomodações e serviços relacionados à deficiência para este curso são encorajados a agendar uma reunião por telefone/vídeo comigo o mais cedo possível no período. Esta conversa ajudará a estabelecer quais são os suportes incorporados no meu curso online. Para que as acomodações sejam autorizadas, os alunos devem consultar os Serviços de Acessibilidade para Alunos (SAS); [email protected]; SAS website; 603-646-9900) e para me enviar o formulário de alojamento SAS. Trabalharemos então em conjunto com a SAS se as acomodações precisarem ser modificadas com base no ambiente de aprendizagem online. Se os estudantes tiverem dúvidas sobre se são elegíveis para acomodações, eles devem entrar em contato com o escritório da SAS. Todas as perguntas e discussões permanecerão confidenciais.

Mental Health

O ambiente acadêmico em Dartmouth é desafiador, nossos termos são intensivos, e as aulas não são a única parte exigente da sua vida. Há uma série de recursos disponíveis no campus para apoiar o seu bem-estar, incluindo o seu reitor de graduação, Aconselhamento e Desenvolvimento Humano e o Centro de Bem-Estar Estudantil.

Observações Religiosas

Alguns estudantes podem desejar participar de observâncias religiosas que acontecem durante este período acadêmico. Se você tiver uma observação religiosa que entre em conflito com a sua participação no curso, por favor, encontre-se comigo antes do final da segunda semana do termo para discutir acomodações apropriadas.

Adendo ao COVID-19

Embora a pandemia de COVID-19 já tenha perturbado drasticamente este curso, tem o potencial de resultar em mais impacto pessoal, o que pode impedir que você continue engajado na classe. Isto pode ser devido à contração da doença por você ou um ente querido, aumento das responsabilidades familiares, dificuldades financeiras, ou impactos na sua saúde mental/emocional.

Nós estruturamos o curso de modo que estas perturbações não o impedirão necessariamente de completar este curso com sucesso. Primeiro, vamos gravar e postar cada palestra. Isto irá permitir uma visualização flexível do conteúdo do curso. Segundo, agendaremos oportunidades de interação ao vivo com o instrutor e TA durante diversos horários ao longo da semana. Terceiro, os laboratórios foram redesenhados para que possam ser concluídos em casa.

No caso de você ser direta ou indiretamente impactado pelo COVID-19 de tal forma que afete o seu desempenho no curso, é imperativo que você procure o instrutor o mais rápido possível. Você também pode contactar o seu reitor de graduação, se isso o tornar mais confortável. Nós não podemos ajudá-lo se não soubermos que há um problema. A nossa primeira prioridade é a sua saúde e segurança. Nós trabalharemos para colocá-lo em contato com os recursos apropriados para ajudá-lo. Além disso, acomodações apropriadas (por exemplo: extensões de prazo e/ou horas extras de escritório) serão implementadas.

Conhecimento

Este curso é baseado em um curso originalmente desenvolvido pelo Dr. Charles Palmer. Estou profundamente grato a este excelente educador por todo o seu trabalho árduo e generosa assistência na criação deste curso.

Deixe uma resposta

O seu endereço de email não será publicado.