Supporting Creativity and User Interaction in CS 1 Homework Assignments Tammy VanDeGrift Associate Professor of Computer Science ACM SIGCSE 2015 ACM SIGCSE 2015 Outline Background • CS 1 Assignment Features • Motivation Study • Context, Participants, HW, Methods, Data Research Questions, Results and Discussion ACM SIGCSE 2015 CS 1 HW Options Lab exercises Programming to precise specifications CS 1 HW Short-answer questions Tracing, debugging code ACM SIGCSE 2015 Design Elements and Goals HW Design Element Specification includes required and open-ended parts Over half require user tests Requires written documentation Goal Encourage creativity and customization Encourage connection to the user Encourage authority and ownership of process and product Elmore, T. 2010. Generation iY: Our Last Chance to Save Their Future. Pet Gardener Publishing. Homework Asst Creativity CS Concepts 1) Fortune Teller Choose fortune Variables, I/O ACM SIGCSE 2015 2) Madlib Choose Madlib and where to place operations I/O, Strings Design graphics layout I/O, graphics, selection Study (Homework Assignments) 4) Golf Design graphics layout; Graphics, selection, iteration 3) Greeting Card wind and speed 5) Wheel of Fortune Choose puzzles; option spin wheel Random numbers, selection, iteration, arrays, methods 6) Library Choose classes to design UML, class design, methods, instance variables 7) Game Player Choose game player to model Classes, instance variables, methods, constructors 8) Image Transformation Choose image filters Arrays of objects, interfaces, loops 9) Inheritance Choose assignment Inheritance, class relationships 10) Palindromes Choose property for search Recursion, file I/O, exceptions For HW and starter code, visit: https://sites.up.edu/sigcse2015/ ACM SIGCSE 2015 A Greeting Card Program Your program will create a Java applet that displays a graphical birthday card. If you would rather create a card for a different occasion (Valentine’s Day, Anniversary, Christmas, Halloween, Thank you, Sympathy, etc), you may do so. Specification (7 points functionality) Getting input (1 pt for the dialog windows). Put these in the init method in your code. The user of your program should be greeted with a dialog window message, such as "Welcome to the birthday card program." In an input dialog window, the user should be asked for the name to whom the birthday card should be addressed. Trim the input. In an input dialog window, the user should be asked for the name from whom the birthday card is being sent. Trim the input. In an input dialog window, the user should be asked for the age of the birthday person. Trim the input. You do not need to validate that this is a proper number for this assignment. In an input dialog window, the user should be given the option of drawing 1, 2, or 3 items of your choosing. In the starter file, you will see how one or two trees are drawn. (In your greeting card drawing, you might draw one, two, or three flowers, candles, balloons, clouds, etc.). ETC. ACM SIGCSE 2015 ACM SIGCSE 2015 Study (Context) Participants: • 44 students gave consent Institution: 13, 30% Male 31, 70% Course: 2 sections of CS 1 Spring 2012 Java Assumes no prior experience 1 1 1 2 1 Female CS 1 EE 2 Math 19 4 General Engr Biology ME Sociology 4 Psychology 8 Economics Education ACM SIGCSE 2015 Study (Research Questions) 1. Does allowing students to exercise creative freedom motivate students to learn and complete homework? 2. Does asking students to share their programs with non-programmers engage their learning? ACM SIGCSE 2015 Study (Methods and Data) • End-of-semester paper survey ▫ Overall feedback about HW ▫ User Tests ▫ Open-ended aspects of HW • Open-ended questions: used content analysis • Aggregated numbers for quantitative questions ACM SIGCSE 2015 Results: Q1) Does allowing students to exercise creative freedom motivate students to learn and complete homework? What did you like best about the HW? ACM SIGCSE 2015 Results: Q1) Does allowing students to exercise creative freedom motivate students to learn and complete homework? (continued) Creativity • The homework assignments were challenging, yet, at the same time allowed us to be creative. Also, allowed us to implement the knowledge we, as students, have learned in class to create the program. Matched Material in Course • I liked that they were well guided. The pseudocode really helped. I also liked that they go with what we are learning in class and also build upon all of the skills we've gained. The ability to be creative with the assignments is very nice as well. Skill Development • I liked the part in that it enhanced your programming skills and show you what the field is like. • The opportunity to apply the code and create programs with practical applications. ACM SIGCSE 2015 Results: Q1) Does allowing students to exercise creative freedom motivate students to learn and complete homework? (continued) Question Result Did you enjoy the open-ended parts of the assignments? 41 / 44 said yes Did you complete additional optional enrichment? 27 / 44 said yes Did you write programs that were not part of the course? 15 / 44 said yes Favorite? HW 8, HW 4, HW 9 Least favorite? HW 6 (no coding) Completion rates 505 / 510 assignments submitted ACM SIGCSE 2015 Results: Q1) Does allowing students to exercise creative freedom motivate students to learn and complete homework? (continued) What factors motivated you to complete HW? Was capable in completing them Career 77% had motivation other than grades to complete HW Fun; satisfying Practice programming skills; Improve skills Learn concepts Interested in how computers work; Interest in material Impact to Final Grade; Get Good Grade 0 5 10 15 20 25 30 35 ACM SIGCSE 2015 Results: Q1) Does allowing students to exercise creative freedom motivate students to learn and complete homework? (continued) What factors motivated you to complete HW? (sample answers) I wanted to get a chance to show what I have learned and put my skills to the test. Obviously, I did them for earning the grade as well. I really like coding and solving problems so I really enjoyed the HW grades, I want to get better at CS, fun, I could show my friends later, very satisfying feeling after completing the HW I found that I really enjoyed solving the problems set for me. I liked the time I spent programming. ACM SIGCSE 2015 Results: Q2) Does asking students to share their programs with non-programmers engage their learning? Average number of different people per student: 3.4 With whom did you share your programs? Other Professor 53% of users showed an interest in computer science Siblings Parents Friends 0 10 20 30 40 50 ACM SIGCSE 2015 Results: Q2) Does asking students to share their programs with non-programmers engage their learning? (continued) What concepts did you explain in the user tests? (free response) ACM SIGCSE 2015 Results: Q2) Does asking students to share their programs with non-programmers engage their learning? (continued) Question Result Did the required user test impact when you started HW assignments? Yes = 9, No = 1, Did not matter = 34 Did having a user run the program impact your effort? Yes = 17, No = 27 What surprised you when sharing programs with users? Catch bugs (6) Users tried invalid data (4) Interested in how code worked (4) Gave improvements (4) Enjoyed it (4) Helped with usability (2) User did not read directions (1) Easy to impress user (1) ACM SIGCSE 2015 Discussion Bias: 44 of 51 students gave consent, instructor did not look at surveys until after grades were submitted Creativity/Ownership: Over 38% stated in open-ended question that creativity/open-ended was one of the features they liked about the HW Challenges: does not lend itself to automated grading, may be difficult for students to code to precise specification later in curriculum Benefits: students learn about ambiguity, students learn about defining requirements, students want to complete HW ACM SIGCSE 2015 Questions? • We acknowledge the students who participated in this study. • I want to thank Dr. Karen Eifler (School of Education, University of Portland) for fruitful discussions about this study. For the HW assignments, visit: https://sites.up.edu/sigcse2015/