📖 Syllabus

Table of contents

  1. About 🧐
  2. Getting Started đŸ’»
    1. Websites
    2. Development Environment
    3. Forms
  3. Communication 💬
  4. Course Meetings đŸ‘©â€đŸ’»
    1. Lectures
    2. Engagement
  5. Assignments 📓
    1. Labs and Lab Redemption
    2. Projects
    3. Office Hours
  6. Exams 📝
    1. Exam Redemption
  7. Policies 💯
    1. Grading
    2. Late Policy, Slip Days, and Drops
    3. Regrade Requests
    4. Incompletes
    5. Letter Grades
  8. Collaboration Policy and Academic Integrity đŸ€
    1. Why is academic integrity important?
    2. What counts as cheating?
    3. Use of Generative Artificial Intelligence
  9. Support đŸ«‚
    1. Accommodations
    2. Diversity and Inclusion
    3. Campus Resources
    4. Waitlist
  10. Acknowledgements 🙏

About 🧐

DSC 80 serves as a bridge between lower-division and upper-division data science courses. In DSC 80, students will gain proficiency with the data science life cycle and learn many of the fundamental principles and techniques of data science spanning algorithms, statistics, machine learning, visualization, and data systems.

After DSC 80, students will be prepared for data science internships and interviews, will have the tools to create their own data science portfolios, and will have the maturity necessary to succeed in upper-division machine learning and statistics courses.

Prerequisites: DSC 30 and DSC 40A.


Getting Started đŸ’»

The course website, dsc80.com, will contain links to all course content. There are also a few things you’ll need to do to get set up.

Websites

You’ll need to make accounts on the following sites:

  • Campuswire: We’ll be using Campuswire as our course message and discussion board. More details are in the Communication section below. If you didn’t already get an invitation to our Campuswire course, sign up here with join code 0258.

  • Gradescope: You’ll submit all assignments and exams to Gradescope. This is where all of your grades will live as well. Most of the assignments will be coding assignments. Parts of these assignments will be manually graded, but most of them will be autograded. You should have received an email invitation for Gradescope, but if not please let us know as soon as possible via Campuswire.

  • GitHub: Like in DSC 30, you’ll access all course content (lecture slides and assignments) by pulling our course GitHub repository. The link to the repo is here. In most assignments, you won’t need to push anything to GitHub. However, you will need to push to GitHub as part of your Final Project, so you’ll need to have an account by then.

Development Environment

As soon as you are able to, go follow the steps in the Tech Support page of the course website to set up your development environment for the course. Ask for help in office hours if you run into any trouble.

Forms

Please fill out the Welcome Survey, which is very short.


Communication 💬

This quarter, we’ll be using Campuswire as our course message board. If you didn’t already get an invitation to our Campuswire course, sign up here with join code 0258.

If you have a question about anything to do with the course — if you’re stuck on a problem, didn’t understand something from lecture, want clarification on course logistics, or just have a general question about data science — you can make a post on Campuswire. We only ask that if your question includes some or all of an answer (even if you’re not sure it’s right), please make your post private so that others cannot see it. You can also post anonymously to other students if you prefer.

Course staff will regularly check Campuswire and try to answer any questions that you have. You’re also encouraged to answer questions asked by other students. Explaining something is a great way to solidify your understanding of it!

Please don’t email or DM individual staff members. Make a private or public Campuswire post instead.


Course Meetings đŸ‘©â€đŸ’»

Lectures

Lectures will be held remotely on Zoom, Monday through Thursday, 9:30-10:50AM. You can find the Zoom link on Canvas. In-person attendance can earn you some credit for the Engagement portion of your grade but is not strictly required.

Lecture notebooks will be your main resource in this class. You can access them, along with all course materials, by pulling from the course GitHub repository. We will also link HTML previews of each lecture notebook from the course homepage; you can use these to annotate the lecture notebooks with a tablet, if you’d like.

