1. Summary Too many students in introductory programming classes fail to understand the significance and utility of the concepts being taught. Their low motivation impacts their learning. One contributing factor is pedagogy that emphasizes computing for its own sake and assignments that are abstract, such as computing the factorial function. Many educators have improved on such traditional approaches by teaching concepts in contexts that students find more relevant, such as games, robots, and media. Now, it is time to take the next step. In this special session, participants will develop and discuss ways to teach introductory programming by means of real-world data analysis problems from science, engineering, business, and the humanities. Students can be motivated to learn programming in order to analyze DNA, predict the outcome of elections, detect fraudulent data, suggest friends in a social network, determine the authorship of texts, and more (see Section 3.4 for more examples). The approach is more than just a collection of “nifty assignments”: rather, it affects the choice of topics and pedagogy, all of which together lead to greater student satisfaction. The approach has been successfully used at 4 colleges and universities. The classes were effective for both CS and non-CS majors. Neither the computing material nor the problems need to be “dumbed down”. At the end of the term students were amazed and delighted at the real data analysis that they could perform. They were excited about applying computation in their work and about learning more. The special session contains a mix of activities, including comparative analysis of introductory classes; group discussion of curriculum design; a mini-panel discussing how the approach has worked in practice; and brainstorming about example assignments and curriculum revision.
[1]
Beth Simon,et al.
Experience report: CS1 for majors with media computation
,
2010,
ITiCSE '10.
[2]
Steven L. Tanimoto,et al.
An Interdisciplinary Introduction to Image Processing: Pixels, Numbers, and Programs
,
2012
.
[3]
Mark Guzdial,et al.
A CS1 course designed to address interests of women
,
2004,
SIGCSE '04.
[4]
Ali Erkan,et al.
Sustainability themed problem solving in data structures and algorithms
,
2012,
SIGCSE '12.
[5]
Jeffrey Forbes,et al.
(Re)defining computing curricula by (re)defining computing
,
2010,
SGCS.
[6]
David G. Sullivan.
A data-centric introduction to computer science for non-majors
,
2013,
SIGCSE '13.
[7]
Michael R. Wick,et al.
Steganography and cartography: interesting assignments that reinforce machine representation, bit manipulation, and discrete structures concepts
,
2005,
SIGCSE.
[8]
Daniel E. Stevenson,et al.
Developing real-world programming assignments for CS1
,
2006,
ITICSE '06.
[9]
Peter DePasquale.
Exploiting on-line data sources as the basis of programming projects
,
2006,
SIGCSE '06.
[10]
Hans Petter Langtangen,et al.
A Primer on Scientific Programming with Python
,
2009
.
[11]
Michael Goldweber,et al.
A framework for enhancing the social good in computing education: a values approach
,
2012,
ITiCSE-WGR '12.
[12]
Kay A. Robbins,et al.
Teaching biologists to compute using data visualization
,
2011,
SIGCSE '11.