Change search
ReferencesLink to record
Permanent link

Direct link
Learning Concurrency - what's the problem?
Umeå University, Faculty of Science and Technology, Department of Computing Science.
(English)Manuscript (preprint) (Other (popular science, discussion, etc.))
Abstract [en]

At least since the early~80s there have been researchers and teachers claiming that understanding concurrency is a necessity for our students. Many authors also write that concurrency is very difficult for students to learn. However, other researchers claim that concurrency is something natural to most humans and the problems are caused by the way we teach the subject and the languages/tools we use.

This paper looks at a number of articles that discuss concurrency and student learning. Many of them discuss various tools, sometime without giving any evidence that they solve a problem that students actually have and/or that the tools improve the situation. Others discuss course designs, where the designs are based on assumptions about how concurrency should be taught. There are also studies that try to understand what causes the problems that students experience and how to improve the situation.

Unfortunately, in reading these articles we have to come to the conclusion that the situation today is much the same as in the early-80s: We do not know how to teach concurrency.

National Category
Computer Science
Research subject
Computer Science; didactics of computer science
URN: urn:nbn:se:umu:diva-48167OAI: diva2:446907
Available from: 2011-10-10 Created: 2011-10-10 Last updated: 2011-10-12Bibliographically approved
In thesis
1. A study of student problems in learning to program
Open this publication in new window or tab >>A study of student problems in learning to program
2011 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

Programming is a core subject within Computer Science curricula and many also consider it a particularly difficult subject to learn. There have been many studies and suggestions on what causes these difficulties and what can be done to improve the situation.

This thesis builds on previous work, trying to understand what difficulties students have when learning to program. The included papers cover several areas encountered when trying to learn programming.

In Paper I we study how students use annotations during problem solving. The results show that students who annotate more also tend to be more successful. However, the results also indicate that there might be a cultural bias towards the use of annotations.

Not only do students have problems with programming, they also have problems with designing software. Even graduating students fail to a large extent on simple design tasks. Our results in Paper II show that the majority of the students do not go beyond restating the problem when asked to design a system.

Getting stuck is something that most learners experience at one time or another. In Paper III we investigate how successful students handle these situations. The results show that the students use a large number of different strategies to get unstuck and continue their learning. Many of the strategies involve social interaction with peers and others.

In Papers IV, V, and VI we study what students experience as being key and threshold concepts in Computer Science. The results show that understanding particular concepts indeed affect the students greatly, changing the way they look at Computer Science, their peers, and themselves.

The two last papers, Papers VII and VIII, investigate how researchers, teachers and students view concurrency. Most researchers/teachers claim that students have difficulties because of non-determinism, not understanding synchronization, etc. According to our results the students themselves do not seem to think that concurrency is significantly more difficult than any other subject. Actually most of them find concurrency to be both easy to understand and fun.

Abstract [sv]

Programmering har en central roll i datavetenskapliga utbildningar. Många anser att programmering är svårt att lära sig. Ett stort antal studier har undersökt vad som orsakar dessa svårigheter och hur det är möjligt att övervinna dem. Denna avhandling är en del av denna forskning. Artiklarna i avhandlingen undersöker vilka problem som studenterna stöter på under sina programmeringsstudier.

Artikel 1 beskriver hur studenter använder sig av annoteringar vid problemlösning. Resultaten visar att studenter som gör många annoteringar tenderar att prestera bättre. Resultaten antyder också att det kan finnas kulturella skillnader i hur ofta annoteringar används.

Studenter har inte bara problem vid programmering, de har också problem med att utforma programvarusystem. Även sistaårsstudenter misslyckas till stor del att utforma lösningar för relativt enkla system. Resultaten i Artikel II visar att majoriteten av studenterna inte kommer längre än en omformulering av problemet.

Att inte förstå ett koncept eller en specifik detalj är något som alla studenter stöter på då och då. I Artikel III undersöker vi hur framgångsrika studenter hanterar en sådan situation. Resultaten visar att studenterna använder sig av ett stort antal olika strategier för att få en förståelse för konceptet/detaljen. Många av de redovisade strategierna bygger på en social interaktion med andra.

Artiklarna IV, V och VI utforskar vad studenterna uppfattar som nyckelkoncept inom datavetenskap och hur förståelsen av dessa koncept påverkar dem. Resultaten visar att förståelsen av vissa specifika koncept kan göra att studenterna ändrar hur de ser på datavetenskap, kollegor och sig själva.

I artiklarna VII och VIII undersöker vi hur forskare, lärare och studenter ser på de problem studenter har vid jämlöpande programmering. De flesta forskare och lärare hävdar att studenterna har problem med att förstå icke-determinism, synkronisering, etc. Våra resultat visar dock att studenterna inte själva tycks anse att jämlöpande programmering är signifikant svårare än andra ämnen. Tvärtom, de flesta anser att jämlöpande programmering är både lätt att förstå och roligt.

Place, publisher, year, edition, pages
Umeå: Umeå University, Department of Computing Science, 2011. 180 p.
Report / UMINF, ISSN 0348-0542 ; 11.10
concurrency, learning, difficulties, programming
National Category
Computer Science
Research subject
Computer Science; didactics of computer science
urn:nbn:se:umu:diva-48216 (URN)978-91-7459-293-1 (ISBN)
Public defence
2011-11-02, MIT-huset, MA 121, Umeå University, Umeå, 18:44 (English)
Available from: 2011-10-12 Created: 2011-10-10 Last updated: 2011-10-12Bibliographically approved

Open Access in DiVA

No full text

Search in DiVA

By author/editor
Moström, Jan Erik
By organisation
Department of Computing Science
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

Total: 67 hits
ReferencesLink to record
Permanent link

Direct link