CS 61 | Sistemas de Bases de Datos | Primavera 2020

, Author

Explosiones de una mamá (de XKCD)https://xkcd.com/327/

Descripción del curso

ORC. Esta asignatura estudia la gestión de grandes cuerpos de datos o información. Incluye esquemas para la representación, manipulación y almacenamiento de estructuras complejas de información, así como algoritmos para el procesamiento eficiente de estas estructuras y para la recuperación de la información que contienen. Este curso enseñará al estudiante técnicas para la asignación y desasignación de almacenamiento, recuperación (formulación de consultas) y manipulación de grandes cantidades de datos heterogéneos. Se espera que los alumnos programen y se impliquen en un proyecto en el que estudien aspectos importantes de un sistema de bases de datos: formas de organizar una base de datos distribuida y compartida por varios ordenadores; transacciones que se procesan local y globalmente; garantías de robustez de los datos almacenados frente a fallos; garantías de seguridad e integridad de los datos frente a accesos no autorizados; privacidad; esquemas orientados a objetos para datos multimedia; indexación, hashing, control de concurrencia, minería de datos, almacenamiento de datos, bases de datos móviles y estructuras de archivos de almacenamiento.

Objetivos de aprendizaje El objetivo final de este curso es capacitarle para utilizar los datos para tomar decisiones basadas en ellos, en lugar de tomar decisiones basadas en intuiciones o conjeturas. Después de completar este curso usted debe ser capaz de:

  1. Consultar las bases de datos existentes para obtener información. Dedicaremos las primeras semanas del curso a aprender el lenguaje estándar de consulta de bases de datos llamado Structured Query Language (aka SQL, aka ‘sequel’). Esto le dará las herramientas necesarias para consultar las bases de datos existentes para obtener información sobre los datos que contienen.
  2. Diseñe sus propias bases de datos eficientes. Dedicaremos las próximas semanas a examinar cómo estructurar sus propias bases de datos, disponiendo las tablas y considerando factores como la redundancia, la fiabilidad y la velocidad.
  3. Entender lo que ocurre bajo el capó. A continuación, exploraremos cómo funcionan las bases de datos, recuperando los datos de forma rápida y precisa, incluso con múltiples usuarios que acceden y actualizan los datos simultáneamente.
  4. Describir las tecnologías de bases de datos nuevas y en desarrollo. Por último, veremos las nuevas tecnologías de bases de datos, como las bases de datos NoSQL y los blockchains.

A lo largo de todo el curso tendremos varios conferenciantes invitados de expertos que trabajan en este campo. Consulte la página de programación para obtener más detalles.

Requisito previo CS 50. También asumiré que estás familiarizado con Python.

Quién, cuándo, dónde

Instructor Tim Pierson | 210 Sudikoff
horarios de oficina: la mayoría de las semanas martes 1:30 pm – 2:30 pm, jueves 1:30 – 2:30 (confirmar a través del calendario de Canvas), y con cita previa. Ver enlace Zoom en Canvas para reuniones virtuales. Asistente de enseñanza de posgrado Almas Abdibayev
horas de oficina: se mantiene en Canvas Conferencias de 2 horas | MWF 2:10 pm – 3:15 pm zona horaria del este | Las conferencias en línea serán en línea y grabadas este término usando Zoom – ver Canvas para los detalles de acceso. Cuando se una a la reunión en línea, por favor apague su cámara y micrófono. Si tiene una pregunta, por favor pulse el botón «Levantar la mano» en Zoom. Si no te llamo en un corto periodo de tiempo, por favor, quita el silencio, enciende tu cámara y pregunta. Ya iremos elaborando más normas sobre la marcha… No tengo previsto utilizar regularmente las horas x, pero a veces puedo utilizarlas para las clases perdidas, para ponerse al día con el material, o para una sesión opcional e informal para trabajar con ejemplos. Asegúrate de mantener este espacio de tiempo libre en caso de que necesitemos utilizarlo. Con frecuencia tendremos ejercicios en clase para probar nuevos conceptos en una base de datos en vivo. Google y StackOverflow serán tus amigos, no dudes en utilizarlos (a menos que se te indique lo contrario). Ayuda: Horas de oficina Las horas de oficina también serán en línea a través de Zoom. Estaré disponible en línea durante las horas de oficina publicadas, incluso si no hay preguntas. Si quieres concertar una reunión privada, envíame un correo electrónico y encontraremos un momento para hablar. Ayuda: Slack Espera una invitación a un canal de Slack después del primer día de clase. Te animo a que hagas y respondas preguntas allí. Anuncios Revisa Canvas para ver los anuncios periódicos de todo el curso. Libro de texto Database System Concepts, 7ª edición, por Silberschatz, Korth y Sudarshan. Recomiendo encarecidamente la versión ebook en lugar de la versión en papel (la versión en papel ni siquiera está encuadernada – ¡es una colección de hojas sueltas!).Mientras que el libro de Silberschatz será nuestro libro de texto principal, y todas las lecturas asignadas serán de ese libro de texto, otro recurso útil es Database Systems: Design, Implementation, & Management, 13ª edición, de Coronel y Morris. Otro gran recurso es https://www.mysqltutorial.org.

