Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
55f33f0
Testing branch
celinasoori Jun 22, 2023
8f7a6ba
Added method-chapter
celinahenriksson Jun 22, 2023
21b3242
changed the format on the article and polished the text
celinahenriksson Jun 25, 2023
23cd41a
refined text in misconception-chapter
celinahenriksson Jun 26, 2023
282510d
Added quotes for definition of misconceptions
celinahenriksson Jun 27, 2023
fdf0428
Added source
celinahenriksson Jun 27, 2023
ce03cef
New source added, with fun stuff to include in literature review
celinahenriksson Jun 27, 2023
64598ca
definition of misconception added to itroduction
celinahenriksson Jun 27, 2023
921af8e
Added hard-wrapping to all tex-files
celinahenriksson Jun 29, 2023
6afd8bc
Added definition of misconception and created new file for theoretica…
celinahenriksson Jun 29, 2023
b51de12
Added new source with new misconceptions
celinahenriksson Jun 29, 2023
99bb011
Changed from quotation to \verb''
celinahenriksson Jun 29, 2023
ed20175
Adds new files to Makefile
dbosk Jul 4, 2023
d1f58ec
Changes all verbatim code to use minted instead
dbosk Jul 4, 2023
090633a
Fixes bad wraps
dbosk Jul 4, 2023
2937a34
Prettifies the table to not look like a spreadsheet
dbosk Jul 4, 2023
4ae6e6a
Uses \cref instead of \ref or \nameref
dbosk Jul 4, 2023
8bd58c1
Improves citing quotes
dbosk Jul 4, 2023
20c1a92
Merge pull request #226 from dbosk/fixes-summer2023
celinasoori Jul 5, 2023
9418132
removed KTH to anonymise
celinahenriksson Jul 5, 2023
65cbf07
Added draft for definition av Variation theory
celinahenriksson Jul 5, 2023
6d6b8f6
Moved things to appendix which might not be included in article
celinahenriksson Jul 6, 2023
7b5b2e3
Added VT-analysis to chapter
celinahenriksson Jul 6, 2023
2d999ce
Destroyed preamble again, now hopefully fixed
celinahenriksson Jul 6, 2023
f91c72a
Some small changes and more pattern-examples added
celinahenriksson Jul 9, 2023
17daabc
Started the change from lslisting to minted
celinahenriksson Jul 10, 2023
160e466
Minor fixes
dbosk Jul 11, 2023
c730e67
Merge branch 'summer2023' of github.com:dbosk/intropy into summer2023
dbosk Jul 11, 2023
e333d1c
Added new patterns
celinahenriksson Jul 11, 2023
dcc912a
Merge branch 'summer2023' of github.com:dbosk/intropy into summer2023
dbosk Jul 12, 2023
14fc2f1
Added a misconception not mentioned in the articles
celinahenriksson Jul 14, 2023
0c4a00c
More patterns, soon done with this section..
celinahenriksson Jul 14, 2023
8bfe79b
Switches misconceptions to compile using makefiles
dbosk Jul 14, 2023
a49aafd
Adds pythontex
dbosk Jul 14, 2023
82ba470
Breaks results-overview out from article to own file
dbosk Jul 14, 2023
40e8579
merging
celinahenriksson Jul 15, 2023
2d6c5c8
More patterns added
celinahenriksson Jul 15, 2023
722d3b9
Added misconceptions we have found
celinahenriksson Jul 15, 2023
7911922
Added findings to article
celinahenriksson Jul 15, 2023
be6f308
Improves initial example, rearranges it
dbosk Jul 15, 2023
caa7e48
Merge branch 'summer2023' into summer2023-initial-example
dbosk Jul 15, 2023
a5e0ebc
Further improvements to initial example
dbosk Jul 15, 2023
b426cc4
Fixes broken comment (hard-wrapped)
dbosk Jul 16, 2023
efc8e70
Adds pythontex
dbosk Jul 14, 2023
52771f5
Switches misconceptions to compile using makefiles
dbosk Jul 14, 2023
615ce30
Merge branch 'summer2023' into summer2023-func-args
dbosk Jul 17, 2023
667eb57
Adds examples on func args from NCOL slides
dbosk Jul 21, 2023
9bb5947
Starts rewrite of functions-variables section
dbosk Jul 23, 2023
205eb78
Updates first few examples in functions-variables
dbosk Jul 23, 2023
fcb517d
Improves first functions example
dbosk Jul 24, 2023
112a63f
Adds first example of variability of functions
dbosk Jul 24, 2023
14cbcab
Adds highlight in variability of functions contrast
dbosk Jul 24, 2023
b0c453c
Adds generalisation and fusion for functionality of functions
dbosk Jul 25, 2023
c18386d
Improves commentary on what varies and what doesn't
dbosk Jul 25, 2023
41b985c
Minor clarification in functions-variables
dbosk Jul 26, 2023
8dd0213
Adds credits to those who helped record misconceptions
dbosk Jul 26, 2023
3203caa
Merge branch 'summer2023' into summer2023-func-args
dbosk Jul 26, 2023
9759926
Rearranges examples and adds new ones to use the space
dbosk Jul 27, 2023
9765d2e
Removes unnecessary `\hfill`s
dbosk Jul 28, 2023
c9f490d
Adds results from first debug test
dbosk Jul 28, 2023
98967d2
Merge branch 'summer2023' into summer2023-initial-example
dbosk Jul 28, 2023
1ab8c4f
Merge branch 'summer2023-initial-example' into summer2023-merge-func-…
dbosk Dec 2, 2023
71036f0
Removes parskip from preamble
dbosk Dec 2, 2023
6c8e3f3
Removes unneeded vspaces
dbosk Dec 12, 2023
021d5f6
Adds one more research question
dbosk Dec 12, 2023
97c983b
Clarifies experiment code
dbosk Dec 12, 2023
40d247b
Adds abstract
dbosk Dec 12, 2023
c7bfba9
Adapts to beamerarticle slides
dbosk Dec 13, 2023
e0377ac
Breaks out debugging study into its own file and section
dbosk Dec 13, 2023
ab4107b
Adds slides for UpCERG talk
dbosk Dec 21, 2023
96cbfa4
Minor edits
dbosk Dec 21, 2023
20410ef
Adds more code to the slides
dbosk Dec 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion beamer-didactic
3 changes: 3 additions & 0 deletions research/misconceptions/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
article.pdf
didactic.sty
slides.pdf
slides.unq
47 changes: 35 additions & 12 deletions research/misconceptions/Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,44 @@
LATEXFLAGS= -shell-escape
TEX_PYTHONTEX= yes

