-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcoding.html
More file actions
292 lines (261 loc) · 13.5 KB
/
coding.html
File metadata and controls
292 lines (261 loc) · 13.5 KB
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
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
<!DOCTYPE html>
<html>
<head>
<title>Jeff Kravitz</title>
<link href='https://fonts.googleapis.com/css?family=K2D' rel='stylesheet'>
<link rel="stylesheet" href="fontawesome/css/fontawesome.css">
<link rel="stylesheet" href="fontawesome/css/brands.css">
<link rel="stylesheet" href="fontawesome/css/solid.css">
<link rel="shortcut icon" href="docs/site_favicon.png">
<style>
body {
background-color: #f2f2f2;
color: #333333;
max-width: 800px;
margin: auto;
font-family: 'K2D';
}
.topnav {
color: #f2f2f2;
text-align: center;
padding: 0px 16px;
font-size: 17px;
}
.topnav {
overflow: hidden;
background-color: #333333;
}
.topnav a {
float: left;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.topnav c {
float: left;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.topnav a:hover {
background-color: #ddd;
color: #333333;
transition: 0.4s;
}
.topnav a.active {
background-color: #70ABAF;
color: #f2f2f2;
}
* {box-sizing: border-box}
.tab {
float: left;
border: 1px solid #333333;
background-color: #333333;
width: 30%;
height: 550px;
}
.tab button {
display: block;
background-color: #333333;
color: #f2f2f2;
padding: 22px 16px;
width: 100%;
border: solid;
border-color: #333333;
text-align: left;
cursor: pointer;
transition: 0.4s;
font-size: 17px;
font-family: 'K2D';
margin: 0px;
}
.tab button:hover {
background-color: #ddd;
color: #333333;
}
.tab button.active {
background-color: #70ABAF;
color: #f2f2f2;
}
.tabcontent {
float: left;
padding: 0px 12px;
border: 3px solid #333333;
width: 70%;
border-left: none;
height: 550px;
overflow: scroll;
}
.tabcontent a{
text-decoration: none;
color: #70ABAF;
}
</style>
</head>
<body>
<div class="topnav">
<c>Kravitz</c>
<a href="index.html"><span class="fas fa-torii-gate"></span>  Home</a>
<a class="active" href="coding.html"><span class="fas fa-code"></span>  Coding</a>
<a href="research.html"><span class="fas fa-brain"></span>  Research</a>
<a href="publications.html"><span class="fas fa-feather-alt"></span>  Pubs</a>
</div>
<div style="padding-top:10px; padding-left:22px;">
<h1>Programming in Psychology</h1>
</div>
<hr color=#70ABAF>
<div class="article" style="padding-top:10px; padding-left:22px;">
<div>
Many people think of psychology as a soft science, pointing to the subjectivity of the
phenomena that the discipline aims to explain. And indeed, it is more difficult to
pin down an objective truth about subjective experience, especially when considering
the great diversity of people and their circumstances. In order to function as a science,
Psychology research is reliant on other hard sciences to provide methods that one can use
to test theories objectively. For example, statistical analyses must be used to determine
whether experiment results are reliable or just due to chance. Experiment methods, especially
in the disciplines of neuroscience and psychophysics, must be programmed as tasks completed
on computers to ensure that all subjects receive the exact same stimuli and conditions.
</br></br>
Due to the various technical proficiencies that psychology research requires, over the
the course of my career I have cultivated experience in a variety of programming languages.
I have mainly used Python for experiment programming, and R and MATLAB for statistical analyses.
Read below to find out more!
</br></br>
</div>
</div>
<div class="tab">
<button class="tablinks" onclick="openCity(event, 'Python')" id="defaultOpen">Python</button>
<button class="tablinks" onclick="openCity(event, 'R')" id="defaultOpen">R</button>
<button class="tablinks" onclick="openCity(event, 'MATLAB')">MATLAB</button>
<button class="tablinks" onclick="openCity(event, 'C++')">C++</button>
<button class="tablinks" onclick="openCity(event, 'HTML & JavaScript')">HTML & JavaScript</button>
</div>
<div id="Python" class="tabcontent">
<h3>Population Receptive Field Stimulation via Rapid Serial Visual Presentation Task</h3>
<p>
I developed & supported code for an experimental MRI method that collects data utilized in
population receptive field modeling. This code is currently used by the
<a href="https://www.clayspacelab.com/">Curtis Lab</a> in New York University's Department of
Psychology and Center for Neural Science, and the
<a href="https://pateldsclab.net/">Dynamic Social Cognition Lab</a> in Columbia University's Department
of Psychiatry and New York State Psychiatric Institute. My code delivers milisecond-precise stimuli,
outputs data and log files, ensures compatibility with eye tracking hardware, offers a range of quality of
life utility, and is well documented. This project also includes some bash shell scripting for additional utility.
Check it out <a href="https://github.com/jeffkravitz/RSVP_pRF">here</a> on my Github!
</p>
<h3>Processing Pipeline for Aphantasia Data</h3>
<p>
I developed a processing pipeline for data collected from experiments hosted on Pavlovia.org. My
code cleans the raw data, performs basic statistics, and tracks subject progress as they proceed
through our multi-stage experiment. This project collects a battery of subject performance on
a series of cognitive tasks designed to determine the magnitude of cognitive deficit associated
with the condition known as Aphantasia.
</p>
<h3>Experiment Script for Multi-Item Memory Guided Saccade Task</h3>
<p>
I developed an experiment script for a project that is designed to measure the impact of Transcranial
Magnetic Stimulation (TMS) on a subject's ability to remember the location of several stimuli. My code delivers
milisecond-precise stimuli, outputs data and log files, ensures compatibility with eye tracking hardware and
TMS trigger software, and ensures smooth processing and analysis of multiple memory guided saccade data.
</p>
<h3>ESPN Fantasy Football</h3>
<p>
One of my personal projects analyzes various aspects of fantasy football performance. My
code utlizes ESPN's fantasy sports API to retrieve JSON data, which I then
analyze with with Python's Pandas package. Unlike most other fantasy football tools, my
project analyzes performance of the fantasy manager rather than that of the fantasy player. The
goal of this project is to give insight into and improve a manager's decision making.
</p>
<h3>Anaconda</h3>
<p>
For each of the above projects, I used Anaconda to create and manage my python environments,
creating .yml configuration files to ensure that my environments are stable and reproducible.
</p>
</div>
<div id="R" class="tabcontent">
<h3>Masters Thesis Analysis</h3>
<p>
As part of my thesis project for my Masters at Brooklyn College, I collected survey data via Qualtrics
survey software and Amazon Mechanical Turk. The methods that I used in my analysis of this data includes
t-tests, ANOVAs, multiple regression, bootstrapped mediation, and multilevel modeling.
</p>
<h3>R for Reproducible Research</h3>
<p>
I learned R alongside statistical theory in my <i>Graduate Statistics 1</i> course, and I
completed a <i>Reproducibility in Research Using R</i> course in order to further strengthen
my programming skills. This course also covered R Markdown, a markup language based on R
that produces HTML. My work in this course includes:
<ul>
<li>more than 30 <a href="https://jeffkravitz.github.io/Learn_R/Journal.html">solutions</a> to general programming challenges of varying difficulty</li>
<li>a <a href="https://jeffkravitz.github.io/Learn_R/Dictionary.html">dictionary</a> detailing a list of functions in R</li>
<li><a href="https://jeffkravitz.github.io/Learn_R/DataVis.html">code</a> that reproduces graphs using the ggplot2 package</li>
<li><a href="https://jeffkravitz.github.io/Learn_R/DataWrang.html">code</a> that cleans and organizes data using the dplyr package</li>
<li><a href="https://jeffkravitz.github.io/Learn_R/Stats.html">examples</a> of Monte Carlo simulations of various statistical tests</li>
<li>a <a href="https://jeffkravitz.github.io/Learn_R/FinalPaper.html">tutorial</a> that reviews the concept of mediation analyses and illustrates how to conduct these analyses in R</li>
<li>a <a href="https://jeffkravitz.github.io/Learn_R/Presentation.html#1">presentation</a> of this tutorial using the xaringan package</li>
<li>a <a href="https://github.com/jeffkravitz/Shiny_Web_App">shiny web app</a> that provides graphical representations of APA bibliographies by analyzing bibtex files</li>
</ul>
I developed a website using R Markdown to
<a href="https://jeffkravitz.github.io/Learn_R/">host this work online</a> using GitHub pages.
The source code for these projects is also available on
<a href="https://github.com/jeffkravitz">my GitHub account</a>. Using this various experience,
I analyzed my thesis research in a reproducible script in R.
</p>
</div>
<div id="MATLAB" class="tabcontent">
<h3>Analysis of Visually Guided Saccade Eye-Tracking Data</h3>
<p>
In order to process and analyze visually guided saccade data from an old experiment in the lab, I added
functionality to our lab's iEye eye-tracking analysis MATLAB software, which was configured
to analyze only memory guided saccade data. Because this experiment contained both memory and
visually guided saccade data, I wrote code that classified the type of saccade based on features
of each individual saccade, and re-configured each of the analyses to function properly for data
containing both types of saccades. For my work on this project, I was acknowledged in
<a href="https://static1.squarespace.com/static/59d0fb1d3e00be69b7bda6fa/t/602172f210abb41c444f8445/1612804852710/Rahmati_DeSimone_Curtis_Sreenivasan_JNeurosci2020.pdf">this publication</a> from our lab.
</p>
</div>
<div id="C++" class="tabcontent">
<h3>Game Development with Unreal Engine</h3>
<p>
In my free time, I work with a small team to develop video games. I use C++ and Unreal Engine to
design and implement architecture that manages player input and state, executes callback functions
upon event triggers, and creates a template system that allows game designers to drag and drop
C++ functionality to create unique content. To allow for collaboration between artists, designers,
and developers, I setup and manage Perforce source control hosted on Amazon Web Services.
</p>
</div>
<div id="HTML & JavaScript" class="tabcontent">
<h3>Pavlovia</h3>
<p>
I wrote some JavaScript code snippets to facilitate online compatibility for our Pavlovia
experiments built with PsychoPy's Builder software.
</p>
<h3>Personal Website</h3>
<p>
I learned some HTML, CSS, and JavaScript to write the website that you're on!
</p>
</div>
</br></br></br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
<script>
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
document.getElementById("defaultOpen").click();
</script>
</body>
</html>