Evaluación

Las calificaciones en esta clase serán una combinación de un proyecto a largo plazo, varias tareas de laboratorio, un examen de mitad de período y la participación en clase. Se requiere una puntuación total de al menos el 60% para aprobar este curso.

Proyecto (40%)

A lo largo del cuatrimestre trabajará en un proyecto relacionado con la base de datos de su elección con otros tres estudiantes. Los detalles de los requisitos del proyecto están aquí.

Laboratorios (30%)

Habrá tres trabajos de laboratorio (aparte del Laboratorio 0 que es simplemente para recopilar información) que en conjunto representan el 30% de la nota de este curso. Los puntos para cada laboratorio son:

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

Requisitos para la entrega de laboratorios: Los laboratorios están diseñados para ser completados fuera de clase y deben ser entregados electrónicamente a través de Canvas antes de la fecha límite indicada en Canvas. Incluso cuando un laboratorio tiene algunos ejercicios escritos, se requiere que escriba un archivo o escanee su trabajo escrito y lo envíe electrónicamente. Para enviar los resultados de su programa, envíe un archivo copiado y pegado en formato pdf y/o una captura de pantalla, según corresponda. Para el texto plano, puede utilizar un programa como TextEdit, NotePad o Emacs, o incluso Word, pero asegúrese de guardarlo como pdf. Para una captura de pantalla, puede utilizar Vista Previa en Mac (en el menú «Archivo») o el botón PrntScrn en Windows.

Puede trabajar con un compañero en estas tareas de laboratorio (ver Colaboración más abajo). Además:

  • Si trabajó con un compañero, incluya su nombre y el de su compañero, o si trabajó solo, indique «sin compañero» en un comentario en su envío.
  • Si trabajó un compañero y terminó con una única solución compartida, indíquelo en un comentario en la solución y en el envío. Cada compañero debe presentar la misma solución. La solución será entonces calificada una vez con la misma nota asignada a ambos compañeros.
  • Si ha trabajado con un compañero pero ha escrito código por separado, indique la colaboración pero que tiene envíos diferentes. Indíquelo tanto en el código como en el envío. Cada uno de ustedes debe subir su propia solución, y cada uno obtendrá una calificación por separado.
  • Reúna todos sus archivos de código en un solo archivo zip y suba ese zip, en lugar de un montón de archivos separados.

Política de retrasos Se debe entregar a través de Canvas en la fecha y hora indicada en la asignación de Canvas. Penalizaciones: < 8 horas: 10%; < 24 horas: 20%; < 48 horas: 40%; más: sin crédito.
Se permite como máximo un envío tardío (hasta 48 horas) sin penalización; no se requiere excusa. Indique en su presentación que está eligiendo usar su pase libre; no se puede deshacer la elección. Esto no puede combinarse con una penalización (por ejemplo, no se puede aplicar una penalización de 8 horas además del pase libre de 48 horas). Si trabajas con un compañero, esto cuenta como pase libre para ambos. Calificación Se proporcionarán rúbricas de calificación específicas para cada laboratorio.

Exámenes (20%)

Habrá un examen parcial que vale el 20% de la nota final (no hay final – su proyecto cuenta como el final). Se le permite utilizar una página de notas de 8,5 x 11 pulgadas para el examen, pero no debe incluir respuestas o código de exámenes anteriores de CS61 a menos que haya sido proporcionado explícitamente por el instructor o sea parte del material cubierto en clase.

Si tiene preguntas sobre la puntuación de su examen, o desea que se le vuelva a calificar una pregunta, acuda a su TA en el plazo de una semana a partir de la fecha en que el examen fue devuelto a la clase. Si usted solicita una re-calificación de una pregunta en particular, nos reservamos el derecho de re-calificar todo su examen.

Participación en clase (10%)

La mayoría de las clases tendrán una parte práctica en la que trabajaremos con una serie de problemas en una base de datos en vivo. Al final de esta parte de la clase usted podrá ser seleccionado al azar (con reemplazo) para presentar su solución. Su presentación será calificada de la siguiente manera:

  • 0: Nada sustancial
  • 1: Su solución necesita un trabajo significativo
  • 2: Correcta o principalmente correcta.