Supplementary readings will primarily come from Learning Data Science, a textbook written by Sam Lau, Joey Gonzalez, and Deb Nolan. It is available for free online at learningds.org. Some readings will come from other free online sources, including notes.dsc80.com, a set of course notes that were written to supplement DSC 80 when the course was first created.

You are responsible for all material included in the posted lecture notebooks, whether or not we have time to discuss all of that material in lecture. You may also be tested on material covered only in assignments. You will not be tested on anything that appears only in the readings but not in lectures or assignments, but you should still complete the readings to boost your understanding!

No discussion section. This class has Wednesdays from 3-4:50PM reserved for discussion. With the exception of the Midterm Exam scheduled for this time on August 19, we will not be using this time to hold regular discussion sections. Use this time to work on assignments instead!

Engagement

We want you to be an active participant in your own learning and an active member of our course community. To encourage this, a small portion of your course grade will be determined by your engagement in the course. To earn credit for the week (1% per week), you must do one of the following:

  • Attend at least 3 out of 4 synchronous Zoom lectures with your camera on. Course staff will take attendance at a random time and give credit to those who are present with cameras on at that moment.

  • Pass a ten-minute interview with the instructor on Friday, where you’ll talk about the lectures for that week to make sure you are following along.

We encourage you to choose the first option if possible, since being engaged in lecture by listening and asking questions will help you learn, though the second option is available to accommodate students who need additional flexibility. You can do what works best for you each week, and you can change the option you choose from week to week.


Assignments 📓

Labs and Lab Redemption

There will be 9 lab assignments due throughout the quarter. Labs have mostly coding questions that ask you to fill in the body of a function, but some free response and other question types may also incorporated. Public tests are usually provided so that you can make sure that you're on the right track (similar to DSC 20), however, your submission will be graded using a private autograder with hidden tests. You will access labs (and projects) by pulling the course GitHub repository.

Each lab is worth the same amount, but the lowest lab will be dropped when calculating your final score.

We will also have a lab redemption policy to encourage you to reflect on your solutions to the lab assignments. The redemption policy allows you to view your graded assignment and resubmit solutions by two days after the original deadline. Your grade for the lab will be the average of your original submission’s score and your resubmission’s score. If you forget to turn in a lab or otherwise miss the original deadline, you can also turn in your work for the resubmission only, which will be averaged with your original score (0), essentially giving you half credit as a late penalty.

Example: Sam submits Lab 1 on the due date, Monday. On Tuesday, he sees his score, which is a 90% since he lost points on a few hidden tests. He fixes the errors and resubmits on Wednesday, and his new submission gets 100%. His final recorded grade for Lab 1 is 95% (since (90% + 100%) / 2 = 95%).

Note that this redemption policy applies to labs only, not projects or project checkpoints.

Projects

There will be 4 projects due throughout the quarter. Like labs, projects consist of coding and free response questions. As their name implies, however, projects are more open-ended and allow you to simulate applying your data science skills in practical situations. You can think of the projects as being mini-take-home-exams that track your practical skills throughout the quarter (whereas the exams themselves test for conceptual understanding).

Each project has one or two project checkpoints to ensure that you're on-track to complete the project on time. Checkpoints do not have private tests, so they should (hopefully) be a source of easy points.

The Final Project (Project 4) will be due shortly after the Final Exam and can be thought of as a practical component of the Final Exam.

Note that, unlike labs, the lowest project score is not dropped. Projects and project checkpoints will usually be due on Fridays at 11:59PM.

Project Partners

You may work together on projects (and projects only!) with a partner. If you work with a partner, you are both required to actively contribute to all parts of the project. You must both be working on the assignment at the same time together, either physically or virtually on a Zoom call. You are encouraged to follow the pair programming model, in which you work on just a single computer and alternate who writes the code and who thinks about the problems at a high level.

In particular, you cannot split up the project and each work on separate parts independently.

If you work with a partner:

  • Only one partner needs to submit the project on Gradescope; this partner should add the other partner to their submission.
  • You must also submit the checkpoint together.
  • You and your partner will receive the same score on any submissions you make together.

