forked from stephaniehicks/jhustatcomputing2022
-
Notifications
You must be signed in to change notification settings - Fork 9
/
syllabus.qmd
233 lines (135 loc) · 14.6 KB
/
syllabus.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
---
title: "Syllabus"
---
## Course Information
- Location: In person
- Course time: Tuesdays and Thursdays from 9:00-10:20 a.m. (**Eastern Daylight Time** zone)
- Course location: 140.776.01 is in person in ~~W5030~~ Sommer Hall (Wolfe E2014). **Note** that our class got reassigned to Sommer Hall for 2024/08/29 and beyond to accommodate the larger than expected enrollment.
- Assignments: Three projects
### How to register and participate
- **To add the course to your 1st term registration**: You can sign up only for the in-person (140.776.01) course.
- All lectures will be recorded and posted on CoursePlus. Classes will be recorded for flexibility purposes but this will not be a hybrid class.
- Please course instructor if interested in auditing.
### Instructor
- Leonardo Collado Torres (<http://lcolladotor.github.io/>)
- Office Location: 855 N. Wolfe, Office 382, Baltimore, MD 21205. Enter the Rangos building, register at the Security front desk, ask the security guard to help you take the elevator to the third floor (it's badge-controlled), register at the LIBD front desk, then they can point you to my office.
- Email: [lcollado\@jhu.edu](mailto:[email protected])
### Teaching Assistants
- Jiaxin (Jessi) Huang ([jhuan206\@jh.edu](mailto:[email protected]))
- Phyllis Wei ([ywei43\@jhu.edu](mailto:[email protected]))
- Yu Lu ([ylu136\@jh.edu](mailto:[email protected]))
### Office hours
Instructor and TA office hours are [announced on CoursePlus](https://courseplus.jhu.edu/core/index.cfm/go/pb:page.view/coid/21836/pageID/175726). If there are conflicts and/or need to cancel office hours, announcements will be made on CoursePlus.
### Getting help
In order of preference, here is a preferred list of ways to get help:
1. We **strongly encourage** you to use CoursePlus to ask questions first, before joining office hours. The reason for this is so that other students in the class (who likely have similar questions) can also benefit from the questions and answers asked by your colleagues.
2. You are welcome to join office hours to get more group interactive feedback.
3. If you are not able to make the office hours, appointments can be made by email with the TAs.
## Important Links
- Course website: <https://lcolladotor.github.io/jhustatcomputing/>
- GitHub repository with all course material: <https://github.com/lcolladotor/jhustatcomputing>
- Bug reports: <https://github.com/lcolladotor/jhustatcomputing/issues>
## Learning Objectives:
Upon successfully completing this course, students will be able to:
1. Install and configure software necessary for a statistical programming environment
2. Discuss generic programming language concepts as they are implemented in a high-level statistical language
3. Write and debug code in base R and the tidyverse (and integrate code from Python modules)
4. Build basic data visualizations using R and the tidyverse
5. Discuss best practices for coding and reproducible research, basics of data ethics, basics of working with special data types, and basics of storing data
## Lectures
We will have in person lectures that will be recorded enabling students who missed a class for personal reasons to catch up as well as to review material discussed in class.
## Textbook and Other Course Material
There is no required textbook. We will make use of several freely available textbooks and other materials. All course materials will be provided. We will use the R software for data analysis, which is freely available for download.
## Software
We will make heavy use of R in this course, so you should have R installed. You can obtain R from the [Comprehensive R Archive Network](https://cran.r-project.org). There are versions available for Mac, Windows, and Unix/Linux. This software is **required** for this course.
It is important that you have the latest version of R installed. For this course we will be using **R version `r paste(version$major, version$minor, sep = ".")`**. You can determine what version of R you have by starting up R and typing into the console `R.version.string` and hitting the `return`/`enter` key. If you do not have the proper version of R installed, go to [CRAN](https://cran.r-project.org) and download and install the latest version.
We will also make use of the `RStudio` interactive development environment (IDE). `RStudio` requires that R be installed, and so is an "add-on" to R. You can obtain the RStudio Desktop for free from the [RStudio web site](https://www.rstudio.com/). In particular, we will make heavy use of it when developing R packages. It is also essential that you have the latest release of RStudio. You can determine the version of RStudio by looking at menu item `Help > About RStudio`. You should be using **RStudio version RStudio 2024.04.2 or higher**.
## Projects
There will be 4 assignments, due every 2--3 weeks. Projects will be submitted electronically via the Drop Box on the CoursePlus web site (unless otherwise specified).
The project assignments will be due on
- Project 0: end of week 2 (Sunday September 8, 11:59pm) (entirely optional and not graded but hopefully useful and fun)
- Project 1: end of week 3 (Sunday September 15, 11:59pm)
- Project 2: end of week 5 (Sunday September 29, 11:59pm)
- Project 3: end of week 8 (Sunday October 20, 11:59pm)
### Project collaboration
Please feel free to study together and talk to one another about project assignments. The mutual instruction that students give each other is among the most valuable that can be achieved.
However, it is expected that **project assignments will be implemented and written up independently unless otherwise specified**. Specifically, please do not share analytic code or output. Please do not collaborate on write-up and interpretation. Please do not access or use solutions from any source before your project assignment is submitted for grading (**including with students from previous years**).
## Discussion Forum
The course will make use of the CoursePlus Discussion Forum in order to ask and answer questions regarding any of the course materials. The Instructor and the Teaching Assistants will monitor the discussion boards and answer questions when appropriate.
## Exams
There are **no exams** in this course.
## Grading
Grades in the course will be based on Projects 0--3 with a percentage of the final grade being apportioned to each assignment. Each of Projects 1--3 counts approximately equally in the final grade. Grades for the projects and the final grade will be issued via the CoursePlus grade book.
### Points deducted
On a given project, we will deduct:
- 1 points: typo on a function call. Think about it as an orthographic mistake.
- 2 points: missed a function call. Think about it as a grammatical mistake.
- 3 points: provided the wrong answer. For example, if a question asked about the median for a variable and you used `mean()` instead of `median()`.
- 5 points: did not provide an answer for a sub-section of a part of a project. Like question 2 of part 1 from project 1.
- 10 points: did not provide an answer for a part of a project.
## Policy for submitting projects late
**The instructor and TAs will not accept email late day policy requests**.
### Projects 1, 2 and 3
- Each student will be given two free "late days" for the entire course.
- A late day extends the individual project deadline by 24 hours without penalty.
- The late days can be applied to just one project (e.g. two late days for Project 2), or they can be split across the two projects (one late day for Project 2 and one late day for Project 3). This is entirely left up to the discretion of the student.
- Late days are intended to give you flexibility: you can use them for any reason no questions asked.
- You do not get any bonus points for not using your late days.
Although the each student is only given a total of two late days, we will be accepting homework from students that pass this limit.
- We will be deducting 5% for each extra late day. For example, if you have already used all of your late days for the term, we will deduct 5% for the assignment that is \<24 hours late, 10% points for the assignment that is 24-48 hours late, and 15% points for the assignment that is 48-72 hours late.
- **We will not grade assignments that are more than 3 days past the original due date**.
### Submit a late project
To submit a late project, send it via email to the instructor and all TAs. That way everyone involved will receive the same communication and we can avoid any confusion and/or misunderstandings. We will then manually submit it for you on the corresponding CoursePlus DropBox. Thank you.
### Regrading Policy
It is very important to us that all assignments are properly graded. If you believe there is an error in your assignment grading, please send an email to one of the instructors within 7 days of receiving the grade. No re-grade requests will be accepted orally, and no regrade requests will be accepted more than 7 days after you receive the grade for the assignment.
## Academic Ethics and Student Conduct Code
Students enrolled in the Bloomberg School of Public Health of The Johns Hopkins University assume an obligation to conduct themselves in a manner appropriate to the University's mission as an institution of higher education. A student is obligated to refrain from acts which he or she knows, or under the circumstances has reason to know, impair the academic integrity of the University. Violations of academic integrity include, but are not limited to: cheating; plagiarism; knowingly furnishing false information to any agent of the University for inclusion in the academic record; violation of the rights and welfare of animal or human subjects in research; and misconduct as a member of either School or University committees or recognized groups or organizations.
Students should be familiar with the policies and procedures specified under Policy and Procedure Manual Student-01 (Academic Ethics), available on the school's [portal](http://my.jhsph.edu).
The faculty, staff and students of the Bloomberg School of Public Health and the Johns Hopkins University have the shared responsibility to conduct themselves in a manner that upholds the law and respects the rights of others. Students enrolled in the School are subject to the Student Conduct Code (detailed in Policy and Procedure Manual Student-06) and assume an obligation to conduct themselves in a manner which upholds the law and respects the rights of others. They are responsible for maintaining the academic integrity of the institution and for preserving an environment conducive to the safe pursuit of the School's educational, research, and professional practice missions.
## Disability Support Service
Students requiring accommodations for disabilities should register with [Student Disability Service (SDS)](https://publichealth.jhu.edu/about/inclusion-diversity-anti-racism-and-equity-idare/student-disability-services). It is the responsibility of the student to register for accommodations with SDS. Accommodations take effect upon approval and apply to the remainder of the time for which a student is registered and enrolled at the Bloomberg School of Public Health. Once you are f a student in your class has approved accommodations you will receive formal notification and the student will be encouraged to reach out. If you have questions about requesting accommodations, please contact `[email protected]`.
## Prerequisites
This is a quantitative course. We will not discuss the mathematical details of specific data analysis approaches, however some statistical background and being comfortable with quantitative thinking are useful. Previous experience with writing computer programs in general and R in particular is also helpful, but not necessary. If you have no programming experience, expect to spend extra time getting yourself familiar with R. As long as you are willing to invest the time to learn the programming and you do not mind thinking quantitatively, you should be able to take the course, independent of your background.
*Formal requirement for the course is [Biostatistics 140.621](https://www.jhsph.edu/courses/list/?keyword=140.621). Knowledge of material from 140.621 is assumed. If you didn't take this course, please contact me to get permission to enroll.*
### Getting set up
You must install [`R`](https://cran.r-project.org) and [`RStudio`](https://rstudio.com) on your computer in order to complete this course. These are two **different** applications that must be installed separately before they can be used together:
- R is the core underlying programming language and computing engine that we will be learning in this course
- RStudio is an interface into R that makes many aspects of using and programming R simpler
Both R and RStudio are available for Windows, macOS, and most flavors of Unix and Linux. Please download the version that is suitable for your computing setup.
Throughout the course, we will make use of numerous R add-on packages that must be installed over the Internet. Packages can be installed using the `install.packages()` function in R. For example, to install the `tidyverse` package, you can run
```{r}
#| eval: false
install.packages("tidyverse")
```
in the R console.
#### How to Download `R` for Windows
Go to [https://cran.r-project.org]() and
1. Click the link to "Download R for Windows"
2. Click on "base"
3. Click on "Download R 4.4.1 for Windows"
::: callout-warning
The version in the video is not the latest version. Please download the latest version.
:::
![Video Demo for Downloading R for Windows](videos/downloadRWindows.gif){width="80%"}
#### How to Download `R` for the Mac
Goto [https://cran.r-project.org]() and
1. Click the link to "Download R for (Mac) OS X".
2. Click on "R-4.4.1.pkg"
::: callout-warning
The version in the video is not the latest version. Please download the latest version.
:::
![Video Demo for Downloading R for the Mac](videos/downloadRMac.gif){width="80%"}
#### How to Download `RStudio`
Goto [https://rstudio.com]() and
1. Click on "Products" in the top menu
2. Then click on "RStudio" in the drop down menu
3. Click on "RStudio Desktop"
4. Click the button that says "DOWNLOAD RSTUDIO DESKTOP"
5. Click the button under "RStudio Desktop" Free
6. Under the section "All Installers" choose the file that is appropriate for your operating system.
::: callout-warning
The video shows how to download RStudio for the Mac but you should download RStudio for whatever computing setup you have
:::
![Video Demo for Downloading RStudio](videos/downloadRStudio.gif){width="80%"}
## General Disclaimers
- This syllabus is a general plan, deviations announced to the class by the instructor may be necessary.