- Day/Time: Thu / 6:30-9:20 pm
- Location: HBH 1202
- Semester: Mini 3, Year: 2021
- Units: 6, Section(s): 1
- Name: Geoffrey Arnold
- Email: gla@andrew.cmu.edu
- Office hrs
- On Demand through Course Slack
This course will teach students to generate interactive websites including GIS maps and other data visualizations and reports using the R programming language. The course will focus on RStudio’s Shiny web application framework for creating interactive web applications, and the Leaflet library package for mobile-friendly interactive maps. This course builds directly from its prerequisite course, Programming R for Analytics course, and offers students a chance to build skills that will be marketable in both the public and the private sectors. Students will learn to load data from a variety of sources and formats for use in interactive web interfaces that can provide real-time information, including Rest APIs.
Business Intelligence is a growing and dynamic sector. Shiny apps allow students to build comprehensive and powerful Dashboards and other kinds of web applications that can be used at firms with a variety of infrastructure.
Students will walk away from this course with at least 3 functioning examples of their achievements that they can show and demonstrate to both current and future employers.
Students will walk away from this course with at least 3 functioning examples of their achievements that they can show and demonstrate to both current and future employers.
- Use R to generate interactive charts, maps, tables and graphs.
- Create, develop and deploy R Shiny web applications.
- Customize the appearance of Shiny applications using Shiny and CSS.
- Use Web API’s and DB Connectors to get data into Shiny applications.
- Use Human Centered Design principles.
- Use git and versioning to save, revert and troubleshoot code.
- Students will require a laptop capable of running R and R Studio for this course, and bring it to every class in order to follow along with lecture.
- Free user accounts for GitHub and shinyapps.io.
- We will not be using Canvas/Blackboard in this class, instead all Course Documents, Assignments and Lectures can be found here: https://github.com/RforOperations2021
- There is no required text for this course, but supplemental websites and materials will be provided in addition to course lectures.
- Students can use data from any source for their homework assignments and first project, but these websites are good places to get started:
Assessment Percentage of Final Grade:
- Homework 1: Create a basic ShinyApp 25%
- Homework 2: Create a Dashboard 35%
- Final Project: Create a ShinyApp with an Interactive Map 40%
All assignments will be turned in by providing a link to the student’s GitHub repository of their work. This will allow the instructor to view how the student’s code evolved over time, it is anticipated that the projects students complete will require numerous commits. There are no hard requirements for number of commits, but the overall quality of commits will be taken into account during grading. Once you are done you should email the url of your github repo to gla@andrew.cmu.edu.
Students are expected to work on their assignments outside of normal class time. Each assignment should take a one or more 1-3 hour long coding sessions.
Assignments and projects are expected to follow Google’s R Style Guide.
Students will be assigned the following final letter grades, based on calculations coming from the course assessment section.
Standard | Weight | 100-90 | 89-80 | 79-70 | 69-60 | 59-0 |
---|---|---|---|---|---|---|
Code Standards | 15 | All code meets the style guide standards | Most code meets the style guide standards | Some code meets style guide standards | Little code meets style guide standards | Code does not meet style guide standards |
Git Commits | 15 | All git commits and their comments are clear | Most git commits and their comments are clear | Some git commits and comments are clear | Few git commits and comments are clear | No or unclear git commits and comments |
App functionality | 40 | All assigned and additional server elements work without error | All assigned server elements work without error | Some of the assigned server elements work without error | Few of the assigned server elements work without error | None of the assigned server elements work without error |
User Interface | 30 | All UI elements are clearly labeled and function properly | All assigned UI elements are clearly labeled and function properly | All UI elements function properly | Few UI elements function properly nor clearly labeled. | No UI elements function properly nor clearly labeled. |
- A+ 97-100%
- A 93-96%
- A- 90-92%
- B+ 87-89%
- B 83-86%
- B- 80-82%
- C+ 77-79%
- C 73-76%
- C- 70-72%
- D 60-69%
- R (F) < 59%
- Late-work policy: Because of the iterative nature of this course students expecting to get the most out of the course should stay up to date with assignments. Therefore, students without a valid excuse will not be eligible for a grade higher than 80% on any late assignment.
- Make-up work policy: Emergencies and unforeseeable events can and do occur. If a student has an emergency of some kind they must notify the Professor within 24 hours of end of the emergency. Students are expected to provide some kind of basic documentation of the event.
- Attendance and/or participation policy: Attendance is an important factor in learning the course material and seeking guidance from the professor, however no attendance will be taken. For students who may be sick or otherwise unable to attend class, lectures slides will be available online in advance on the course Github page, and the repositories will be updated after class with a link to a Zoom recording of the class.
- Academic Integrity & Collaboration: While in many instances you may find yourself working on teams while programming and performing analysis Shiny apps are contained and it is required that you understand how all portions work. To this end, Students may work together on assignments, but each student is required to submit their own code/application. To ease the grading process Students should regularly commit their code milestones to Github, including things that did not work. Students who do not follow these guidelines will receive a C- or lower grade on the assignment in question.
- Late-work/Make-up work policy: If a student has an emergency of some kind they must notify the Professor within 24 hours of end of the emergency. Students are expected to provide some kind of basic documentation of the occurrence.
- Accommodations for students with disabilities: If you have a disability and require accommodations, please contact Catherine Getchell, Director of Disability Resources, 412-268-6121, getchell@cmu.edu. If you have an accommodations letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate.
- Statement on student wellness: As a student, you may experience a range of challenges that can interfere with learning, such as strained relationships, increased anxiety, substance use, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may diminish your academic performance and/or reduce your ability to participate in daily activities. CMU services are available, and treatment does work. You can learn more about confidential mental health services available on campus at: http://www.cmu.edu/counseling/. Support is always available (24/7) from Counseling and Psychological Services: 412-268-2922.
- Mobile Devices: Using electronic devices not only detract from your learning experience but also that of your peers. Students are asked to keep their cell phones on vibrate and to keep them out of sight during lecture. If you have to take a call or respond to a message please leave the classroom. Students are permitted to use their cellphone during any in-class work time.
- Students are required to follow all University COVID-19 Protocols outlined here.
- Class 1 - 2/4 - Zoom only - Course Overview & Introduction to GitHub & Shiny
- Class 2 - 2/11 - Zoom only - Reactive Programming & User Interfaces
- Class 3 - 2/18 - Reactive Programming Pt. 2 & Dashboards
- Homework 1 Due - 2/19
- Class 4 - 2/25 - Interactive Visualizations & Advanced Reactivity
- Class 5 - 3/4 - Leaflet & LeafletProxy
- Homework 2 Due - 3/5
- Class 6 - 3/11 - Connecting to Databases & API's
- Class 7 - 3/18 - Bookmarking & Final Project Work
- Final Project Due - 3/19