Welcome to DSC 170 at UC San Diego! This course will introduce spatial data science concepts and present a range of spatial data management techniques and spatial analysis methods. We will learn how to find, interpret, visualize and analyze spatial data and build models involving such data. An online GIS (Geographic Information System) software and several Python packages will be used to illustrate core concepts and techniques, and practice spatial analysis of real datasets.
Prerequisites: DSC-80 (Practice of Data Science). We will assume that you know how to program in Python and use packages such as Pandas, Matplotlib and Numpy. Familiarity with “non-spatial” data science approaches and tools would be a big plus.
Instructor: Ilya Zaslavsky, <izaslavsky@ucsd.edu> (Ilya)
Instructional Assistants:
TA: Harshil Jain - <hjain@ucsd.edu> (Harshil)
Lecture (A00): Tuesday/Thursday, 5:00-6:20 pm. Most lectures will be in the classroom (Ridge Walk Academic Complex, RWAC 103). Some lectures may be over Zoom (see Canvas); these will be announced in advance. Lectures will be recorded in Zoom or through podcast.ucsd.edu, and the videos will be available through Canvas.
Discussion (A01): Tuesday 6:30-7:20 pm, RWAC 103, or over Zoom
Office hours:
Ilya's Office Hours: Monday 11am-12pm over Zoom. Also, feel free to catch me after lectures at RWAC. Additional appointments via Zoom also possible.
Harshil's Office Hours: Wednesday 10 am - 11 am over Zoom. See Staff Hours Calendar for Zoom link.
Midterm Exam: Week 6 (during lecture time, or virtually that week)
Final Project writeup due: ____________, before midnight
When you email instructors, please add "DSC170:" to the subject of your email. However, please try to use Piazza for any communications.
The final grades will be computed as follows:
10% Quizzes
40% Mini-projects (aka Homework)
20% Midterm Exam
30% Final Project
A standard scale for assigning letter grades will be used: 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.
Your contribution to lectures and discussions, and Piazza questions and responses, won't go unnoticed; it is a good source of extra credit. Communication skills are important in every discipline but they are even more crucial in interdisciplinary fields like spatial data science. Be prepared to ask meaningful well-formulated questions and participate in discussions.
We are planning a series of mini-projects, roughly every 7-10 days except for the midterm and final weeks (subject to change). Rather than solving a set of tightly-scoped programming problems (as in homework assignments in your earlier DSC classes) you'll be expected to explore data and develop creative solutions. The mini projects will be designed to provide you hands-on experience working with data using concepts explored in class. You are strongly encouraged to work on the mini-projects with a partner (except for mini-project 1, which will be done individually). See pair programming for details. This model should be familiar to most of you.
In earlier classes, you mostly developed code for well-defined programming problems. Problem's objectives, constraints, inputs and outputs were fairly specific and precisely described. In many real world applications, however, it takes significant effort to translate problems in public health, urban planning, natural resource management, social-economic development, etc., into precisely formulated spatial analysis tasks, which can be solved using existing algorithms and software libraries. Sometimes such translations are highly non-trivial. Further, like in real life, there may be multiple ways to achieve the solution. We will start with relatively tightly formulated problems, but gradually give you more freedom to implement your own ideas and solutions. You still should follow best coding practices you learned in your earlier classes - but grading will now reflect how elegant, efficient and creative your projects are, and how you can engage the arsenal of spatial analysis tools and approaches you learned in class. This trend will culminate in final projects described below. By nature, grading of open-ended assignments is more subjective than of multiple-choice questions. Please don't hesitate to discuss your grades with the TA.
Some projects may include extra credit sections. They are optional, and will be due at the time of the assignment.
Deadlines and Late Submission policies:
You have 3 days from the time an assignment or exam is graded to request a regrade. After that, the grade is set in stone.
The mini-projects must be submitted by the 11:59pm deadline to be considered on time. See the submission days under Schedule. We'll have two types of gradable products: coding assignments submitted via Gradescope, and project output published in ArcGIS Online and/or ArcGIS Enterprise Instance. Specific instructions will be provided for each project.
You have three slip days to use at your discretion on any three project assignments throughout the quarter (including the final project). Slip days allow you to turn in an assignment up to 24 hours after the deadline, subject to the following rules:
You may use at most ONE slip day on any assignment. 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 need to mail Harshil (TA) to use your slip days.
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.
If there is something extraordinary (really) that prevented you from meeting these rules, contact the instructors.
The spatial data analysis software we are using is new and updated often. You may run into bugs and/or outdated instructions. In these cases, try to find a workaround, ask your classmates and/or instructors. If we run into bugs that affect everybody in the class, we may consider postponing mini-project deadlines (that happened before!). But after several iterations, and after we submitted enough bug reports, it should mostly go smoothly.
The midterm exam will be taken during lecture time or virtually during the midterm week (see Schedule). If you have a time conflict with the scheduled exam time, or if you have three or more midterms in one day, please let the instructor know at least 2 weeks prior to the exam date.
We'll have several occasional quizzes, mostly following lecture material. The quizzes are important as a way to keep your attention on the foundations of spatial data science and GIS besides practical Python coding. Spatial analysis libraries we are going to use are very extensive, and change often - so it is difficult to know all the nuances. Therefore, understanding the concepts and ideas behind the key operations is critical - and more important than remembering coding recipes. This is what the quizzes will focus on.
You'll have about 20 minutes to complete a quiz. You are welcome to discuss your quiz grade (as well as other grades) but make sure that you read the answer key first and submit the request to the TA within a week of the quiz distribution date.
To help you deal with unforeseen circumstances, your quiz scores will be computed from your top n - 1 individual scores where n is the total numbers of the quizzes for this class. Thus, you can miss up to one quiz of the class, no questions asked, to account for possible medical or family-related absences, etc.
If we settle on online quizzes, you'll have 2 attempts at the quizzes. In most cases, the questions will be multiple choice or several sentences in response to a prompt.
Final project is a chance for you to demonstrate your creativity and the skills you learned. Same as in mini-projects, you are encouraged to work with a partner. Project ideas will be discussed in class. In the second part of the quarter you will submit a formal project proposal, and get comments from the instructors. Project presentations will be done during the last week of the class. See potential project topics on the the Links and Resources page. Also, make sure to check out final projects developed by the previous generation of DSC170 students. You are encouraged to discuss final project progress with instructors and show preliminary results, to help us steer the projects in a useful direction if needed (mostly help you narrow the scope of the project to make it doable). A well-documented Jupyter notebook for the project, along with other online materials (e.g. slides, Storymaps, dashboards, other apps) and pointers to data should be submitted by midnight of the due date. Basically, it should be packaged such that the project materials appear in the DSC170 projects gallery for the class, and - ideally - could be independently executed in the Datahub or ArcGIS Online environment. Detailed instructions will be provided later. You will be graded on the project proposal, project presentation, and the final project report/notebook. We often invite GIS and spatial analysis experts from companies and county agencies to listen to final project presentations.
For a large part of the class, starting from week 3, we will use software from the Environmental Systems Research Institute (ESRI, http://www.esri.com). UCSD has a site license for ESRI products. You can now use your regular UCSD accounts to login to arcgis.com (ArcGIS Online) and to ArcGIS Enterprise which is being set up at the Library. These accounts will let you use ESRI online tools to work on projects. Completing some projects will require that you use ArcGIS credits. You will be allocated enough credits for the entire duration of the class. If you run out of credits please let the instructors know ASAP, and we will arrange to add more credits to your account. A guide to understanding credits is at https://doc.arcgis.com/en/arcgis-online/reference/credits.htm . Before performing geoprocessing/geoenrichment operations in ArcGIS Online, check the credit estimator to see how much it will cost. If you run out of credits, email Maryam Sarkhoush at msarkhoush@ucsd.edu and Amy Work at awork@ucsd.edu . Please do it in advance if you expect to run out of credits! That is, not after hours on the day when a submission is due.
Should you need additional GIS help please contact the instructors and/or Amy Work, the GIS Librarian. The GIS lab at the Library has a dozen computers with ArcGIS Desktop and ArcGIS Pro installed (both physical machines and VMs). http://ucsd.libguides.com/gis is an important resource that Amy is maintaining: here you’ll find GIS data, books, tutorials, links to classes, etc. See the Resource section of this site for additional links, and to download ArcGIS desktop software.
The content of this section should be familiar to you from your other DSC classes. We follow the same strict academic integrity policy guidelines. Basically, don't cheat. If you 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.
About writing code
All code must be written by you, together with your partner if you are allowed to have one. You can read books, surf the web, talk to your friends and to instructors to get help understanding the concepts you need to know to complete your assignments.
What counts as cheating?
The following activities are considered cheating and ARE NOT ALLOWED (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 (if clickers are used in class)
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:
Discussing the general approach to solving homework problems or a final project
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.
We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.). Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive.
Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course. If there is a way we can make you feel more included please let one of the course staff know, either in person, via email/discussion board, or even in a note under the door. Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input.
We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community (https://ucsd.edu/about/principles.html). 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.If you experience any sort of harassment or discrimination, please contact the instructor as soon as possible. If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination: https://ophd.ucsd.edu/
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.