Lecture Location and Schedule
|Location||109W Turner Hall||Google Maps, Floor Map|
|Times||M, W, F||1:00 PM - 1:50 PM|
|Instructor||James Balamuta||M W||2:30 PM - 3:30 PM||IH 104|
|Course Assistants||John Lee||W F||4:00 PM - 5:00 PM||IH 104|
|Hassan Rahim Kamil||T R||2:30 PM - 3:30 PM||IH 104|
|Xinyuan Yang||T R||1:00 PM - 2:00 PM||IH 104|
The textbooks listed below are available online for free. You are free to purchase physical copies of the books listed below. However, note that I will reference sections in the online textbook.
|Advanced R Programming [2nd Edition]||http://adv-r.hadley.nz||Hadley Wickham|
|R for Data Science||http://r4ds.had.co.nz/||Garrett Grolemund and Hadley Wickham|
|The R Inferno||http://www.burns-stat.com/pages/Tutor/R_inferno.pdf||Patrick Burns|
|An Introduction to R||https://cran.r-project.org/doc/manuals/R-intro.pdf||William N. Venables, David M. Smith and the R Core Team|
|The Art of R Programming||http://vufind.carli.illinois.edu/vf-uiu/Record/uiu_6955421||Norman Matloff|
|R Packages||http://r-pkgs.had.co.nz/||Hadley Wickham|
|ggplot2: Elegant Graphics for Data Analysis [2nd Edition]||https://github.com/hadley/ggplot2-book||Hadley Wickham|
The world is rapidly evolving to rely on data driven decisions. These decisions come from the work a statistician or data scientist presents in his or her reports. In order to present an analysis, the analyst needs to be able to leverage computing resources through programming to unearth patterns and models that exist within data sets. As a result, statisticians and data scientists must be savvy to programming methods that are useful to the wide variety of analysis that they will be expected to perform.
For the focus of the course, fundamental programming techniques and considerations related to working with data will be introduced. Students will learn one of the leading statistical programing languages in depth and will be well positioned to easily learn others based on general principles. With this in mind, the course provides a framework for performing reproducible analyses, writing statistical algorithms, and analyzing code.
After this course, students should be able to ...
- analyze and discuss the meaning behind lines of code;
- manipulate and visualize different forms of data;
- create a reproducible analytics data pipeline;
- implement statistical algorithms within a statistical computing environment;
- explain fundamental computing theory as it applies within the domain of Statistics.
Prior to taking this course, one should have acquired the following knowledge:
- STAT 200: Statistical Analysis or STAT 212: Biostatistics
- Ability to collaborate in a group project
- Listen, provide constructive dialog, contribute work
Note: If you have taken a higher-level course, e.g. STAT 400 or STAT 425, this satisfies the STAT 200 requirement.
This course offers many office hours from different members of the course staff that are held at throughout the week at different times. Information for each office hour such as who is present, where is it located, and when it will occur can be found in the course staff portion of the syllabus.
For class discussion, we will use a GitHub repository's issue system to discuss content. The forum will be private and restricted to those in the course.
Discussion forums are helpful places to receive assistance if common discourse rules are followed. As this forum serves as an extension of the course, students are expected to conduct themselves in an appropriate manner.
While writing on the discussion forum, please:
- Be kind to others.
- Avoid using explicit, aggressive, or sarcastic language
- Avoid using explicit, aggressive, or sarcastic language
- Provide a concise issue title that provides a clear indication of the contents
of the post.
- Phrase titles as "ggplot2 x-axis labeling incorrect" or "receiving an NA value as the final computation"
- Avoid "ggplot2 error" or "what's going wrong here?"
- Format the body of the post so that the issue is shown at a glance.
reprexto create a reproducible example of the behavior you are running into.
- Questions regarding code issues on homework must have contain modified code
that is as general as possible.
- Avoid putting code verbatim on the forum that can be used by other students to solve an exercise. This will put you at risk for an academic integrity violation.
- Consider visiting Office Hours for help!
At any time, content can be removed from the forum without warning by anyone on the course staff if it is found to be in violation of these rules.
Before you start writing an e-mail to a member of the course staff please make sure your question is not:
- Already answered in the syllabus or course FAQ.
- The syllabus serves as the guiding document for the course and we're unlikely to shift from it.
- About exercises on homework.
- Please ask the question at the start of class, office hours, or on the discussion forum so that all students have access to the answer.
- A technical issue or code error
With these cases addressed, please ensure your e-mails meet the following criteria:
- The e-mail must be sent from an
- The start of the subject line must contain the tag: [STAT 385]
- Note the space between STAT and 385.
- The tag must be followed by a space and a helpful description of the contents
of the email. e.g.
- Good: "[STAT 385] I cannot compile
Rcppcode on macOS"
- Bad: "[STAT 385] Help MEEEEE" or "[STAT 385] Code doesn't work..."
- Good: "[STAT 385] I cannot compile
If your email is sent between 9:00 AM Monday and 11:59 PM Thursday, and you follow the above directions, we will try our best to respond within 24 hours. Homework questions sent the same day a homework is due will likely not receive a response before the homework is due. Plan accordingly.
Course Staff E-Mail: firstname.lastname@example.org
Please see the FAQ item on for hire tutors.
You are strongly encouraged to attend all lectures and discussions. Failure to do so may not have a direct effect on your course grade, but will likely have a significant indirect effect. Any known or potential extracurricular conflicts should be discussed in person with the instructor during the first week of classes, or as soon as they arise.
Homework assignments serve as a way to interact with the material outside of the classroom. Homework will be due at 6:00 PM on the assigned due date, which is typically a Friday. You are allowed to drop one homework assignment over the course of the semester. There will be between 9 to 10 assignments with the lowest homework score being dropped.
As a result, late homework will not be accepted. There will be no exceptions to this policy. Please start early and make sure your environment is working correctly and you are able to produce a working document. We have many CAs willing to help you out this semester. Please take advantage of our office hours.
While working on homework, students are encouraged to work together in a group of at most 3 students. Students who opt to work together must list the full names and netids of the students that they have collaborated with at the top of the document. Each student must also turn in their own homework answers. This means that students should not share or copy homework answers, which may involve written explanations and code. In general, students should strive to independently write answers to the homework problems. Failure to do so will likely result in an academic integrity investigation being opened.
In addition, there is a lot of R code on the internet. Many students will be tempted to copy and paste code online or request help from programming communities. This behavior is okay as long as you cite where the code originated from and are not having someone answer the question in verbatim. Any code that is not cited but is able to be matched with available works online will be treated as plagiarism and fall under the class' academic integrity policy.
Each homework will be distributed over a GitHub Classroom assignment link. Please accept the assignment to create your repository.
Within your assignment, you should have:
hw01-assign.Rmd, the file used to create the homework document.
- You may wish to use this as a template for your assignment.
hw01-assign.html, the homework rendered as an html file.
hw01-assign.pdf, the homework rendered as a pdf file.
- Additional files such as external data or infrastructure files that should not be modified unless specifically told.
01 should be replaced by the current two-digit homework number.
Homework must be submitted online through the GitHub Repository generated for each student.
The online submission must contain:
NetID component represents your
NetID, e.g. the
NetID is infront of
01 represent the two-digit homework assignment number.
.Rmd file, please make sure to update the
author value away
"Full Name (NetID)" to your name and NetID.
As an example, on the fifth homework assignment, your instructor, whose netid is
balamut2, would submit:
- Any files needed to create the output document, e.g.
hw05-balamut2.Rmd file would have
--- title: 'hw05: Radio Statistics' subtitle: 'STAT 385 - Semester YYYY' author: 'James Balamuta (balamut2)' date: 'Due: Friday, Month Day, YYYY at HH:MM PM' output: html_document ---
Depending on the assignment, you may need to place in the GitHub repository additional assets. For example, screenshots, scripts, or a package.
In general, the file structure for
hw01 would look like:
|- / |- hw01-NetID.Rmd |- hw01-NetID.html |- image-exercise1.png |- image-exercise2.png |- image-exercise3.png |- README.md |- test/ |- render_rmds.R |- .travis.yml |- project.Rproj
All digital submissions must be made using either the RStudio
git client or by using
git terminal. Avoid adding, creating, renaming, or removing a file via the GitHub web
interface. Any student found to be using the GitHub web interface to submit
their homework will lose all points associated with committing.
This is presently the only class that emphasizes
git skills within the
Statistics department curriculum. Please do not try to circumvent learning this
Each homework assignment will be a variable number of points; however, each homework assignment will have equal weight towards your final grade. Grades will be based on both accuracy and presentation of information. In general, you should make your document as easy to read for the CAs as possible.
Documents that are difficult to read will receive overall point reductions depending on the level of difficulty.
- Please read every exercise carefully. If the wording of an exercise is problematic, immediately let the course staff know.
- Include your name and NetID in the final document, not only in your filenames.
.Rmdfile must be written such that, when stored in a folder with any data you are asked to import, it will knit properly without modification. If your git repository is organized properly, this should not be an issue. That is, you should use relative references to external files.
- Your resulting
- Be aware of directions for code randomization for each exercise.
There are five assignments associated with the group final project. They are:
- Project Proposal
- Project Video Demo
- Project Report
- Evaluation of Peers
- Evaluations from Peers
Details on each stage will be released mid-semester.
Instead of examinations, there will be fourteen weekly quizzes that begin during Week 1 and go to Week 15. We will drop lowest 2 scores. Thus, each quiz is worth ~3%, which accounts for 35% of the overall course grade.
As a result, students are:
- free to choose their examination date and time within a specified examination period.
- answering questions using a computer
Students will need to go to the CBTF to take the quiz. The examinations are tenatively scheduled to open in the morning and close in the evening on:
|Tuesday||10 AM - 9 PM|
|Wednesday||10 AM - 9 PM|
|Thursday||10 AM - 9 PM|
The policies of the CBTF are the policies of this course, and academic integrity infractions related to the CBTF are infractions in this course.
If you have accommodations identified by the Division of Rehabilitation-Education Services (DRES) for exams, please take your Letter of Accomodation (LOA) to the CBTF proctors in person before you make your first quiz reservation. The proctors will advise you as to whether the CBTF provides your accommodations or whether you will need to make other arrangements with your instructor.
Any problem with testing in the CBTF must be reported to CBTF staff at the time the problem occurs. If you do not inform a proctor of a problem during the test then you forfeit all rights to redress.
There are no midterm or final examinations in this course. Instead, we have quizzes and a group project.
Late or Missing Work
Late work will not be accepted for homework or the group project.
As the date and time of an exam is chosen by a student over an examination window, there will be no make-up exams administered once the window closes.
Regrade requests must be made in writing within 3 days of when the assessment is returned. Please write an e-mail to the instructor that describes the grade issue and provides justification as to why a regrade should occur. Make sure to include what the grade is and what it should be. Please note, by disputing any grading, you agree to allow the course staff to review the entire assessment for other errors missed during grading.
Common requests for regrades:
- Points totalled incorrectly
- Answer should be considered correct
This grading scale may only be lowered and not raised at the end of the semester.
The official University of Illinois policy related to academic integrity can be found in Article 1, Part 4 of the Student Code. Section 1-402 in particular outlines behavior which is considered an infraction of academic integrity. These sections of the Student Code will be upheld in the STAT 385 classroom. Any violations will be dealt with in a swift, fair and strict manner.
You may discuss methods for completing assignments with other students, but the execution of these methods and the preparation of the document must be done independently. Furthermore, there can be no discussion with other students or collaboration of any kind on exams. Sufficient evidence of sharing results, collaborating on written assignments, or simply relying on internet resources will generally result in:
- First offense: receiving an undroppable zero on the assignment and being written up for an academic integrity violation.
- Second offense: receiving an F in the course, an academic integrity violation, and recommendation for expulsion from the University.
If the evidence is indicative of a larger pattern, then the harshest penalty will be pursued.
Note that cheating includes both obtaining others' work, as well as distributing your own work.
- You may discuss the assignment with your classmates, but your final answers must be your own. Your final document should be created independently.
- To avoid any issues, do note copy and paste code. (With an exception for code provided for the course.)
- Do not share RMarkdown files.
If we detect academic integrity violations, we will contact you through the FAIR system.
In short, please do not cheat.
Support resources and supporting fellow students in distress
As members of the Illinois community, we each have a responsibility to express care and concern for one another. If you come across a classmate whose behavior concerns you, whether in regards to their well-being or yours, we encourage you to refer this behavior to the Student Assistance Center (333-0050) or online at https://odos.illinois.edu/community-of-care/referral/. Based upon your report, staff in the Student Assistance Center reaches out to students to make sure they have the support they need to be healthy and safe.
Further, we understand the impact that struggles with mental health can have on your experience at Illinois; significant stress, strained relationships, anxiety, excessive worry, alcohol/drug problems, a loss of motivation, or problems with eating and/or sleeping can all interfere with optimal academic performance. We encourage all students to reach out to talk with someone, and want to make sure you are aware that you can access mental health support at the Counseling Center (https://counselingcenter.illinois.edu) or McKinley Health Center (https://mckinley.illinois.edu). For mental health emergencies, you can call 911 or walk-in to the Counseling Center, no appointment needed.
To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES, you may visit 1207 S. Oak St., Champaign, call 333-4603, e-mail email@example.com or go to the DRES website.
The instructor reserves the right to make any changes that are academically advisable. Such changes, if any, will be announced in class. Please note that it is your responsibility to attend the class and keep track of the proceedings.