Syllabus šŸ“–

Table of contents

  1. About 🧐
    1. Why learning to program is so valuable
    2. Why this course will be especially challenging
    3. My advice for dealing with these challenges
    4. How we re-use content from past courses
  2. Communication šŸ’¬
  3. Technology šŸ–„
  4. Class Components šŸŽ
    1. Skill Tests (55%)
    2. Participation (15%)
    3. Weekly Labs (15%)
    4. Weekly Homeworks (15%)
  5. Office Hours
  6. Policies āœļø
    1. Regrade Requests
      1. Sample Regrade Request
    2. A Note on Letter Grades
  7. COLLABORATION POLICY AND ACADEMIC INTEGRITY āš ļøā—
  8. Support šŸ«‚
    1. Food Support for Students
    2. Accommodations
    3. Diversity and Inclusion

About 🧐

In DSC 20 we’ll focus on building your programming skills. Learning to program is notoriously difficult, but it is very rewarding. Personally, learning to program was essential for finding a meaningful, long-term career that I deeply enjoy. But there were many, many points of frustration along the way. And there still are!

Why learning to program is so valuable

  • It opens doors - In my career, programming has been the #1 skill that has opened doors for me. Today, I find that LLMs like ChatGPT amplify the value of your programming skills. Strong programmers at my company use LLM agents to do high-quality, high-velocity work. Trying to use LLM’s to replace your programming skills, on the other hand, tends to end badly (speaking from personal experience :).

  • You probably need it to graduate - many other data science courses require programming knowledge as a prerequisite.

  • It will help you understand the world - so many things that shape your daily life depend on code working well (or not working well).

I’m happy to discuss this topic more, feel free to reach out!

Why this course will be especially challenging

  • We’ll be moving very quickly: We’re condensing a 10 week course into 5 weeks.
  • This subject is inherently cumulative: understanding the earlier content is a pre-requisite to understanding the later content.
  • We’ll be remote, which means it will take a little more effort to connect with the teachers or your fellow students.

My advice for dealing with these challenges

  • Expect to spend a lot of time on this course — I suggest treating it as a full-time job.
  • Ask for help early and often, and don’t be afraid to look silly in front of others. Programming makes everyone feel silly. If you’re struggling with something, you’re probably not the only one, so you’re doing a public service by asking for help.
  • Whatever you do to deal with stress (I love hiking and yoga) will be especially important during this course.

How we re-use content from past courses

Where it’s safe to, we re-use some content from past courses by excellent UCSD teachers. That’s why,after the first live lecture with me, all lectures will be pre-recorded by Brendan Tomoschuk, a data scientist at Reddit and past teacher of DSC20. Additionally, I’m re-using much of the great content on this website that was developed by Marina Langlois.

Rather than rebuilding this content from scratch, I’ve updated it for this summer session, and will be focusing my time on running the course, developing new exams, and being as accessible to you all as I can.


Communication šŸ’¬

This quarter, we’ll be using Campuswire as our course message board. You will be added at the beginning of the quarter. If you’re not able to access it, please self enroll using a given link, as we’ll be making all course announcements through it.

If you have a question about anything to do with the course — if you’re stuck on a assignment problem, want clarification on the 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 your code, please make your post private so that others cannot see it. You can also post anonymously if you would prefer.

Course staff will regularly check Campuswire and try to answer any questions that you have. You’re also encouraged to answer a question asked by another student if you feel that you know the answer!


Technology šŸ–„

We will be using several websites this quarter. Here’s what they’re all used for:

  • Course Website: where all content will be posted.
  • Campuswire: discussion forum where all announcements will be sent, and where all student-staff and student-student communication will occur. You should be automatically added to Campuswire.
  • Gradescope: where all assignments are submitted and all grades live. You should be automatically added to Gradescope; let us know if that’s not the case.

If you will not have reliable access to a computer this quarter, please reach out to us ASAP, as the university may be able to accommodate you.


Class Components šŸŽ

Skill Tests (55%)

These will be weekly live, proctored tests of your programming skills where you will be sharing your screen so we can see exactly what you will be doing. You will not be allowed to use any AI assistance during these tests. If you do use AI assistance, you will get an automatic 0 for the skill test.

Why we put so much emphasis on skill tests:

  • These tests are the purest way to tell whether you understand the material.
  • These tests are very similar to real job interviews for data scientists. Getting good at these tests will help you get a job in the future.

How we score skill tests:

  • 60% — your code gives the correct outputs
  • 10% — your code follows our style guide
  • 30% — you can demonstrate your understanding of your code to the proctor. If you wrote the code and understand it, this will be very easy.

How skill test redemption works

If you do poorly on one of the first three skill tests, you’ll have an option to replace this poor score in the final skill test. In the final skill test, you can choose to be tested on material from any (or all) of the first four weeks. If you do so, we’ll only count the higher score towards your final grade.

Example: Leif scores a 30% in the week 1 skill test. In the final exam, he chooses to be tested again on the week 1 material and scores a 70%. We count the 70% towards his final grade, and disregard the 30%.

Participation (15%)

We want to encourage you to ask for help and to help others. In each of the 5 weeks, you can earn your weekly participation points (3% of your total grade) with:

  • 4 posts/comments in Campuswire asking for help or giving help, OR
  • Confirmed attendance at office hours

We’ll use our own judgment to determine whether you were genuinely trying to get or give help (e.g., responding with an emoji does not count towards one of your four comments on Campuswire).