Si no puede asistir a la clase a través de Zoom live, pero es seleccionado al azar, publique su solución en Canvas antes del siguiente período de clase.

Puede darse el caso de que nunca sea seleccionado al azar para presentar su solución durante el trimestre. En ese caso, recibirá el crédito completo para esta parte de la nota.

Colaboración

Mucho del aprendizaje en este curso viene de hacer los ejercicios de programación. A veces el aprendizaje puede ser más eficaz cuando se puede discutir las cosas con otra persona, por lo que se permitirá trabajar con un compañero en las tareas de laboratorio. Puede trabajar conjuntamente con otra persona en un laboratorio determinado. Si decide trabajar con otra persona, usted y su compañero deben presentar la misma tarea conjunta con ambos nombres, y debe trabajar con la misma persona para toda la tarea (no se puede trabajar con una persona para algunas partes de una tarea y una persona diferente para otras partes).

Si usted trabaja con un compañero sigue siendo responsable de entender toda la tarea. Esto significa que dividir el código en partes, hacer tu parte y nunca mirar las partes de tu compañero no es una buena idea. Puedes aprender mucho leyendo el código de tu compañero y averiguando cómo funciona, si es correcto y cómo podría mejorarse. También puedes detectar cosas como comentarios deficientes o ausentes que podrían costarte puntos de estilo cuando se califique la tarea.

Cuando trabajes con un compañero, te sugiero que tomes prestada una práctica de la Programación Extrema, un método de escritura de código que muchas empresas encuentran bastante eficaz. Una persona (el conductor) se sienta ante el teclado. La otra persona (el navegante) mira la pantalla (virtual) mientras el conductor escribe, haciendo preguntas, sugerencias y detectando errores. Ambos entenderán mejor el código si lo discuten mientras se escribe que si lo escriben (o lo leen) solos. Intercambien regularmente quién es el conductor y quién el navegante.

La reacción habitual a esta idea es: «eso llevará el doble de tiempo». La razón es que los errores se detectan antes, y la cantidad de tiempo que se ahorra en la depuración compensa con creces la falta de paralelismo en la escritura del código. Además, el código suele estar mejor escrito. Estas son las razones por las que esta idea ha sido adoptada en la industria.

Grabación en línea

Grabaré las sesiones de clase realizadas durante las 2 horas en Zoom y publicaré esos videos.Mi plan será no grabar ninguna hora de oficina, ciertamente no uno a uno, pero tampoco grupos pequeños. Si creo que una pregunta o respuesta de las horas de oficina sería buena para que toda la clase la viera, prepararé una nota o un vídeo aparte, o la incluiré en la siguiente clase. Esto es lo que hago normalmente en mis clases. Si tengo una sesión de problemas o una hora X en la que se invita a toda la clase a venir preparada con preguntas, la grabaré porque es esencialmente una sesión de clase. Pero probablemente lo editaré antes de publicarlo para que sea más rápido para ti volver a verlo

Del Decano de la Facultad a los estudiantes sobre la grabación de las sesiones de clase:

(1) Consentimiento para la grabación del curso y de las horas de oficina de grupo

  • a) Afirmo que entiendo que este curso y cualquier reunión de grupo asociada en la que participen los estudiantes y el instructor, incluyendo pero sin limitarse a las horas de oficina programadas y ad hoc y otras consultas, pueden ser grabadas dentro de cualquier plataforma digital utilizada para ofrecer instrucción a distancia para este curso;
  • b) Afirmo además que el instructor es dueño de los derechos de autor de sus materiales de instrucción, de los cuales estas grabaciones constituyen una parte, y la distribución de cualquiera de estas grabaciones en su totalidad o en parte sin el consentimiento previo por escrito del instructor puede ser objeto de disciplina por Dartmouth hasta e incluyendo la expulsión;
  • c) Autorizo a Dartmouth y a cualquier persona que actúe en nombre de Dartmouth a grabar mi participación y aparición en cualquier medio, y a utilizar mi nombre, imagen y voz en relación con dicha grabación; y
  • d) Autorizo a Dartmouth y a cualquier persona que actúe en nombre de Dartmouth a utilizar, reproducir o distribuir dicha grabación sin restricciones ni limitaciones para cualquier propósito educativo que Dartmouth y cualquier persona que actúe en nombre de Dartmouth consideren apropiado.

