summaryrefslogtreecommitdiff
path: root/aied2018/presentation/motivation.tex
blob: 69db43508b78c39ddecb888d47aed165a793fe74 (plain)
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
	What is wrong with the following Python program that prints all divisors?
			\begin{columns}
			\begin{column}{0.50\textwidth}
\begin{Verbatim}
\textbf{def} divisors(n):
  \textbf{for} d \textbf{in} range(1, \red{n}):
    \textbf{if} n % d == 0:
      \textbf{print}(d)
\end{Verbatim}
		
			\end{column}
			\begin{column}	{0.50\textwidth}
				Answer: \texttt{range(1,n)} generates values up to \texttt{n-1}, so \texttt{n} is not printed. Instead, \texttt{range(1,n+1)} is better. 
			\end{column}
			\end{columns}
			
				\vspace{2cm}
				Teachers can often spot such erroneous patterns without test cases. Can we represent their knowledge and use it to:
				\begin{itemize}
					\item generate automatic feedback in tutoring systems or
					\item find programs with similar approach / error?
				\end{itemize}				
				Two research questions arise: 
				\begin{itemize}
					\item RQ1: How can we encode patterns in programs? 
					\item RQ2: How can we automatically extract relevant patterns from student solutions?
				\end{itemize}