8
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 : : Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus Syllabus 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)

CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

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:::::::::::::::::::::SyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabusSyllabus

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-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

Contents

1 Course description 1

2 Course outline 1

3 Assignments 2

4 Grading 24.1 Overall grading scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24.2 Late assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

5 Course Policies 45.1 Attendance Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45.2 Classroom Conduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45.3 Seeking Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45.4 Disability Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

6 Academic Integrity / Honor Code 5

7 Class Schedule 6

1 Course description

The 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 amultitude of areas of study, and exploration. We will focus primarily on advanced pro-gramming techniques using the R langauge.

The course will introduce benchmarking software used to time the performance of Rscripts, and then demonstate how different programmic approaches can be used to improveperformance, write more defensive R functions, and identify when it makes sense to stepoutside of the R language. R language specific tips and tricks will be used to demonstratehow a deeper understanding of R, can be used to make R programs more understandable,maintainable, and robust.

2 Course outline

Upon completion of this course, students will be able define and characterize Data Science,understand how R’s design and implementation affect overall system performance, and

Page 3: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

specific techniques that can be used to improve performance. More specifically a studentwill be able to:

1. Enumerate the characteristics that are “slow” R program execution areas based onR’s design and architecture

2. Identify specific ways to measureably improve R’s execution

3. Demonstrate how to access and execute C/C++ programs from R

4. Understand how different approaches to solving a specific programming problem canhave radically different exectution times

5. Compare the execution time of different programming approaches

3 Assignments

There will be invidual programming assignments addressing different aspects of AdvancedR as used in Data Science. These include:

1. Satisfactory attendance and participation in the Boot Camp, and

2. Demonstrated R coding technique improvements.

These requirements can be satisfied by a program or paper:

• Programming that takes some work:

– Pre-bootcamp assignment was to measure the performance of a “reasonably”sized R script

– Post-bootcamp assignment is to apply techniques learned during the bootcampto the same script, measure the new performance, and compute the speed-up.

– Other approved ideas

• A paper – a system design and demonstration document showing how to scale thesystem(s) developed during the boot camp to enterprise size

4 Grading

4.1 Overall grading scale

Overall grade for the course will be based on the student’s performance in: class atten-dance and participation (500%), assignments (50%).

The grading scale follows:

2

Page 4: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

Table 1: Grading scale

Range Grade Grade points94 - 100 A 4.0090 - 93 A- 3.7087 - 89 B+ 3.3082 - 86 B 3.0080 - 81 B- 2.7077 - 79 C+ 2.3073 - 76 C 2.0070 - 72 C- 1.7067 - 69 D+ 1.3063 - 66 D 1.0060 - 62 D- 0.700 - 59 F 0.00

N/A WF 0.00

4.2 Late assignments

Assignments are due by midnight of the due date. The time of submission is the times-tamp of the e-mail saying that the submission is ready. Assignments that are late will bepenalized at the rate of one half of a letter grade per 24 hour period. Late submissions willbe accepted up to 4 days late (see Table 2).

Table 2: Late submission maximum grade.

Hours late Max. grade0 A

24 A-48 B+

(Continued on the next page.)

3

Page 5: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

Table 2. (Continued from the previous page.)

Hours late Max. grade72 B96 B->96 F

5 Course Policies

5.1 Attendance Policy

You are responsible for the contents of all lectures. If you know that you are going to missa lecture, have a reliable friend take notes for you although slides will be available. Ofcourse, there is no excuse for missing due dates or exam days. During lectures, we will becovering material from the textbook. Lectures will also consist of the exploration of realworld problems not covered in the book. You will be given a reading assignment at theend of each lecture for the next class.

I expect you to attend class and to arrive on time. Your grade may be affected if youare consistently tardy. If you have to miss a class, you are responsible checking the coursewebsite to find any assignments or notes you may have missed.

5.2 Classroom Conduct

Be respectful of your classmates and instructor by minimizing distractions during class.Cell phones must be turned off during class.

5.3 Seeking Help

The course website should be your first reference for questions about the class. Announce-ments will be posted to the course website. The best way to get help is to set up an ap-pointment for a Skype or Google+ conference

