cs-395 data science – advanced r, tips and trickscs-395 ...ccartled/teaching/2020... · 1...

3
CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks CS-395 Data Science – Advanced R, Tips and Tricks : : Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Self Evaluation Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 Feburary 22 - 23, 2020 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab 9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge Instructor: Dr. Cartledge http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching http://www.cs.odu.edu/˜ccartled/Teaching Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! Data science is eveywhere! – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – Everyone wants to use it and is affected by it – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science – R is the lingua franca of Data Science Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: Objectives: – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn advanced R techniques – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to make R scripts execute faster – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn how to write defensive R scripts – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R – Learn when it makes sense to step outside of R Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: Technologies to be used: – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – R, and RStudio – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R – C and C++ with R Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: Academic prerequisites: – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – CS-330 or equivalent, at least a C as final grade – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor – Permission of the instructor Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: Recommended experiences: – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – Exposure to, and experience with R – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language – A structured language Other notes: This is a hands-on programming course. You will use R and RStudio. You will write advanced programs in R. You will interface C/C++ programs with R. Text: Advanced R, Second Edition, by Hadley Wickham (ISBN: 9780815384571) Optional text: R for Everyone: Advanced Analytics and Graphics, by Jared P. Lander (ISBN: 0321888030)

Upload: others

Post on 24-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020... · 1 Introduction The field commonly known as “Data Science” lies at the intersection of

CS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and TricksCS-395 Data Science – Advanced R, Tips and Tricks:::::::::::::::::::::Self EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf EvaluationSelf Evaluation

Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 2020Feburary 22 - 23, 20209AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab9AM - 5PM ODU Gornto Hall. Room 101 Computer Lab

Instructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. CartledgeInstructor: Dr. Cartledgehttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teachinghttp://www.cs.odu.edu/˜ccartled/Teaching

• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!• Data science is eveywhere!– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– Everyone wants to use it and is affected by it– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science– R is the lingua franca of Data Science

• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:• Objectives:– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn advanced R techniques– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to make R scripts execute faster– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn how to write defensive R scripts– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R– Learn when it makes sense to step outside of R

• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:• Technologies to be used:– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– R, and RStudio– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R– C and C++ with R

• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:• Academic prerequisites:– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– CS-330 or equivalent, at least a C as final grade– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor– Permission of the instructor

• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:• Recommended experiences:– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– Exposure to, and experience with R– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language– A structured language

Other notes:

• This is a hands-on programming course.• You will use R and RStudio.• You will write advanced programs in R.• You will interface C/C++ programs with R.• Text: Advanced R, Second Edition, by Hadley Wickham (ISBN: 9780815384571)• Optional text: R for Everyone: Advanced Analytics and Graphics, by Jared P. Lander (ISBN:

0321888030)

Page 2: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020... · 1 Introduction The field commonly known as “Data Science” lies at the intersection of

1 IntroductionThe field commonly known as “Data Science” lies at the intersection of mathematics, computer science,and domain expertise. Within the data science (DS) world, there are a multitude of areas of study, andexploration. We will focus primarily on advanced programming techniques using the R langauge.

The course will introduce benchmarking software used to time the performance of R scripts, and thendemonstate how different programmic approaches can be used to improve performance, write more defensiveR functions, and identify when it makes sense to step outside of the R language. R language specific tipsand tricks will be used to demonstrate how a deeper understanding of R, can be used to make R programsmore understandable, maintainable, and robust.

2 Class ScheduleA number of different topics will be discussed and covered in the class. These include:

• What is Data Science? R is one of the two most common Data Science (DS) languages (the otherbeing Python). DS has a little bit of a mystique to it because it lies at the intersection of CS, mathe-matics, and domain expertise. The question becomes how much do you have to know about each ofthe areas to understand and be functional as a DS person.

• What is R? D A very brief overview of the language (because everyone should know what it is), anda little more time spent on the RStudio IDE that will be used in the class. RStudio is not the only RIDE, but it is common (again to ensure that everyone is at the same level of knowledge). RStudio doesa lot things with R well, some are not so obvious, and some are really just obscure.

• Functions, environments, and scoping. Everything in R is an object of some sort, this includesthings that look like operators (including: +, -, /, *, %*%, %/%, %in%). When an object is treatedlike a function, then things like lazy parameter evaluation (basically when and if a pass parameteris used, even when passed to the function, and do parameters have to be fully specified), lexicalscoping (if a symbol is accessed in a function or elsewhere, how does the recursive searching forthe symbol definition work), environments are where all the local symbols live (but symbols in otherenvironments above you can be accessed), anonymous functions (those without a name) are commonand very useful, and ellipses (. . . ) as function arguments and pass parameters). ([2], chap. 6 and 7)

• Looping, and *apply variants. R supports common things like FOR loops, but they are relativelyslow. Other looping constructs (the *apply functions) are much, much faster because they accessmemory directly, and are handled by low level C programs and functions. Where and how the different*apply functions are used can significantly reduce execution time. ([2, 1], chap. 9, 10, and 11)

• Parallelism. Most normal data processing is a linear execution of operations. R supports parallelexecution via an optional package (nee, library) to further reduce execution time. Necessary for thisis to understand if your problem can be parallelized. Also, R supports program execution in otherlanguages (such as C, and C++, possibly others) to improve performance. ([1], chap. 19)

• Data reshaping and subsetting. R’s strength is in the realm of mathematics, so operations on matricesare trivial from a programming perspective. Operations on objects things that R calls a “data frame”(looks like an Excel woksheet), are not as straightforward. Because of the way R manages data, anentire data structure may be copied when only one element is changed. While not an issue when the

Page 3: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020... · 1 Introduction The field commonly known as “Data Science” lies at the intersection of

structure is small, when it is large (picture a worksheet with 100,000 entries), repeated copying whenchanging selected cells can be very time expensive. ([2, 1], chap. 4 and 12)

• String manipulation. Hand-in-hand with the reasoning behind the data reshaping and subsetting, isthat R’s string manipulation is not very efficient. There are slow and obvious ways, as well as crypticand fast ways. We will be focusing on the fast ways. ([1], chap. 13)

• Data insights and object orientated progamming. R has a number of tools to examine the internalstructure of its data structures. Understanding the tools to get to the internals enables you to use themost effective R operator to effect the needed change. ([2], chap. 3, 13, 14, 15, and 16)

• Best practices and approaches. Understanding what is happening behind the scenes with R, toimprove program execution time, system and software maintenance.

A detailed class schedule is provided in Table 1.

Table 1: The 2 day class schedule. Attendees who are taking the boot camp as part of a 1 credit course willhave in class assignments. The text Advanced R, Second Edition will be used extensively. The optional textR for Everyone: Advanced Analytics and Graphics will be used less often.

Day 1 Day 2What is Data Science? Data reshaping and subsettingWhat is R? String manipulationFunctions, environments, and scoping Data insightsLunch LunchLooping, and *apply variants Best practices and approachesParallelism Conclusion. Presentation of certifi-

cates.

References[1] Jared P Lander, R for Everyone, Pearson Education, 2014.

[2] Hadley Wickham, Advanced R, Chapman and Hall/CRC, 2019.

2