(2) Requisito de consentimiento para grabaciones uno a uno

    Al inscribirme en este curso, afirmo por la presente que no haré bajo ninguna circunstancia una grabación en cualquier medio de cualquier reunión uno a uno con el instructor sin obtener el consentimiento previo por escrito de todos los que participan, y entiendo que si violo esta prohibición, estaré sujeto a la disciplina por Dartmouth hasta e incluyendo la expulsión, así como cualquier otra sanción civil o penal bajo la ley aplicable.

Requisitos tecnológicos

Dada la naturaleza en línea de este curso, se requiere que los estudiantes tengan la capacidad de transmitir 1 hora o menos de contenido de video cada día. Haremos todo lo posible para planificar y acomodar cualquier limitación a su acceso a la tecnología requerida. Es imposible para nosotros planificar todas las posibles limitaciones tecnológicas. Por lo tanto, le rogamos que nos comunique lo antes posible los obstáculos que le impiden realizar el curso en línea. Dadas las actuales interrupciones en la cadena de suministro, nos gustaría planificar con la mayor antelación posible.

Código de honor

El código de honor de Dartmouth se aplica a este curso, y las políticas de mala conducta académica se aplicarán estrictamente. Informaré de los casos sospechosos de hacer trampas al Oficial de Asuntos Judiciales de Pregrado. También me reservo el derecho de asignar una nota de suspenso para una tarea o un examen si considero que se ha violado el principio de honor, independientemente de la conclusión del Comité de Normas. Si tiene preguntas, ¡pregúntelas!

Necesidades de accesibilidad

Se anima a los estudiantes que soliciten adaptaciones y servicios relacionados con la discapacidad para este curso a que programen una reunión por teléfono/vídeo conmigo tan pronto como sea posible. Esta conversación ayudará a establecer qué apoyos están incorporados en mi curso en línea. Para que las adaptaciones sean autorizadas, los estudiantes deben consultar con los Servicios de Accesibilidad para Estudiantes (SAS); [email protected]; sitio web del SAS; 603-646-9900) y que me envíen por correo electrónico su formulario de adaptación del SAS. A continuación, trabajaremos conjuntamente con el SAS si es necesario modificar las adaptaciones en función del entorno de aprendizaje en línea. Si los estudiantes tienen preguntas sobre si son elegibles para las adaptaciones, deben ponerse en contacto con la oficina del SAS. Todas las consultas y discusiones serán confidenciales.

Salud mental

El entorno académico en Dartmouth es un reto, nuestros trimestres son intensos y las clases no son la única parte exigente de tu vida. Hay una serie de recursos disponibles para usted en el campus para apoyar su bienestar, incluyendo su decano de pregrado, Consejería y Desarrollo Humano, y el Centro de Bienestar Estudiantil.

Observancias religiosas

Algunos estudiantes pueden desear tomar parte en las observancias religiosas que se producen durante este período académico. Si usted tiene una observancia religiosa que entra en conflicto con su participación en el curso, por favor, reúnase conmigo antes del final de la segunda semana del término para discutir las adaptaciones apropiadas.

Adición de COVID-19

Aunque la pandemia de COVID-19 ya ha perturbado drásticamente este curso, tiene el potencial de dar lugar a un mayor impacto personal que puede impedirle seguir participando en la clase. Esto puede deberse a la contracción de la enfermedad por parte de usted o de un ser querido, a un aumento de las responsabilidades familiares, a dificultades financieras o a impactos en su salud mental/emocional.

Hemos estructurado el curso de manera que estas interrupciones no le impidan necesariamente completarlo con éxito. En primer lugar, grabaremos y publicaremos cada conferencia. Esto permitirá una visualización flexible del contenido del curso. En segundo lugar, programaremos oportunidades para la interacción en vivo con el instructor y el TA durante diversos momentos de la semana. En tercer lugar, los laboratorios han sido rediseñados para que puedan ser completados en casa.

En el caso de que usted se vea directa o indirectamente afectado por COVID-19 de tal manera que afecte a su rendimiento en el curso, es imperativo que se ponga en contacto con el instructor tan pronto como sea posible. También puede ponerse en contacto con su decano de grado si eso le hace sentir más cómodo. No podemos ayudarle si no sabemos que hay un problema. Nuestra primera prioridad es tu salud y seguridad. Trabajaremos para ponerle en contacto con los recursos adecuados para ayudarle. Además, se implementarán las adaptaciones apropiadas (por ejemplo: extensiones de plazo y/o horas de oficina adicionales).

Reconocimiento

Este curso está estrechamente basado en uno desarrollado originalmente por el Dr. Charles Palmer. Estoy profundamente en deuda con este excelente educador por todo su arduo trabajo y generosa ayuda en la creación de este curso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.