-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHHMI2016talk.tex
289 lines (240 loc) · 7.22 KB
/
HHMI2016talk.tex
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
\documentclass{beamer}
\usetheme{Goettingen}
\usecolortheme{default}
\usepackage{graphicx}
%\usepackage{times} %For typeface
%\usepackage{epsfig}
\usepackage{color} %For Comments
%\usepackage{beamerthemeshadow} %Paul and Lemmon put this in, take out if you want
%\usepackage{hyperref}
%\usepackage{url}
%% Elena's favorite green (thanks, Fernando!)
\definecolor{ForestGreen}{RGB}{34,139,34}
\definecolor{BlueViolet}{RGB}{138,43,226}
\definecolor{Coquelicot}{RGB}{255, 56, 0}
\definecolor{Teal}{RGB}{2,132,130}
% Uncomment this if you want to show work-in-progress comments
\newcommand{\comment}[1]{{\bf \tt {#1}}}
% Uncomment this if you don't want to show comments
%\newcommand{\comment}[1]{}
\newcommand{\emcomment}[1]{\textcolor{ForestGreen}{\comment{Elena: {#1}}}}
\newcommand{\todo}[1]{\textcolor{blue}{\comment{To Do: {#1}}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{Developing Beginner-Friendly User Interactions for the Clojure Programming Language}
\author{Shamund Gordon, Tony Song, Richard Stangl}
\institute[UMM] % (optional, but mostly needed)
{
% \inst{1}%
University of Minnesota, Morris
}
\date[]
{HHMI lunch meeting, June 29 2016}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{Outline}
\tableofcontents
\end{frame}
\section{Overview of the project}
\begin{frame}[fragile]
\frametitle{What is Clojure?}
\begin{itemize}
\item Functional programming language
\item Developed by Rich Hickey in 2007
\item Example:
\begin{verbatim}
(+ 7 4)
\end{verbatim}
\begin{verbatim}
(* 3 9)
\end{verbatim}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Introduction to the project}
\begin{itemize}
\item Integrate Clojure into an introductory CS class
\item Currently use Racket
\begin{itemize}
\item Functional programming language
\item Functions and variables are immutable
\item Mostly used for educational purposes
\item Similar syntax to Clojure
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Why Clojure not Racket?}
\begin{itemize}
\item Quickly gaining popularity in industry
\item Run on Java
\begin{itemize}
\item Not functional programming language
\item One of the most widely used languages in industry
\end{itemize}
\item Excellent libraries (data processing, image recognition, graphical, musical features)
\item Large community and excellent resources
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Issues with Clojure}
\begin{itemize}
\item Confusing error messages
\begin{itemize}
\item An error message is information displayed when an unexpected condition occurs
\end{itemize}
\item Lack of beginner friendly editors
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Previous work}
\begin{itemize}
\item Improved error messages
\item Developed graphics library
\item Testing
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Error message example}
A piece of Clojure code with an error
\begin{verbatim}
(- (+ 3 4) 5
\end{verbatim}
\end{frame}
%Mentions we're doing usability study to find out how effective our error messages are
\begin{frame}
\frametitle{Standard error messages}
\includegraphics[height=75mm]{standard.png}
\end{frame}
\begin{frame}
\frametitle{Improved error messages}
\includegraphics[height=30mm]{improved.png}
\end{frame}
\section{Usability study}
\begin{frame}
\frametitle{Usability study}
Contents:
\begin{enumerate}
\item Overview of the usability study
%\item Standard error message vs Modified error message
\item Study procedure
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Overview of the Usability Study}
The purpose of the study is to compare our modified error messages to standard error messages by looking at:
\begin{itemize}
\item Success rate
\item Time
\item If not solved, how close or on track were them to solving the question
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Design of Usability Study}
\begin{itemize}
\item 16 questions divided into 4 sub levels of difficulty, 4 questions in each level
\item Each participant receives 2 questions from each level of Racket
\item Participants are randomly given either Clojure with standard error messages or error messages. 2 from each level
\item Racket is our way to assess the level of the participant
\end{itemize}
\end{frame}
%\begin{frame}
% \frametitle{Racket Error Messaging}
% \includegraphics[scale=.17]{R2Rshot}
%\end{frame}
%\begin{frame}
%Error: java.lang.RuntimeException: Unable to reslove symbol: X in this context
% \frametitle{Clojure Standard Error Messaging}
% \includegraphics[scale=.17]{CS20Sshot}
%\end{frame}
%\begin{frame}
% \frametitle{Clojure Modified Error Messaging}
% \includegraphics[scale=.17]{CM16shot}
%\end{frame}
\begin{frame}
\frametitle{Procedure}
\begin{itemize}
\item Participants must have taken CS 1301 with no other programming experience
\item Participant can review overview of Racket \& Clojure for as long as desired before study begins. Access is also available during the study.
\item Record for 21 minutes Racket, optional Break Time, 21 minute Clojure
\item Interview questions
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Study Home Screen}
\includegraphics[scale=.17]{StudyHomeScreen}
\end{frame}
\begin{frame}
\frametitle{Data Storage}
\includegraphics[scale=.17]{DataShot2}
\end{frame}
\begin{frame}
\frametitle{Interview Questions}
\begin{itemize}
\item What parts of the study were easy or clear to understand?
\item What parts of the study were difficult or confusing?
\item What would you suggest improving in the error messaging system in Racket or Clojure?
\end{itemize}
\end{frame}
\section{Work in progress}
\begin{frame}
\frametitle{Work in progress}
Contents:
\begin{enumerate}
\item Continued usability study
\item Project re-structuring
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Continued usability study }
More data points are needed for data analysis
\begin{figure}
%%% note: the file is in the same folder as your .tex file
\includegraphics[height=55mm]{one-data.png}
\end{figure}
\end{frame}
\begin{frame}[fragile]
\frametitle{Project re-structuring}
\begin{figure}
%%% note: the file is in the same folder as your .tex file
\includegraphics[height=15mm]{Step.png}
\end{figure}
\begin{itemize}
\item Example: (+ 4 false)
\end{itemize}
\textbf{Standard:}
\begin{verbatim}
java.lang.ClassCastException:
java.lang.Boolean cannot be cast to java.lang.Number
\end{verbatim}
\textbf{Modified:}
\begin{verbatim}
In function +, the second argument false
must be a number but is a boolean.
Found in file test.clj on, or before, line 11
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{Project re-structuring}
%Detailed explanation about atom processing
Failing information is stored in a variable for processing
\begin{figure}
%%% note: the file is in the same folder as your .tex file
\includegraphics[height=40mm]{atom-ex.png}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Project re-structuring}
Using a new feature of Clojure, the global variable is no longer used
\begin{figure}
%%% note: the file is in the same folder as your .tex file
\includegraphics[height=20mm]{no-atom-ex.png}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Discussion}
Questions?
\end{frame}
\end{document}