If you are unhappy with your partnership (e.g., if your partner does not keep in touch, does not come prepared to work on the assignment, or does not seem to be engaged in the process), please first address your concerns to your partner, and try to agree on what should be done to make the partnership work well for both of you. If that approach is not successful, explain the issues to the instructors, who will work with you and your partner to improve the situation.

You may work with different partners on different projects.

You may not work with partners on lab assignments, however you’re encouraged to discuss all assignments with others at a conceptual level in office hours and study groups.

Office Hours

To get help on assignments and concepts, course staff will be hosting several office hours per week. All office hours will be held remotely on Zoom. You can find the Zoom link on Canvas. We encourage you to attend and work on assignments there. See the Calendar tab of the course website for the schedule.

You should be prepared for a heavy workload in this class. According to SET responses, students spend an average of 10 hours per week on this course outside of scheduled course meetings in the regular academic year. In the summer session, which moves twice as fast, this means you should expect to spent an average of 20 hours per week working on assignments outside of class. We recognize that this is a huge amount of time, especially if you have other obligations. We want to be upfront about this so you can get a realistic view of what the next five weeks will require of you. Additionally, since there are assignments due four times per week, you will need to work consistently throughout the week. We recommend scheduling several hours each afternoon to work on assignments for this class.


Exams 📝

This class has one Midterm Exam and one Final Exam. Exams are cumulative, though the Final Exam will emphasize material after the Midterm Exam.

  • Midterm Exam: Wednesday, August 19th, 2-3:50PM

  • Final Exam: Friday, September 4th, 8-11AM

Both exams will be administered synchronously, remotely through Zoom, and proctored by course staff.

You will be allowed one sheet of double-sided handwritten notes on each exam. Other than this, any additional aids, including the internet and AI tools, may not be used on the exam. We will employ a few strategies to make sure that your exam scores accurately reflect your knowledge of course material:

  • We will have proctors check your room setup. Set yourself up at a work area with only your laptop (with camera), note sheet, blank paper, student ID, and writing utensils. Leave your phone and other electronic devices out of reach. Set up your webcam so that we can see your hands at all times.
  • We will display questions on the screen one at a time and give you time to answer each question. Once we move along to display the next question, we will not go back to previous questions. You will write your answer to each question on blank paper. You will not be able to navigate through the exam yourself, which means you should not touch your computer while the exam is in session.

  • After the exam, we will ask some students to meet for brief oral exams. If we see anything suspicious in your behavior while taking the exam or we notice anything unusual on your exam submission, we will ask you to meet. We will also randomly select students for oral exams, to use as “controls”, so it is not necessarily something to be concerned about if we do request an oral exam.

  • Your exam score will be determined both by your submitted answers and by your understanding demonstrated during any oral exam that we administer. This means that if you give the correct answer but are unable to justify it verbally, you will not receive credit.

Exam Redemption

The Final Exam will consist of two parts: a “Midterm” section and a “post-Midterm” section. If you do better on the “Midterm” section of the Final Exam than you did on the original Midterm Exam, your score on the “Midterm” section will replace your original Midterm Exam score. This lowers the stakes of the Midterm Exam and gives you two opportunities to demonstrate your understanding of the content from the first half of the course. This also means that you can miss the Midterm Exam for any reason and have the score be replaced by your score on the “Midterm” section of the Final Exam (though we do not recommend this).

You must take the Final Exam to pass the course.


Policies 💯

Grading

Here is how we’ll compute your grade:

Component Weight Notes
Engagement 5% 1% per week
Labs 20% 2.5% per lab, lowest dropped
Projects 25% 5% each for Projects 1-3, 10% for Project 4
Project Checkpoints 5% 1% each
Midterm Exam 20% see the Redemption Policy above
Final Exam 25%  

Late Policy, Slip Days, and Drops

