Syllabus 📜
Table of contents
- About 🧐
- Format Summary 🏃
- Getting Started 💻
- Communication 💬
- Course Components 🍎
- Exams 📝
- Policies 💯
- Collaboration Policy and Academic Integrity 🤝
- Support 🫂
- 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.
Format Summary 🏃
Throughout the syllabus, we will describe the format of all components of the course, but to summarize:
- Lectures and discussions will be offered in-person and on Zoom at the same time (“hybrid”), though in-person attendance is encouraged
- Office hours will be offered both in-person and remotely
- Exams will be in-person, unless you discuss alternate arrangements with the instructor
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 (if it asks you to enter a code, enter 2756).
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 (preferably via Campuswire).
Zoom (optional): To access remote office hours and to attend lecture and discussion remotely, if you’d prefer (note that all of these course components also have in-person options).
You’ll also regularly access:
- GitHub: Like in DSC 30, you’ll access all course content (lecture slides and assignments) by pulling our course GitHub repository. That repo is here: github.com/dsc-courses/dsc80-2022-sp/.
Note that we will not be using Canvas for anything this quarter.
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.
Forms
Please fill out the Welcome + Alternate Exams Form to tell us a bit more about yourself and tell us if you need an alternate exam.
Communication 💬
This quarter, we’ll be using Campuswire as our course message board. You will be added to Campuswire automatically; use the invite link and code in the section above if you weren’t added.
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!
We won’t be using the direct messaging (DM) functionality of Campuswire, nor will we use email to answer questions about the course. Please don’t DM or email staff members, just make a private or public Campuswire post instead!
Course Components 🍎
Lectures
There are two lecture sections.
- A00: MWF 3-3:50PM
- B00: MWF 4-4:50PM
You can attend lecture in two ways:
- By attending in-person at Center Hall 109 📍 (map)
- By attending remotely via Zoom (see the course homepage or Calendar for the link)
Anyone can attend either lecture section, but if (physical) space fills up, priority will be given to students officially enrolled in that section. Attendance is not required, though you are encouraged to attend in-person if you are able to. Lectures will be podcasted.
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, github.com/dsc-courses/dsc80-2022-sp. We will also link HTML previews of each lecture notebook from the course homepage.
There is also a set of notes written by Aaron Fraenkel for this course that can be found at notes.dsc80.com, though they are a work in progress.
Discussions
As of Week 2, we have consolidated the two originally scheduled discussion sections into one, larger discussion section on Wednesdays from 7-8:30PM, that is open to all students in the class. The plan is to spend the first ~hour on discussion content and leave the remaining half-hour for questions and office hours with the TA.
You can attend discussion in two ways:
- By attending in-person at Pepper Canyon Hall 122 📍 (map)
- By attending remotely via Zoom (see the course homepage or Calendar for the link)
Attendance is recommended, but not required. Discussion sections will be podcasted, but the nature of discussion section (they usually involve a large amount of groupwork) means that attending discussion in-person is likely to be more effective than attending remotely or watching the podcast.
During discussion you will work through a short notebook designed to review ideas from lecture and prepare you for upcoming assignments. Attending discussion and submitting the discussion assignment are not mandatory. However, each discussion assignment submitted will earn you 0.25% of extra credit 🎉 applied towards your overall score at the end of the quarter. Since there will be 8 discussions, there will be 2% of extra credit made available, which can be enough to bump your grade by a third of a letter grade (e.g. B+ to A-).
Discussion assignments will typically be released on Wednesdays and due on Saturdays at 11:59PM.
In DSC 80, we want you to get as much practice as possible with the tools of the trade, including git
. Therefore, all assignments – discussions included – are obtained by pulling the course GitHub repository.
Labs
There will be nine lab assignments due weekly throughout the quarter. Each lab assignment will consist of a mixture of coding and free response questions. Coding questions will ask you to fill in the body of a function. Doctests are usually provided so that you can make sure that you're on the right track (a la DSC 20), however, your submission will be graded using a private autograder with hidden tests.
Each lab is worth the same amount, but the lowest lab will be dropped when calculating your final score.
Labs will typically be released on Tuesdays and due on Mondays at 11:59PM.
Projects
There will be five projects due every other week 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).
Projects are due bi-weekly. However, the week before a project is due, there will (usually) be a project checkpoint. This checkpoint will ensure that you're on-track to complete the project on time, and should (hopefully) be a source of easy points.
Note that, unlike labs, the lowest project score is not dropped. Like all assignments, you can obtain projects by pulling from the course GitHub repository.
The last project, Project 5, will be due during finals week, and can be thought of as a practical component of the Final Exam.
Projects will typically be released on Saturdays and due on Thursdays at 11:59PM, though this will certainly change for a few projects.
Pair Programming
You may work together on projects (and projects only!) using the paradigm of pair programming. In pair programming, you may work with one partner of your choosing to complete the assignment. You must both be present (physically or virtually), and working on the same piece of code simultaneously. One person types while the other watches for errors. Pair programming is not where one person does Question 1 while the other person does Question 2.
If you choose to pair program a project, you must submit the project as a pair (even if you do just a single problem together). You must also submit the project checkpoint together (as otherwise you'd be working separately on part of the project).
To learn more about how to pair program, see the DSC 10 page on Pair Programming.
Note that you may not pair program on lab assignments.
Office Hours
To get help on assignments and concepts, course staff will be hosting several office hours per week. This quarter, we are offering a mix of in-person and remote office hours. See the Calendar tab of the course website for the most up-to-date schedule and instructions.
Weekly Schedule
To summarize all of the events and deadlines, refer to this general weekly schedule (which is subject to change in any given week):
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
---|---|---|---|---|---|---|
Lecture | Lecture | Lecture | ||||
Discussion | ||||||
Lab due | Project/checkpoint due | Discussion (extra credit) due |
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, April 27th, during your scheduled lecture time (3-3:50PM for A00, 4-4:50PM for B00) in Center Hall 109
Final Exam: Saturday, June 4th, 11:30AM-2:30PM, location TBD
Both exams will be administered in-person. If you have conflicts with either of the exams, or are unable to come in-person, please let us know on the Welcome + Alternate Exams Form.
Redemption Policy
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 |
---|---|---|
Labs | 25% | 3.125% per lab, lowest dropped |
Projects | 30% | 6% per project, no drops |
Project Checkpoints | 5% | 1% per project, no drops* |
Midterm Exam | 15% | see the Redemption Policy above |
Final Exam | 25% | |
Discussions | 2% (extra credit) |
*Since Projects 3 and 5 do not have checkpoints, everyone who submits Projects 3 and 5 will automatically receive the 1% checkpoint credit.
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 be graded, 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 eight “slip days” to use throughout the quarter on any deadline, including a lab, project, project checkpoint, or a discussion assignment. A slip day extends the deadline of any by 24 hours. You cannot turn in any assignments more than 48 hours late, meaning that you cannot use more than 2 slip days on any assignment. Slip days will be applied automatically at the end of the quarter, but it’s your responsibility to keep track of how many you have left.
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:58 PM just as you go to submit your assignment. Slip days are meant to be used in exceptional circumstances, so you probably should not need to use all eight, but if you have something going on in your life that is impeding your ability to do your classwork on time, please reach out to us as soon as possible so we can work something out.
If you happen to run out of slip days, you can still submit assignments up to 2 days late. After you run out of slip days:
- Assignments submitted 0.001 to 24 hours late will have their score multipled by 0.8 (so if your score is 15/16, it will be reduced to 12/16)
- Assignments submitted 24.001 to 48 hours late will have their score multiplied by 0.6 (so if your score is 15/16, it will be reduced to 9/16)
- Assignments submitted more than 48 hours late will receive a 0
Regrade Requests
Most of the projects and labs 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 one week of the grades being released.
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 fill out the Autograder Regrade Request Form.
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:
- If it is still before the late deadline, you may use slip days to fix your code and re-submit. 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.
- If it is past the late deadline and your code requires only minor fixes (e.g., the file name is wrong) we will fix your code at the cost of two slip days. You must have two full slip days to use this option! You can submit a catastrophe regrade request the same way you submit a regular autograder regrade request, by filling out the Autograder Regrade Request Form.
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.
A note on letter grades
The following is adapted from CSE 160 at the University of Washington.
Grading for this class is not curved in the sense that the average is set at (say) a B+ and half of the class must receive a grade lower than that. If everyone does well and shows mastery of the material, everyone can receive an A (this would be awesome!). If no one does well (this is unlikely), then everyone can receive a C.
Grading for this class is curved in the sense that we do not have a pre-defined mapping from project and exam scores to a final GPA. There is no pre-determined score (e.g., 90% of all possible points) that earns an A or a B or a C or any other grade. To determine the final grade, we will ask questions like “Did this student master the material?”. With that said, grades will not be any stricter than the standard grading scale (where an A+ is a 97+, A is 93+, A- is 90+, etc). For instance, the threshold for an “A” will never be higher than 93%.
Try your best not to worry about grades, and we’ll reciprocate by being fair. We’re in this together 😎.
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 will 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, surf the web, 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 pair programming 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 students (except from your pair programming partner during projects), the web, or any other resource not officially sanctioned by this course
- 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 pair programming partner and each working on different questions
- Collaborating with others on exams
The following activities are examples of appropriate collaboration and are allowed in DSC 80 (not an exhaustive list):
- Discussing the general approach to solving labs or projects
- Talking about problem-solving strategies or 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 sharing answers
- Posting a question about your approach to a problem on Campuswire, without sharing your code
How can I be sure that my actions are NOT considered cheating?
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.
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 end of Week 3 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
If there is an issue you feel uncomfortable speaking with us or are searching for help on a specific concern, there are several campus resources available to you, including:
- UCSD Counseling and Psychological Services (CAPS)
- Hub Basic Needs Center
- Office for Students with Disability (OSD)
- Office for Prevention of Sexual Harrassment and Discrimination
Acknowledgements 🙏
This offering of DSC 80 builds off of prior offerings by Justin Eldridge, Marina Langlois, and Aaron Fraenkel. Along with the help of their tutors and TAs, they developed much of the content that we will use in this course.