Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using a Programming Contest Format to Excite Introductory Students

Similar presentations


Presentation on theme: "Using a Programming Contest Format to Excite Introductory Students"— Presentation transcript:

1 Using a Programming Contest Format to Excite Introductory Students
Arup Guha May 27, 2011

2 Introductory Course: COP 3223
Language Used: C Number of students per section: 225 Class Meetings: Twice a week, 75 minutes Homework Assignments: Six for the course Teaching Methods Lecture Code Walk Through (of previously written examples) Coding from Scratch (using ideas from students)

3 New Course: COP 3223H (Honors)
Key Difference: 20 students Class Meetings: Three times a week for 50 minutes Monday, Wednesday: Same as COP 3223 Friday – Programming Team Problem(s) Students bring laptops to the classroom Students split up into pairs (by choice or randomly) Each pair of students is given a problem Students discuss and work together to solve the problem If they think they’ve solved it, they raise their hand to “submit”.

4 First Couple Problems File I/O had not been taught yet.
Limited to standard I/O. Simply create problems easy enough to solve in 50 minutes or less, with possible extensions for those who finish Example Problem – Pay Calculator Given a pay rate, overtime rate and hours worked in a week, determine the weekly pay. As an extension, take out taxes based on a graduated income tax.

5 Transition into File I/O
Utilized existing problems from UCF High School Contest Example Problem – Subtract Given a sequence of four integers ( ) Create a new sequence between successive terms, using wrap-around ( for the given example) Continue doing so until the sequence is constant. Output each iteration of this algorithm for several input cases.

6 Grading Issues Formally having students turn in these problems each week creates a large grading load. Instead, require each pair of students to turn in two of the assignments during the semester for a grade, but don’t tell the students in advance who will be doing so, so that each group works earnestly during the allotted class time. At the introductory level, if students haven’t yet solved the problem during class, post input and output files to aid their development.

7 Motivation without Grades
Naturally, students liked racing with classmates during the 50 minutes on Friday. One submission of the 2 or 3 received each week would be chosen to be posted as the class solution. Students got excited when I chose their submission. In , I briefly mentioned the things they did well in their program (style-wise) that make me select their code. Manageable, well-defined problems with simply formed answers (problems programming contests promote) seemed to motivate students at this level, independent of grades.

8 Advanced Students Since a few students in this course had prior programming experience, these students were given separate “challenge” problems. Challenge – to create interesting problems for these students without requiring more advanced formal algorithms. Example Problem – Array Sum Given an integer array (up to size 1 million), are there a set of consecutive terms that add up to exactly half of the sum of the elements of the array. Brute force solution is O(n2), which takes too much time on an array of size 1 million. Forces students with experience to search for O(n) solution.

9 Evidence of Efficacy Student responses in COP 3223 vs. COP 3223H in faculty evaluation surveys (Fall 2010):

10 Evidence of better learning
Final Exam grades (same exam) for both COP 3223 and COP 3223H (Spring 2011):

11 Student Survey Data

12 Programming Team Recruitment
One student out of the 41 is currently on UCF’s Programming Team. Three more students out of the 41 have been motivated to try out for the team this upcoming August.

13 Student Comments They coincided with the work, however at times they did prove to be troublesome. I understand that I struggled a ton in your class, so sometimes I felt as though the problems were too difficult at points. Furthermore, most of them took more than the actual time in class to complete. However, I did attempt to complete some fully outside of class when I had the time. The Friday problems created an instance which would allow the user, or student to be more exact, to actually put in practice and learn through personal experience what was defined in class. When compared to the other components of the course, the Friday problems were the most effective at illustrating the course material. I thought the Friday questions were interesting and stimulating as you had different ones for different levels of programmers.   I would say that it had great effect for me personally to motivate me to program more outside of the class. It helped the concepts to stick more in my mind and for me to get hands on experience with what I was learning. I'm not sure how much my opinion really counts since I'm not really an "introductory student," but I pretty much only came to classes on Fridays because the Friday problems motivated me and made me really want to come to class.

14 Student Comments When I first heard about the Friday problems in the beginning of the semester, I thought it was a really cool idea and looked forward to it. I didn't really view it as a "contest," but just a personal challenge/programming problem to solve, similar to the programming assignments we had for homework, except bite-size. Much of the difficulty of the Friday problems was in devising, rather than implementing, a solution. In terms of coding, we were never expected to use any techniques that we had never seen before or were beyond our scope of comprehension. Rather, we had to figure out how we could use techniques we were already comfortable with is a slightly nuanced way to solve a specific problem. The Friday problems made it much easier to learn the material by actually continuing to program.  If a problem arose, the professor was right there to look at our program or we could use our group to debug.  That was much more helpful than staring at our program for hours hopelessly looking for errors.   The Friday problems really kept me feeling involved in the class, and for that reason I was more interested in the course material.  Unlike in other courses where students are only expected to take notes during class and complete assignments for homework, the Friday problems gave me an opportunity to discuss and utilize the material in class while working on a practical problem with a partner.  I believe this type of interaction creates interest and prevents lectures from becoming too routine. 

15 Student Comments The individual assignments create interest to a certain extent because they are challenging and stimulating.  However, the Friday problems make use of the additional stimulation that comes from listening to the ideas of other people and learning from your classmates, which is an invaluable yet underutilized tool in many classes.  Additionally, I believe the Friday problems kept everyone, including myself, from getting rusty on the material between assignments.  Overall, I believe the Friday problems really go hand in hand with the other components of the course.  In my opinion, the level of interest they create is greater than that of the programming assignments because of the peer to peer and peer to teacher interaction, and on par with that of the group project.  Personally, I was not very interested in the Friday Problems, probably because I found the normal ones too easy but the "challenge" one's too difficult, and I thought that doing problems was unnecessary because one could simply read and understand the material without practice. I have since reversed my opinion on that after completing  Java section and realizing what a better programmer it made me. Now the idea of it seems rather interesting, though I did not entirely feel as if it was a "tournament" and perhaps that would help?

16 Limitations of Data COP 3223H only has Honors students, while, COP 3223 pulls from the whole UCF student population. Naturally, Honors students will score better than the whole student population. In general, all small courses, regardless of whether they are honors courses, tend to rate professors better than large courses. Data was only pulled after the fact. When both courses were offered in parallel, no formal plans were made to study the differences between the two.

17 Limitations of Survey Data
Conducted over well after the completion of the course. Students’ memory may not be perfect. Resulted in 13 students out of 41 responding. This pool of 13 isn’t randomly selected. Since the survey was done over , responses were known not to be anonymous, which may compromise their validity.

18 Websites With Friday Problems

19 Lessons Learned Most students have laptops – these can be utilized when you are not scheduled in a lab room at all. Students working in pairs (in real time during class) is very beneficial. So long as the group is reasonable, students bounce ideas off each other and both benefit from the experience. It’s important to make each week’s problems only slightly harder than the week before. Students lose interest if the problems appear to be beyond their capability. Posting input and output files for introductory students provides a great way for them to learn about thorough testing.


Download ppt "Using a Programming Contest Format to Excite Introductory Students"

Similar presentations


Ads by Google