All assignments must be submitted by 11:59PM San Diego time on the due date to be considered on time. You may turn them in as many times as you like before the deadline and only the most recent submission will count, so it’s a good habit to submit early and often. If you make a submission after the deadline, your assignment will be counted as late.

You have 3 “slip days” to use throughout the quarter on projects or project checkpoints. A slip day extends the deadline of an assignment by 24 hours. You may use only one slip day for each deadline, meaning no assignments will be accepted more than 24 hours after the deadline.

You may not use slip days on lab assignments. If you miss a deadline for a lab, you can use the resubmission policy to get 50% credit on the lab. We also drop your lowest lab score.

Slip days are designed to be a transparent and predictable source of leniency in deadlines. You can use a slip day if you are too busy to complete an assignment on its original due date (or if you forgot about it). But slip days are also meant for things like the internet going down at 11:58PM just as you go to submit your assignment. Slip days are meant to cover “normal” life circumstances, but if you have a serious illness, suffer a loss, or experience some other unfortunate event that severely disrupts your ability to participate in the class, please let us know ASAP!

Slip days are applied automatically at the end of the quarter, and you don’t need to ask in order to use one. It’s your responsibility to keep track of how many you have left. If you’ve run out of slip days and submit an assignment late, that assignment may still be graded, but you will receive a 0 on it when we calculate grades at the end of the quarter. However, in the event that you use all your days and submit another assignment late, we will allocate your slip days to your projects in reverse-chronological order. This is done to prevent you from receiving a 0 on the Final Project if you’ve run out of slip days and submit it late.

Regrade Requests

Most of the labs and projects are autograded, but some questions are manually graded. If you feel that there in an error in the autograder or that the manual grader has made a mistake, you may submit a regrade request within two days of the grades being released. If you do not submit a regrade request within this time frame, your original grade will be final.

Regrade Requests for Manually Graded Problems

To submit a regrade request for a manually graded problem, make the regrade request directly on Gradescope. Note that part of your grade is clarity, so if your answer was mostly right but unclear you may still not be eligible for full credit.

Regrade Requests for Autograded Problems

To submit an autograder regrade request, please make a private post to all instructors on Campuswire explaining the issue, including screenshots where appropriate.

The autograder is very picky: it expects your assignments to have exactly the correct file names, all functions must be named correctly, etc. If these are wrong, your code may not run and the autograder may assign zero points. This is a grading catastrophe 😧.

Grading catastrophes are preventable! After submitting your assignment, always wait around to see the output of the Gradescope grader and ensure that it runs properly. Also, be sure to submit your assignment (or at least part of it) to Gradescope with enough time before the deadline to get help if there is a strange autograder problem.

In the case that you submit code that doesn’t run and discover this at a later date, you have some options:

  1. For a project or project checkpoint, if it is still before the slip day deadline, you may use a slip day to fix your code and resubmit. Note that you’re free to do this even if your code runs – this is just making use of the normal slip day mechanism to submit an assignment late. Likewise, for a lab, if it is before the resubmission deadline, you can resubmit the lab as usual, and you’ll get half credit because you’ll have a 0 on the original submission.
  2. If it is past the slip day deadline and your code requires only minor fixes (e.g., the file name is wrong) we will fix your code at the cost of a slip day. Note that this slip day is in addition to any slip days you already used on the assignment. You can submit a catastrophe regrade request the same way you submit a regular autograder regrade request, via a private post on Campuswire.

Incompletes

In the unfortunate circumstance that you become sick, suffer a loss, or otherwise experience a significant setback that is outside of your control, you may be eligible for an Incomplete grade, which allows you to complete the rest of the work at a later time. If you are experiencing challenges due to circumstances outside your control, please contact me ASAP and we can discuss the best course of action. Note that an Incomplete does not allow you to re-do work that has already been completed, only to do work that hasn’t been completed, so it’s best to reach out right away.

Letter Grades

We will use a standard scale for assigning letter grades:

Letter Grade A A- B+ B B- C+ C C- D F
Percentage 93+ 90+ 87+ 83+ 80+ 77+ 73+ 70+ 60+ below 60