.PHONY: all
all: article.pdf
all: article.pdf slides.pdf

SRC+=theory.bib
SRC+=misconceptions.bib
SRC+=preamble.tex

SRC+=introduction.tex
SRC+=background.tex
SRC+=method.tex

SRC+=results-overview.tex

article.pdf: bibliography.bib
article.pdf: preamble.tex
SRC+=functions-variables.tex
SRC+=debugging.tex

article.pdf: classes.tex
article.pdf: conditionals.tex
article.pdf: functions-variables.tex
article.pdf: problem-solving.tex
article.pdf: repetitions.tex
article.pdf: tools.tex
article.pdf: types.tex
SRC+=conditionals.tex
SRC+=repetitions.tex
SRC+=types.tex
SRC+=classes.tex
SRC+=problem-solving.tex
SRC+=tools.tex

article.pdf: article.tex
latexmk -pdf $<
DEPENDS+= fig/contrast-color.tikz
DEPENDS+= fig/generalization-color.tikz
DEPENDS+= fig/fusion-color.tikz

DEPENDS+= didactic.sty

article.pdf: article.tex ${SRC} ${DEPENDS}
slides.pdf: slides.tex ${SRC} ${DEPENDS}

.PHONY: clean
clean:
latexmk -C
${RM} article.bbl article.run.xml