I will be establishing virtual office hours using Skype, Google+ as DrChuckCartledge,and will use Google calendar to coordinate. I am available via email, but do not expect orrely on an immediate response.

4

Page 6: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

5.4 Disability Services

In compliance with PL94-142 and more recent federal legislation affirming the rights ofdisabled individuals, provisions will be made for students with special needs on an indi-vidual basis. The student must have been identified as special needs by the university andan appropriate letter must be provided to the course instructor. Provision will be madebased upon written guidelines from the University’s Office of Educational Accessibility.All students are expected to fulfill all course requirements.

6 Academic Integrity / Honor Code

By attending Old Dominion University you have accepted the responsibility to abide by thehonor code. If you are uncertain about how the honor code applies to any course activity,you should request clarification from the instructor. The honor pledge is as follows:

“I pledge to support the honor system of Old Dominion University. I willrefrain from any form of academic dishonesty or deception, such as cheating orplagiarism. I am aware that as a member of the academic community, it is myresponsibility to turn in all suspected violators of the honor system. I will reportto Honor Council hearings if I am summoned.”

In particular, submitting anything that is not your own work without proper attribution(giving credit to the original author) is plagiarism and is considered to be an honor codeviolation. It is not acceptable to copy source code or written work from any other source(including other students), unless explicitly allowed in the assignment statement. In caseswhere using resources such as the Internet is allowed, proper attribution must be given.

Any evidence of an honor code violation (cheating) will result in a 0 grade for theassignment/exam, and the incident will be submitted to the Department of Computer Sci-ence for further review. Note that honor code violations can result in a permanent notationbeing placed on the student’s transcript. Evidence of cheating may include a student be-ing unable to satisfactorily answer questions asked by the instructor about a submittedsolution. Cheating includes not only receiving unauthorized assistance, but also givingunauthorized assistance. For class files kept in Unix space, students are expected to useUnix file permission protections (chmod) to keep other students from accessing the files.Failure to adequately protect files may result in a student being held responsible for givingunauthorized assistance, even if not directly aware of it.

Students may still provide legitimate assistance to one another. Students should avoiddiscussions of solutions to ongoing assignments and should not, under any circumstances,show or share code solutions for an ongoing assignment. All students are responsible forknowing the rules. If you are unclear about whether a certain activity is allowed or not,please contact the instructor.

5

Page 7: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

7 Class Schedule

A 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) lan-guages (the other being Python). DS has a little bit of a mystique to it because itlies at the intersection of CS, mathematics, and domain expertise. The question be-comes how much do you have to know about each of the areas to understand and befunctional as a DS person.

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

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

• Looping, and *apply variants. R supports common things like FOR loops, butthey are relatively slow. Other looping constructs (the *apply functions) are much,much faster because they access memory directly, and are handled by low level Cprograms and functions. Where and how the different *apply functions are used cansignificantly reduce execution time. ([2, 1], chap. 9, 10, and 11)

• Parallelism. Most normal data processing is a linear execution of operations. Rsupports parallel execution via an optional package (nee, library) to further reduceexecution time. Necessary for this is to understand if your problem can be paral-lelized. Also, R supports program execution in other languages (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, sooperations on matrices are trivial from a programming perspective. Operations onobjects things that R calls a “data frame” (looks like an Excel woksheet), are not asstraightforward. Because of the way R manages data, an entire data structure may be

6

Page 8: CS-395 Data Science – Advanced R, Tips and TricksCS-395 ...ccartled/Teaching/2020-Spring/AdvancedR/syllabus.pdfR language specific tips and tricks will be used to demonstrate how

copied when only one element is changed. While not an issue when the structure issmall, when it is large (picture a worksheet with 100,000 entries), repeated copyingwhen changing selected cells can be very time expensive. ([2, 1], chap. 4 and 12)

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

• Data insights and object orientated progamming. R has a number of tools toexamine the internal structure of its data structures. Understanding the tools to getto the internals enables you to use the most effective R operator to effect the neededchange. ([2], chap. 3, 13, 14, 15, and 16)

• Best practices and approaches. Understanding what is happening behind thescenes with R, to improve program execution time, system and software mainte-nance.

A detailed class schedule is provided in Table 3.

Table 3: 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.

7