
Introduction to Data Science
Join the data revolution. Companies are searching for data scientists. This specialized field demands multiple skills not easy to obtain through conventional curricula. Introduce yourself to the basics of data science and leave armed with practical experience extracting value from big data. #uwdatasci

About the Course
Course Syllabus
- Examples, data science articulated, history and context, technology landscape
Part 1: Data Manipulation at Scale
- Databases and the relational algebra
- Parallel databases, parallel query processing, in-database analytics
- MapReduce, Hadoop, relationship to databases, algorithms, extensions, languages
- Key-value stores and NoSQL; tradeoffs of SQL and NoSQL
Part 2: Analytics
- Topics in statistical modeling: basic concepts, experiment design, pitfalls
- Topics in machine learning: supervised learning (rules, trees, forests, nearest neighbor, regression), optimization (gradient descent and variants), unsupervised learning
Part 3: Communicating Results
- Visualization, data products, visual data analytics
- Provenance, privacy, ethics, governance
Part 4: Special Topics
- Graph Analytics: structure, traversals, analytics, PageRank, community detection, recursive queries, semantic web
- Guest Lectures
Recommended Background
After taking this course, you may be interested in participating in the three-course Certificate in Data Science offered through the University of Washington Professional and Continuing Education program. This online course will provide an overview and introduction to the more extensive material covered in that program, which offers classroom-based instruction by data scientists from Microsoft and other Seattle players, networking opportunities with peers, case studies from the “front lines,” and deep dives into selected topics.
Suggested Readings
We recommend, but do not require, that students refer to the book Mining of Massive Datasets by Anand Rajaraman and Jeff Ullman
Course Format
There will be no formal exams or standalone quizzes.
There will be eight total assignments of which two are optional.
We will provide a virtual machine equipped with all necessary software, but you are permitted (and encouraged) to install software in your own environment as well.
There will be four structured programming assignments: two in Python, one in SQL, and one in R.
There will also be two open-ended assignments graded by peer assessment: one in visualization, and one in which you will participate in a Kaggle competition.
Finally, there will be two optional assignments: One involving an open-ended real-world project submitted by external organizations with real needs, and one involving processing a large dataset on AWS.
FAQ
Will I get a Statement of Accomplishment after completing this class?
Yes. Students who successfully complete the class will receive a Statement of Accomplishment signed by the instructor.
What resources will I need for this class?
For this course, you will need an Internet connection and either a) the ability to run a virtual machine locally or b) the ability and knowledge to install the appropriate software yourself. The software will include Python 2.7 (including various libraries), R, SQLite (or another database you are comfortable using). You will also have the opportunity to install and work with Hadoop, but for logistics reasons, we will not require its use in an assignment. Some assignments will be open-ended.
What level of programming experience should I have?
We expect intermediate programming experience in some language and some familiarity with database concepts. There will be programming assignments, but these are not designed to test knowledge of the language itself and will not involve using any esoteric features. The languages we will use are Python, R, and SQL.