We may slightly lower these cutoffs, making it easier to earn a certain grade, but we will never raise the cutoffs. A+ grades are given at the instructor’s discretion. If you are taking the course P/NP, you will receive a grade of P if you meet the criteria for a C- grade, otherwise you will receive a grade of NP.


Collaboration Policy and Academic Integrity đŸ€

DSC 80 is known for being a rigorous but rewarding course. While you will be challenged this quarter, we will be offering you plenty of support through office hours and Campuswire. Make good use of these resources, and you will be able to succeed in this course.

There is no excuse for cheating in this course. If you do cheat, we will enforce the UCSD Policy on Integrity of Scholarship. This means you will likely fail the course and the Dean of your college will put you on probation or suspend or dismiss you from UCSD. Students agree that by taking this course, their assignments may be submitted to third-party software to help detect plagiarism.

Why is academic integrity important?

Academic integrity is an issue that is pertinent to all students on campus. When students act unethically by copying someone’s work, taking an exam for someone else, plagiarizing, etc., these students are misrepresenting their academic abilities. This makes it impossible for instructors to give grades (and for the University to give degrees) that reflect student knowledge. This devalues the worth of a UCSD degree for all students, making it imperative for the the campus as a whole to enforce that all members of this community are honest and ethical. We want your degree to be meaningful and we want you to be proud to call yourself a graduate of UCSD!

The UCSD Policy on Integrity of Scholarship and this syllabus list some of the standards by which you are expected to complete your academic work, but your good ethical judgment (or asking us for advice) is also expected as we cannot list every behavior that is unethical or not in the spirit of academic integrity. Ignorance of the rules will not excuse you from any violations.

What counts as cheating?

In DSC 80, you can read books, use the internet, and talk to your friends and the DSC 80 staff to get help understanding the concepts you need to know to complete your assignments. However, all code must be written by you (or, in the instance of projects, together with your partner).

The following activities are considered cheating and are not allowed in DSC 80 (not an exhaustive list):

  • Using or submitting code acquired from other peoples (except from your partner during projects)
  • Posting your code online, including on Campuswire, unless privately to instructors only
  • Having any other person complete any part of your assignment on your behalf
  • Completing an assignment on behalf of someone else
  • Providing code, exam questions, or solutions to any other student in the course
  • Splitting up project questions with your partner and each working on different questions
  • Collaborating with others or using unauthorized resources on exams

The following activities are examples of appropriate collaboration and are allowed in DSC 80 (not an exhaustive list):

  • Discussing how to solve problems in labs or projects without sharing code
  • Talking about issues you ran into and how you solved them
  • Discussing the answers to exams with other students who have already taken the exam after the exam is complete
  • Using code provided in class, by the textbook or any other assigned reading or video, with attribution
  • Google searching for documentation on Python or pandas
  • Working together with other students on assignments without copying or showing each other your answers
  • Posting a question about your approach to a problem on Campuswire, without sharing your code

The best way to avoid problems is by using your best judgement and remembering to act with Honesty, Trust, Fairness, Respect, Responsibility, and Courage. Here are some suggestions for completing your work:

  • Don’t look at or discuss the details of another student’s code for an assignment you are working on, and don’t let another student look at your code.
  • Don’t start with someone else’s code and make changes to it, or in any way share code with other students.
  • If you are talking to another student about an assignment, don’t take notes, and wait an hour afterward before you write any code.

Use of Generative Artificial Intelligence

Generative Artificial Intelligence (GenAI) describes tools, such as ChatGPT and GitHub Copilot, that are trained to generate responses to user-defined prompts, or questions. The existence of such tools is a major milestone in machine learning, and an impressive application of data science in the real world.

Our course policy on the use of GenAI tools for coursework is simple: you may use these tools to build an understanding of course material and to assist you on assignments, keeping in mind that no tool is a substitute for a strong understanding of course concepts.

