Commonsense understanding of concurrency ... - ACM Digital Library

3 downloads 0 Views 823KB Size Report
of concurrency computing students and concert tickets key insights. Beginner cs students demonstrate commonsense knowledge about important cs topics that ...
contributed articles Innate understanding of concurrency helps beginners solve CS problems with multiple processes executing at the same time. by Gary Lewandowski, Dennis J. Bouvier, Tzu-Yi Chen, Robert McCartney, Kate Sanders, Beth Simon, and Tammy VanDeGrift

Commonsense Understanding of Concurrency Computing Students and Concert Tickets

says learning is grounded in and constructed from prior understanding and belief. In order to explore the prior understanding and belief of beginning computer science students, the Commonsense Computing Project (http:// commonsensecomputing.cs.siue.edu) asks them to answer CS questions on the first day of their first course. Here, we report on the related commonsense knowledge as demonstrated in the area of concurrency. Long considered an advanced topic in the CS curriculum, concurrency is rarely5,16 considered appropriate for introductory students; on the other hand, it is increasingly at the forefront of CS; obvious instances

Constructivist learning theory

60

communications of th e ac m

| j u ly 2 0 1 0 | vo l . 5 3 | n o. 7

involve multicore processors on the desktop, distributed computing resources for computationally and data-intensive problems, and network-based games. Whether through implicit structures in programming languages or explicit structures in design, university students must demonstrate an understanding of the various approaches to and implications of concurrency. Given the importance of the topic, what relevant knowledge and abilities do students without prior computing instruction (“beginners”) bring to their first class? Do they differ from more advanced students with no explicit teaching about concurrency? Along with their commonsense understanding of concurrency, this article explores the solutions they provided on the first day of an introductory CS course to a problem devised by Yifat Ben-David Kolikant of Hebrew University of Jerusalem2 to more advanced students on the first day of a concurrency course in an Israeli high school. We’ve used the responses to address two questions: ˲˲ Are beginners able to recognize the key concurrency issue regarding use of a shared resource? and ˲˲ How do answers given by beginners compare with answers given by more advanced students, as reported by Ben-David Kolikant? Of the 66 students in our 2006 study, 97%, or 64, could identify a race condition and 71% provided a solution we considered reasonable. The

key insights B eginner CS students demonstrate commonsense knowledge about important CS topics that can be leveraged to improve instruction.

C onstructivist education begins with commonsense knowledge, helps students discover its utility, and provides tools for more complex approaches rooted in CS knowledge.

B eginner CS students demonstrate

intuition about concurrency roughly equivalent to experienced CS students beginning a concurrency course.

Illustration by Gary neill

d oi:10.1145/1785414.1785438

credit tk

j u ly 2 0 1 0 | vo l . 5 3 | n o. 7 | c o m m u n i c at i o n s o f t he acm

61

contributed articles most common technique they reported for avoiding race conditions was subdividing the resources. Our study provides a basis for a constructivist approach to teaching concurrency, allowing instructors to build on these ideas. Moreover, the study was independent of technological assumptions, making it relevant regardless of technology or pedagogical practice used. Background We have conducted a number of commonsense computing projects over the past five years, all with the same basic goal of identifying the commonsense knowledge beginners bring to the study of CS. Our foundation was the constructivist theory about how

people learn, starting with what they already know and building knowledge on that foundation, rather than receiving it passively from an instructor. Each learner’s background, culture, and previous knowledge define his/ her starting point. Bransford et al.4 argued that learning must engage students’ preconceptions to be effective. The importance of constructivism is recognized in the computingeducation community. Ben-Ari1 compared it with other fields, highlighting several differences; for example, in CS education, students need a model of the computer, and the computer then provides an “effective ontological reality,” or verification of whether a program works or not. Students’ prior understanding and

Yifat Ben-David Kolikant’s cinema-tickets assignment.

Cinema Tickets Problem A ticket office sells movie tickets for a certain cinema. The next client always gets the best-available ticket. Software decides the next-best-available seat and prints the ticket. Assumptions: • The movie is screened only once; • This is the only office selling tickets for the movie; • Each client can buy only one ticket; and • Many people are waiting to buy tickets. The software defines several procedures: Function BestAvailableSeat()

Input: Hall Return value: Best-available seat in the Hall; –1 if no seat is available.

Procedure Input: Seat is the place of Mark AvailableSeat(Seat) an available seat in the Hall. Output: The place of the Seat is marked as taken. Procedure PrintTicket(Seat)

Input: Seat is the place of an available seat in the Hall. Output: A ticket for place Seat is printed.

A client is handled through these steps: Seat