Welcome to DSC10! This class is currently called Introduction to Programming, though its name is being changed to Principle of Data Science, which more accurately reflects the content of the course. This course aims to teach you how to draw conclusions about data. We will learn how to explore data and make predictions about data. Programming is a useful tool to help us analyze large data sets, and so we will learn how to program in Python towards this end. We will learn some of the core techniques of data science and practice applying them to real data sets from a variety of different disciplines.

Prerequisites: None. This course is an introduction to data science with no prior background assumed beyond high school algebra. If you have taken both a statistics class and a programming class, this is probably not the right class for you. 


Lecture A00: Tuesday/Thursday 12:30-1:50pm, WLH 2112  (Langlois)
Lecture B00: Tuesday/Thursday 2pm-3:20pm, WLH 2112  (Tiefenbruck)
Lecture C00: Tuesday/Thursday 9:30am-10:50am, WLH 2112  (Langlois)

Discussion A01: Friday 11am-11:50am, WLH 2206. 
Discussion B01: Friday 1pm-1:50pm, WLH 2206. 
Discussion C01: Friday 9am-9:50am, WLH 2206. 

Final Exam A00, B00, C00: Thursday, December 14th, 7pm-10:00pm, Location TBA


Instructor: Marina Langlois 
Instructor: Janine Tiefenbruck 
Teaching Assistants: TBA
Tutors: TBA

We will be communicating with you and making announcements through an online question and answer platform called Piazza. We ask that when you have a question about the class that might be relevant to other students, you post your question on Piazza instead of emailing us. That way, everyone can benefit from the response. You can also post private messages to instructors on Piazza, which we prefer to email.

Our office hours are available on the Staff Hours page.



5%   Class Participation
20% Homework Assignments 
25% Projects
10% Labs
10% Midterm exam
30% Final Exam

Important Grading Policies:
  • You must score at least 55% on the final exam to pass the course.  If you score lower than 55% on the final, you will receive an F for the course, regardless of your overall average.
  • You have one week from the time an assignment or exam is returned to request a regrade.  After that, the grade is set in stone. 
We will use a standard scale for assigning letter grades: 90-100 = some kind of A; 80-89.9= some kind of B, 70-79.9= some kind of C, 60-69.9=D, <60=F.  Plus and minus cutoffs will be determined at the instructor’s discretion.  


During class you will work alone and in groups to work through problems and answer questions using iClickers.  You will need an iClicker version 2 remote, available at the UCSD bookstore (you will not be able to use iterWrite, HITT brand, the smartphone clicker app, or anything other than the genuine iClicker2 remote). 

Once you purchase an iClicker remote, you must register it online here in order to get credit for your responses. You must resolve all iClicker registration issues by the end of Week 1.  Failure to ensure that you are getting your participation credit before then will result in a 0 for the days that you have not received credit.

You must bring your iClicker to every class.  Forgetting your clicker counts as missing a class.  You must attend the lecture for which you are registered in order to receive participation credit. You will receive credit for the day if you answer at least half of the questions asked that day. The correctness of your responses does not affect your participation score.

Participation points may not be made up, but some can be dropped. Say there are X class sessions, each with one participation point:
  • Your first 4 missed classes will be dropped (i.e. your participation score is out of X-4 points).
  • If you earn 93% or above on the midterm, an additional 8 missed classes will be dropped.


You are encouraged to do your programming assignments in CSE B220, which is in the basement of the CSE building.  The lab will be staffed with tutors who are there to help you during scheduled hours. Make sure to check the calendar before coming to the lab. However, if the lab is full, you may work in any of B220-B260. If you need tutor help, just put your name on the list (use Autograder).

Deadlines and Late Submissions:

Homework assignments and projects must be submitted by the 11:59pm deadline 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. 

 You have two slip days to use at your discretion on any two homework or project assignments throughout the quarter.  Slip days allow you to turn in an assignment up to 24 hours after the deadline.  Here the specific rules for slip days:
  • You may use at most ONE slip day on any homework assignment or project. That is, you CANNOT get a 48 hour extension on any single assignment.
  • If you are working with a partner using pair programming, you may use a slip day if both partners have a slip day remaining, and you will both be charged a slip day.
  • Slip days cannot be redeemed for any value at the end of the quarter.
  • You do not need to ask to use your slip days. Any submission turned in after the deadline and before 24 hours after the deadline will be charged a slip day automatically.
  • You will be charged a slip day even if your assignment is submitted just 1 minute after the deadline.
  • In general, slip days make extensions irrelevant. These are your extensions--use them when you need them.
  • Assignments submitted after the 24 hour slip day extension, or after the deadline if you are out of slip days will receive 0 credit.  It is your responsibility to keep track of how many slip days you have remaining.

Weekly labs are a required part of the course and will help you develop fluency in Python and working with data. The labs are designed to help you build the skills you need to complete homework assignments and projects.  Labs will be released on Monday morning and due the following day, by Tuesday at 11:59pm. Tutors will be available in the computer labs on Monday in order to help you. Each person must submit each lab independently, but you are welcome to collaborate with any number of other students in lab. If you choose to complete a lab assignment remotely, without physically attending the lab, you may do so, but you must work completely on your own. Therefore, lab attendance is encouraged but not required.

Deadlines and Late Submissions:

Labs must be submitted by the 11:59pm deadline 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. Late lab submissions will not be accepted. We will drop your two lowest lab scores to account for this.


Exams are on paper, and they are closed book and closed notes.  Exams must be taken during the scheduled time, and you must attend the lecture section in which you are enrolled. 

If you have a conflicting final exam (scheduled at the exact same time), or if you have three or more exams in one day, please see your instructor by the end of Week 1 to see if alternate arrangements can be made. Outside of this, no makeup exams will be given.


We expect that students in this class will have a wide range of backgrounds and relevant experience. If you find that the class is moving fast, and especially if you are new to programming, you will benefit from taking advantage of the opportunity to attend discussion section and catch up on the material that goes by too fast. Even if you are following along well in class, discussion section allows you the opportunity to practice the skills learned in lecture and develop your expertise. Discussion sections are purely for your benefit, and do not impact your course grade. Please make an effort to attend the discussion corresponding to the lecture in which you are enrolled. You can attend another discussion section, but note that room capacities are limited and if the room is overfilled, priority will be given to students enrolled in that section.


The Office for Students with Disabilities (OSD), an Academic Affairs department, is responsible for the review of medical documentation and the determination of reasonable accommodations based on a disability. Authorization for Accommodation (AFA) letters are issued by the OSD and given to undergraduate, graduate, and Professional School students directly. If you have an AFA letter, meet with the CSE Student Affairs representative, and schedule an appointment with your instructor by the end of Week 2 to ensure that reasonable accommodations for the quarter can be arranged.


The basic rule for DSC10 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.

What counts as cheating?

In DSC10, you can read books, surf the web, talk to your friends and the DSC10 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.  

The following activities are considered cheating and ARE NOT ALLOWED in DSC10 (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
  • Using someone else's clicker for them to earn them credit or giving your clicker to someone else so that they can participate for you to earn credit
  • 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 DSC10:
  • Discussing the general approach to solving homework problems or projects
  • 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 HonestyTrustFairnessRespectResponsibility and Courage