INCLUDE_MAKEFILES?=../../makefiles
include ${INCLUDE_MAKEFILES}/tex.mk
INCLUDE_DIDACTIC=../../beamer-didactic
include ${INCLUDE_DIDACTIC}/didactic.mk
22 changes: 22 additions & 0 deletions research/misconceptions/abstract.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
According to variation theory (see Marton's Necessary Conditions of
Learning, 2015), learning an educational objective requires the learner to
distinguish all aspects of that educational objective. What these aspects are
is hard to tell for someone who has already mastered the educational objective
in question. However, misconceptions occur when the learner cannot yet
distinguish one or more critical aspects. Thus misconceptions can help us
identify what those (critical) aspects are. Then we can teach the learner to
distinguish those critical aspects by varying examples through a series of
patterns of variation.

In this work (in progress), we explore the existing literature on
misconceptions in introductory programming courses and analyse it
through the lens of variation theory to identify the necessary aspects of
programming that a learner must learn to distinguish. We also outline patterns
of variation to teach to distinguish these aspects.

In Necessary Conditions of Learning, Marton also connects the patterns of
variation of variation theory to deep learning and scientific discoveries. In
both cases, the learners (the researcher is also a learner) introduce variation
for themselves through these patterns of variation. We hypothesize the
connection between the patterns of variation and the skill of debugging (the
programmer is learning about some unknown when debugging).
174 changes: 95 additions & 79 deletions research/misconceptions/article.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,107 +4,123 @@
% This is a simple template for a LaTeX document using the "article" class.
% See "book", "report", "letter" for other types of document.

\documentclass[twocolumn]{article}
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage[english]{babel}
\documentclass[onecolumn]{article}
\usepackage[hyphens]{url}
\usepackage[hidelinks]{hyperref}

\usepackage[noamsthm,notheorems]{beamerarticle}
\setjobnamebeamerversion{slides}

\input{preamble.tex}

\title{Student misconceptions in programming through the lens of variation
theory}
\author{Celina Soori and Daniel Bosk (at the moment)}
\usepackage[inline]{enumitem}
\setlist[enumerate]{label=(\arabic*)}

%\usepackage{authblk}
%\let\institute\affil

\declaretheorem[numbered=unless unique,style=theorem]{theorem}
\declaretheorem[numbered=unless unique,style=definition]{definition}
%\declaretheorem[numbered=unless unique,style=definition]{assumption}
%\declaretheorem[numbered=unless unique,style=definition]{protocol}
\declaretheorem[numbered=unless unique,style=example]{example}
%\declaretheorem[style=definition,numbered=unless unique,
% name=Example,refname={example,examples}]{example}
%\declaretheorem[numbered=unless unique,style=remark]{remark}
%\declaretheorem[numbered=unless unique,style=remark]{idea}
%\declaretheorem[numbered=unless unique,style=exercise]{exercise}
%\declaretheorem[numbered=unless unique,style=exercise]{question}
%\declaretheorem[numbered=unless unique,style=solution]{solution}

\title{%
Introductory programming through the lens of variation theory%
}
\author{%
Celina Soori and
Daniel Bosk\thanks{%
Oskar Ejderby,
Leandros Grigoriadis,
Björn Hickman,
Yousef Hilal,
Beata Johansson,
Mazen Mardini, and
Yasmine Schüllerqvist
helped record students' misconceptions during the course.
}%
}
%\date{} % Activate to display a given date or no date (if empty),
% otherwise the current date is printed

\begin{document}
\maketitle
\tableofcontents

\section{Introduction}

We study misconceptions in introductory programming from the perspective of
variation theory.
We first survey the existing literature on misconceptions in introductory
programming.
We then analyze these misconceptions using variation theory.