Be mindful of how you are using GenAI tools. These tools can be very useful to help you preview material before lecture, summarize material after lecture, explain concepts you didn’t understand, and explore how different concepts are related. “Explain it like I’m five” can be a helpful prompt to give you a basic understanding of new concepts before being exposed to them in lecture. Consolidating your knowledge after learning something new and relating it to other things you know is important for learning and retention.

Unfortunately, GenAI tools are not a consistently reliable source of quality information. Because of how GenAI tools are trained, they often provide answers and write code that look correct, but aren’t actually correct. They can also be extremely overconfident, making them hard to trust! A goal of your education is to develop an ability to identify and produce information that actually is correct and doesn’t just sound correct. Human supervision of GenAI tools is always necessary.

Proceed with caution when using tools to assist you with your assignments. DSC 80 is a foundational class for your study of data science; you need to master the skills and concepts of this course if you want to use data science effectively. Through exams, you will be tested on your independent ability to apply course material to novel problems. Labs and projects are meant to prepare you for these assessments, so overreliance on GenAI for assignments will rob you of opportunities to learn and make it hard for you to perform well on exams.

If you do use GenAI to assist you on assignments, keep these guidelines in mind:

  • Design your prompts carefully. Don’t just ask one question; ask a follow-up question based on the output to the first. To use these tools effectively, you need to engineer your prompts carefully.
  • Test the outputs. GenAI tools can and do make mistakes, and being able to verify the correctness of a proposed answer is an important skill for you to develop, perhaps the most important skill these days. Validate the output against course-provided references, or follow up with a search on Google or Stack Overflow. Remember that GenAI tools provide crowdsourced likely answers, not necessarily correct answers.
  • Don’t submit any code that you don’t understand, or that uses content not taught in this class. In our experience, past students who used ChatGPT to help with assignments ended up with code that was difficult for both them and the teaching staff to understand. If you answer questions with out-of-scope content, you are not practicing the foundational skills that the course is meant to teach you. Be careful!

If your assignment submission includes any content generated by an AI tool, it should be cited to acknowledge the source of the material. You can include citations as comments in your code.


Support đŸ«‚

Accommodations

From the Office for Students with Disabilities (OSD):

OSD works with students with documented disabilities to review documentation and determine reasonable accommodations. Disabilities can occur in these areas: psychological, psychiatric, learning, attention, chronic health, physical, vision, hearing, and acquired brain injuries, and may occur at any time during a student’s college career. We encourage you to contact the OSD as soon as you become aware of a condition that is disabling so that we can work with you.

If you already have accommodations via OSD, please make sure that we receive your Authorization for Accommodation (AFA) letter by the third day of class so that we can make arrangements for accommodations. Share your AFA letter with the instructor and the Data Science OSD Liaison, who can be reached at dscstudent@ucsd.edu.

Diversity and Inclusion

We are committed to an inclusive learning environment that respects our diversity of perspectives, experiences, and identities. Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive. If you have any suggestions as to how we could create a more inclusive setting, please let us know. We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community. Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and feels comfortable.

Campus Resources

There are several campus resources available to you, including:

More generally, if you have any concerns about your ability to focus or succeed in this course, or just need someone to talk to, please contact us ASAP and we’ll figure something out.

Waitlist

If you’re on the waitlist, make sure you participate in the class just as if you were enrolled so that if you do get in, you’re not behind. Submit all assignments on time, as you won’t be allowed to go back and do past-due assignments for credit if you join late.

Often, people will ask about their chances of making it off the waitlist. Unfortunately, that can be hard to answer! In some quarters, the waitlist moves a lot; in others, not at all.

Acknowledgements 🙏

This offering of DSC 80 builds off of prior offerings by Aaron Fraenkel, Sam Lau, Suraj Rampure, Justin Eldridge, Marina Langlois, Tauhidur Rahman, and Duncan Watson-Parris. Along with the help of their tutors and TAs, they developed much of the content that we will use in this course.


This site uses Just the Docs, a documentation theme for Jekyll.