Course page for DSI Principles of Programming course
M W F 1:50-2:40pm CDT
Sony Building 2001A
Meeting ID: 984 8685 4904
Passcode: 892538
https://vanderbilt.zoom.us/j/98486854904?pwd=elorRk0rbTAvTXBaMllIcXRBUEJWQT09
Class recap (A recap for the class material and interactive sessions, designed primarily for international students who are not able to attend the live session, but any student is welcome!), Zoom
M W 8:00 – 9:00 pm CDT
Meeting ID: 939 6624 5140
Passcode: 369034
https://vanderbilt.zoom.us/j/93966245140?pwd=TGhlaTVqa0x1Mmh1cURMallvaVRyZz09
F 8:00 – 9:00 am CDT
Meeting ID: 939 6624 5140
Passcode: 369034
https://vanderbilt.zoom.us/j/93966245140?pwd=TGhlaTVqa0x1Mmh1cURMallvaVRyZz09
M 9:15 – 9:45 am CDT
Meeting ID: 939 6624 5140
Passcode: 369034
https://vanderbilt.zoom.us/j/93966245140?pwd=TGhlaTVqa0x1Mmh1cURMallvaVRyZz09
R for Data Science, Garrett Grolemund, Hadley Wickham https://r4ds.had.co.nz/
Advanced R, Hadley Wickham https://adv-r.hadley.nz/
Whirlwind Tour of Python, Jake VanderPlas https://github.com/jakevdp/WhirlwindTourOfPython
Python Data Science Handbook, Jake VanderPlas https://jakevdp.github.io/PythonDataScienceHandbook/
- 10% participation
- 30% homework & short assignments
- 30% midterm project
- 30% final project
You will have the opportunity to drop two homeworks/short assignments. To receive credit, assignments must be submitted by the deadline. Sections of assignments will be selected at random for grading.
Class Slack: https://vandydatasciencems.slack.com/messages/ds5220_f20
Zhongyue (John) Yang, Assistant Professor of Chemistry, Vanderbilt University.
Affiliated to Vanderbilt Data Science Institute.
https://www.vanderbilt.edu/chemistry/faculty/yang.php
Jesse Spencer-Smith, Chief Data Scientist, Vanderbilt Data Science Institute
Office hours: M W F immediately following class
https://vanderbilt.zoom.us/j/97810995272?pwd=YzVsa3o3WjRBejFtVzVNVGNPWHUydz09
Yuzhi (Nino) Yao, M.S. Data Science Student, Vanderbilt University.
Office hours: TBD
Contact via slack or email yuzhi.yao@vanderbilt.edu
Amanda Konet, M.S. Data Science Student
Contact via slack or email amanda.konet@vanderbilt.edu
Yilin Yang, M.S. Data Science
Resources:
GH Flow Overview, https://githubflow.github.io/
Understanding GH Flow, https://githubflow.github.io/
Happy Git with R, git commands: https://happygitwithr.com/git-commands.html
Assignment: https://classroom.github.com/g/DCHjeGL5
- Data science skills
- Reproducible analytics workflow
- Structuring projects
- Introduction to the tidyverse
- Grammar of data manipulation (https://r4ds.had.co.nz/transform.html)
- Tidy data (https://r4ds.had.co.nz/tidy-data.html, https://tidyr.tidyverse.org/dev/articles/pivot.html)
- Pipeline tests (https://cran.r-project.org/web/packages/assertr/vignettes/assertr.html, https://github.com/ropensci/assertr)
Assignment: https://classroom.github.com/a/yUfbfong
-
Pipeline tests -- assertr (https://ropensci.org/blog/2017/04/11/assertr/, https://github.com/ropensci/assertr, https://cran.r-project.org/web/packages/assertr/vignettes/assertr.html) -- additional predictes (see is_* predicates in assertive, https://cran.r-project.org/web/packages/assertive/assertive.pdf, https://bitbucket.org/richierocks/assertive.data/src/master/)
-
Relational data (https://r4ds.had.co.nz/relational-data.html)
- Functions (https://r4ds.had.co.nz/functions.html, http://adv-r.had.co.nz/Style.html)
- Tidy data (https://r4ds.had.co.nz/tidy-data.html, https://tidyr.tidyverse.org/dev/articles/pivot.html)
- Tidy data and the new tidyr (https://cran.r-project.org/web/packages/tidyr/index.html, https://tidyr.tidyverse.org/articles/pivot.html, https://vita.had.co.nz/papers/tidy-data.pdf)
- Vectors (https://r4ds.had.co.nz/vectors.html)
- Iteration & functional programming (https://r4ds.had.co.nz/iteration.html)
- Functional programming with map (https://r4ds.had.co.nz/iteration.html)
- Datetime (https://r4ds.had.co.nz/dates-and-times.html)
- Strings (https://r4ds.had.co.nz/strings.html)
- Regular expressions (https://r4ds.had.co.nz/strings.html, https://github.com/VerbalExpressions/RVerbalExpressions)
- Writing functions in the tidyverse (https://dplyr.tidyverse.org/articles/programming.html, but note that rlang curly-curly https://www.tidyverse.org/articles/2019/06/rlang-0-4-0/ simplifies writing functions in tidyverse)
- Thinking Pythonically (Intro)
- Jupyter notebooks (Intro, Detailed overview )
- Basic syntax
- Variables
- Operators
- Built-in types
- List comprehensions
- Generators
- Strings and regular expressions
- NumPy intro and NumPy data types
- Using arrays: universal functions, aggregation, broadcasting
- Indexing: boolean indexing, array slicing
- Intro to Pandas: motivation and overview
- Object-oriented Python
- Modules and packages
- Final project