Weekly Labs (15%)

Weekly Homeworks (15%)

Though they only count for 30% of the grade, labs and homeworks will be critical to actually learning the material and doing well on the skill tests. So you should be spending most of your time in this area.


Office Hours

To get help on assignments and concepts, course staff will be hosting several office hours per week. See the Getting Help tab of the course website for the most up-to-date schedule and instructions.


Policies āœļø

Regrade Requests

You can ask for a regrade on lab, homework (or resubmission), and the exams if you believe that the grader made a mistake. Remember that clarity is a part of your score — if you had the right idea but were unable to clearly communicate it, you may still not deserve full credit. We ask that you please submit your regrade requests directly on Gradescope within 4 days of the assignment grade being released. After that, all grades are set in stone.

Sample Regrade Request

  • Please be specific on what you wish to change: line number and detailed content

    Hi, in my hw01, I have accidentally used print() instead of return in my Question 1. I believe it should count as a ā€œPrint vs. Return Issuesā€ on the syllabus so that I would like to request a regrade and receive 25% off.
    Please change my line 20’s print(result) to return result.
    Thanks!

A Note on Letter Grades

We will use a standard scale for assigning letter grades:

Final Grade PercentageFinal Letter Grade
[90% , 100%]Some kind of A
[80% , 90%)Some kind of B
[70% , 80%)Some kind of C
[60% , 70%)D
[0% , 60%)F

Plus and minus cutoffs will be determined at the instructor’s discretion.


COLLABORATION POLICY AND ACADEMIC INTEGRITY āš ļøā—

The basic rule for DSC 20 is: Work hard. Make use of the expertise of the staff to learn what you need to know to really do well in the course. Act with integrity, and don’t cheat.

If you do cheat, we will enforce the UCSD Policy on Integrity of Scholarship. This means: You will fail the course, no matter how small the affected assignment, and the Dean of your college will put you on probation or suspend or dismiss you from UCSD.

Why is academic integrity important? Academic integrity is an issue that should be important 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 important for the entire campus to band together and 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 Jacobs School of Engineering Code of Academic Integrity, 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.

AI Use Policy for This Course

In this course, you are permitted to use AI tools like chatbots (e.g., ChatGPT) and code generators (e.g., CoPilot) only for studying, reflection, and ideation. These tools should support your learning, but they should not generate content for assignments. If you choose to use AI, you must track your usage by citing the tool, dates of use, and any relevant prompts. Be prepared to share this process with me as part of your documentation.

This policy helps ensure the skills and strategies taught in this course are mastered without undue reliance on AI. Our focus is on your original work, which allows for meaningful feedback and personal growth. If you ever feel overwhelmed, please reach out to me or the teaching team. We understand the pressures of university life and are committed to working with you to find solutions, including extensions or assignment adjustments.

Fairness and responsible use of AI apply to everyone in this class, including me. I commit to adhering to these same principles when using AI tools in my teaching. Let’s work together to create a supportive and successful learning environment!

What counts as cheating?

In DSC 20, you can read books, surf the web, talk to your friends and the DSC 20 staff to get help understanding the concepts you need to know to complete your assignments. However, all code must be written by you, together with your partner if you choose to have one (when allowed). Note that a partner is allowed only when we explicitly say that groupwork is allowed for a particular assignment. Most assignments in this course must be completed individually.

The following activities are considered cheating and ARE NOT ALLOWED in DSC 20 (This is not an exhaustive list):

  • Using or submitting code acquired from other students (except your partner, where allowed), the web, or any other resource not officially sanctioned by this course

  • Having any other student complete any part of your assignment on your behalf

  • Acquiring exam questions or answers prior to taking an exam

  • Completing an assignment on behalf of someone else

  • Providing code, exam questions, or solutions to any other student in the course

  • Using any external resource on closed-book exams

The following activities are examples of appropriate collaboration and ARE ALLOWED in DSC 20:

  • Discussing the general approach to solving homework problems or a final project (when given)

  • Talking about debugging strategies or debugging 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

How can I be sure that my actions are NOT considered cheating?

To ensure that you don’t encounter any problems, 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.

Note: in the discussion above, we are talking about other students that are not your pair programming partner. See the pair programming guidelines for information on working with a partner.

Remember, Academic Integrity is about doing your part to act with Honesty, Trust, Fairness, Respect, Responsibility and Courage.


Support šŸ«‚

Food Support for Students

If you are skipping and stretching meals, or having difficulties affording or accessing food, you may be eligible for CalFresh, California’s Supplemental Nutrition Assistance Program, that can provide up to $292 a month in free money on a debit card to buy food. Students can apply at benefitscal.com/r/ucsandiegocalfresh.

The Hub Basic Needs Center empowers all students by connecting them to resources for food, stable housing and financial literacy. Visit their site at basicneeds.ucsd.edu.

Accommodations

Students requesting accommodations for this course due to a disability or current functional limitation must provide a current Authorization for Accommodation (AFA) letter issued by the Office for Students with Disabilities (OSD). This AFA letter should be shared with the instructor and the Data Science OSD Liaison, who can be reached at dscstudent@ucsd.edu. Please contact us by the end of Week 1 to make sure we can arrange accommodations as needed.

Diversity and Inclusion

We are committed to creating an inclusive learning environment in which individual differences are respected and all students feel comfortable. 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 able to thrive.