summaryrefslogtreecommitdiff
path: root/aied2018/presentation/motivation.tex
blob: 785bd6ed7657666638525fc42580997baf6b8f7e (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
	What is wrong with the following 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}