190 likes | 338 Views
Engagement and Frustration in Programming Projects. Stuart Hansen Erica Eddy UW - Parkside. The Problem. Attracting and retaining quality students in Computer Science is an ongoing struggle Lots of potential reasons Bad press
E N D
Engagement and Frustration in Programming Projects Stuart Hansen Erica Eddy UW - Parkside
The Problem • Attracting and retaining quality students in Computer Science is an ongoing struggle • Lots of potential reasons • Bad press • The current generation expects something different (games, GUIs,???) • We work our students harder than many majors • CS actually requires math skills
Programming is at the heart of what we do “… a strong correlation exists between programming ability and other computing skills, reflecting, as it does, skills in abstraction, conceptualization, design and evaluation.” McGettrick, et al., Grand Challenges in Computing: Education-A Summary
We want our students to like programming • We want them to find programming fun and challenging (engaging). • We don’t want them to be overly frustrated by our programming assignments.
Frustration is Endemic to Computing • My mother calls me up to get help sending an email message to me • I still struggle with … • We do not want to completely remove frustration from programming, just keep it under control
What Do We Know?Not much • Margolis and Fisher discuss the relationship between confidence and interest by women studying CS. • Nifty assignments taps decades of expertise to decide what is a good assignment. • No studies found addressing our particular concern.
Our Solution: Ask the students • Our intention is primarily formative • How to improve our assignments • Smaller 4 year campus • About 80 majors • Our student population is • 66% First generation college • 40% Lowest two quintiles of family income • 64% Receive financial aid
The Survey • Semester long research project • Administered to CS1, CS2 and Algorithms • Given during class on due date of each assignment
The Survey • Keep it short • Rank engagement on a scale of 1-10 • Rank frustration on a scale of 1-10 • Give opportunity for more extensive feedback • What would make the project more engaging? • What was the cause of the frustration?
Frustration Causes What did you find most frustrating about the assignment (circle one answer)? • Understanding what was required by the assignment • Java language syntax and semantics • Required knowledge not yet covered in class • Designing the classes and methods • Working with the program development tools, e.g., BlueJ, netBeans, or emacs • Working with Linux • Other (please write a short description):
Summary Statistics n = the total number of surveys collected
Differences Among Courses • In more advanced courses students are more engaged by the projects (a = 0.01) • While it appears that more advanced students are more frustrated, too, this is not statistically significant • Clear shift in reasons for frustration • From Java to assignment requirements to designing classes and methods
The Outliers • First CS1 Assignment • - Type in this code, compile and run B. Frustrated to the point of not being engaged - CS1 String project - Algorithms project with bad data set
The Outliers - continued C. CS2 Expression Trees Project - involved binary trees, recursion and polymorphism - still engaging, 7.42 is only slightly less than CS2 mean
The Outliers - continued D. Most Engaging - Huffman encoding - Depth first Sudoku solver - Monte Carlo poker simulator - What makes them engaging? classic CS? real world problems?
The Outliers - continued E. Fun and not frustrating - Use the ACM Graphics Library to draw a scene - Array based polynomials - both early in the semester projects
Conclusions • CS is engaging • Students enjoy a challenge, but challenges also imply some frustration • Recognize our bad projects • Manage frustration and engagement incrementally • Students appreciate the chance to give feedback