According to variation theory \parencite[Ch.~2]{NCOL}, each educational
objective can be divided into different \emph{aspects}.
Consider the educational objective \enquote{the student should be able to use
functions}.
One aspect of this particular educational objective is local and global scope
of variables.
Another aspect is returning values from a function.
For a student to achieve the educational objective, she must be able to discern
the different aspects of the educational objective.
Aspects that the student hasn't yet discerned are critical aspects.
One necessary condition for learning is that the student is introduced to a
series of patterns of variation in the dimension of each critical aspect.
Misconceptions are examples of when a student has failed to discern (at least)
one critical aspect.
This allows us to use misconceptions to inform our designs when designing
teaching according to variation theory.

This study answers the following questions:
\begin{enumerate}
\item What misconceptions in introductory programming has been identifies in
the literature?
\item Based on these misconceptions, what aspects (in terms of variation
theory) of introductory programming can we identify?
\item Where do we need further research?
\end{enumerate}


\section{Prerequisites: definitions}
\definecolor{light-green}{HTML}{D5F5E3} %this definition needed to be inside the document

Added this to explain different words we use in the text and how we interpreted them and use them. Maybe we dont need subsections for every word, but I started this way.

Maybe it will be needed, maybe not. Uncertain at the moment.

\subsection{Variation Theory}

Here I'm thinking we should describe what variation theory is so that we can use it in the analysis later on.

\subsection{Misconception}

Do we need to describe what we mean with misconception? Do we maybe want to use another word?

\subsection{Computational thinking}
\maketitle
\begin{abstract}
\input{abstract.tex}
\end{abstract}

Maybe we want to include something about computational thinking in this article?
\clearpage
\tableofcontents
\clearpage

\subsection{Conceptual Change Theory}
\input{introduction}
\input{background}

An interesting method to unlearn misconceptions and instead learn the correct conception. Mentioned by Qian \& Lehman.
\input{method}

\input{results-overview.tex}

\section{Surveying the literature on misconceptions}
\input{functions-variables.tex}
\input{debugging.tex}

I'm thinking we need a method-section to describe how this research has been
conducted. Something about the literature collecting and so on.
\input{conditionals.tex}
\input{repetitions.tex}
\input{types.tex}
\input{classes.tex}

Indeed, you'll need to describe the search queries and the selection criteria.
\input{findings.tex}

\printbibliography

\section{Important modules in CS1}
\appendix

This section is divided to reflect the different concepts that are teached during CS1. Each section will describe what students often are meant to learn and understand in that module, which is then followed with a summary of what different studies have found is difficult for students in that module. XXX And then we also will try to analyze the findings with the help of variation theory.
\section{Misconceptions not yet included}

\input{functions-variables.tex}
\input{classes.tex}
\input{repetitions.tex}
\input{types.tex}
\input{conditionals.tex}
\input{problem-solving.tex}
\input{tools.tex}

\section{Analysis}

The analyze will be performed with the help of variation theory.
\section{Misconceptions I have noticed that is not mentioned}

\begin{itemize}
\item When returning a value from a function, students misses to
capture it into a variable, not understanding why they cannot use the
returned value later in the programme.
\item A local list in a function will be changed when passed to a
function and then changed in that function. This because it is a
reference to the list that is sent to the new function, not a copy of
the list.
\end{itemize}

\section{Random stuff removed from the article}

\begin{itemize}
\item There is also a misconception that variables can hold more than
one value at a time \parencite{Doukakis2007}. This misconception can
relate to several things:
\begin{enumerate*}
\item the type system, confusing lists with non-container types, not
seeing a list as a type itself;
\item the scope of variables, that the same variable identifier can be
used
for different things in different scopes.
\end{enumerate*}

\item Students that know that a return-statement is needed have
difficulties returning the right value or variable from a function
\parencite{KumarVeerasamy2016}.

\end{itemize}

\section{Discussion}

Here we can discuss what we want to analyze and research further. We might also want to discuss how to design the education to avoid everything above.

\printbibliography
\end{document}

Loading