June 24, 2007
June 24, 2007
June 27, 2007
Computers in Education
12.608.1 - 12.608.15
Encouraging Creativity in Introductory Computer Science Programming Assignments
With computer science enrollments declining and the perception that programming is boring, computer science and computer engineering educators are challenged to raise awareness of the discipline. In order to keep students’ interest and to provide a means of ownership, creative and open-ended programming assignments are used in an introductory Java course. At the end of the semester, students completed a survey about the programming assignments in the course. Survey results indicate that 64% of students shared at least one program they created with a friend or family member, indicating that students took ownership of their computer programs. Comments that the assignments were “fun”, “creative”, “could be run later” suggest that students took ownership of their programs. Also, 45% of students added optional features to at least one program over the course of the semester. This paper describes the homework assignments used in the course, examples of students’ work, and students’ perceptions of the assignments.
With computer science enrollments declining and the perception that programming is boring, computer science and computer engineering educators are challenged to interest more students in the discipline12. Having students with and without programming experience in introductory courses and the “ease” of copying code files for submission also pose challenges for computer science educators. In many introductory computer science courses, students complete programming assignments to learn the skills of problem-solving, translating ideas into computer code, debugging programs, and testing programs. Much of the learning takes place while students complete programming assignments. In order to keep students’ interest and provide a means of ownership, creative and open-ended programming assignments were used in an introductory Java course.
Most introductory programming courses include a series of programming assignments to ensure students learn programming fundamentals. A typical introductory programming assignment requires all students to complete the same program. Instead of stating project specifications so that all students’ projects tackle exactly the same task, assignments for an introductory course were written to allow students to be creative (yet still learn the programming fundamentals). This paper describes a series of such assignments used in an Introduction to Java course. For example, students designed their own madlib story for the string-processing assignment and designed their own custom recipe calculator for basic input/output and mathematical functions. Later during the semester, students completed an adventure game and designed their own characters and their behaviors.
Even though assigning “creative” assignments does not lend itself to automated grading and testing, the author believes that to truly assess students’ code, the code itself must be read and graded for style and quality. Therefore, executing each student’s program and reading their code takes time, but its advantages in encouraging students to be creative outweigh the cost of
VanDeGrift, T. (2007, June), Encouraging Creativity In Introductory Computer Science Programming Assignments Paper presented at 2007 Annual Conference & Exposition, Honolulu, Hawaii. 10.18260/1-2--1604
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2007 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015