Using a Programming Contest Format to Excite Introductory Students

Slides:



Advertisements
Similar presentations
Writing Tips.  With many distractions outside of school, succeeding in the classroom can be difficult, but a student can improve the way he/she learns.
Advertisements

College Algebra Course Redesign Southeast Missouri State University.
POGIL vs Traditional Lecture in Organic I Gary D. Anderson Department of Chemistry Marshall University Huntington, WV.
Intro to CIT 594
Discussion examples Andrea Zhok.
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
Recitation Week #1 Chem Queens College Spring 2010.
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
PENN S TATE © T. W. S IMPSON PENN S TATE © T. W. S IMPSON Feedback on Learning Diary 7 Timothy W. Simpson Professor of Mechanical & Industrial Engineering.
网络课程的小组学习项目设计 Group-Project Design for An Online Course Feng-Qi Lai, Ph.D. Indiana State University.
Student Preferences For Learning College Algebra in a Web Enhanced Environment Dr. Laura J. Pyzdrowski, Pre-Collegiate Mathematics Coordinator Institute.
Personal Reading Procedure P2RThinking Critically P2RThinking Critically Learning Styles Learning Styles How I learn Personally How I learn Personally.
If the music works, it has no real significance just a little background noise for your ears and reading enjoyment.
Intro to CIT 594
Thank you for the kind feedback. I truly do hope you have enjoyed the course and have had a good learning experience. Most people said they found the course.
Student Feedback--Dale Carnegie in the College Classroom Dr. David Urban June 25, 2015.
The Use of Formative Evaluations in the Online Course Setting JENNIFER PETERSON, MS, RHIA, CTR DEPARTMENT OF HEALTH SCIENCES.
Action Research Chantal Smith Liberton Christian School Is Blogging a Useful Tool for Supporting and Monitoring the Personal Reading of my Year 6-8 students?
Things may appear very different in here because every one of my students are different. If you take a look at a “standard classroom” every student works.
DSMA 0393/1414 Comments of Students. Co-requisite Model Student Comments Students were given this request on their final examination: Write a statement.
DSMA 0399 Comments of Past Students. DSMA 0399 Student Comments “Before this class as you probably remember I would not even accept that x or y could.
The Differences College vs. High School. Table of Contents:  12 Major Differences between College and High School  Table: Differences on Student Responsibility.
2008. Data collected from May, June, August, & December program completers in A total of32 students returned the evaluation.
Stacey K. Vargas VMI Department of Physics and Astronomy
All important information will be posted on Blackboard
JavaScript/ App Lab Programming:
Charlton Kings Junior School
*The claim is your topic/main idea of essay
CLOSE Please YOUR LAPTOPS, and get out your note-taking materials.
Teaching for Understanding: What Will It Take?
Online Course Design: Is the Conversation Over?
The use of technology in education
Responsibilities CS 4640 Programming Languages for Web Applications
Part III – Gathering Data
Telling the Whole Story
Announcements Please have a copy of “The Outsiders” by Monday, October 16, It is mandatory. Friday (10/13), periods 2, 3, and 4 will have class.
September 27 – Course introductions; Adts; Stacks and Queues
Computing in the Classroom and best practices to improve gender diversity equity: Professional development for adjunct faculty Professor Younge’s Experience.
We’ll be spending minutes talking about Quiz 1 that you’ll be taking at the next class session before you take the Gateway Quiz today.
Stack Data Structure, Reverse Polish Notation, Homework 7
Individual Science project
Measuring Polygon Side Lengths
Design and Implementation of Software for the Web
Understanding the student journey – from pre-arrival to graduation
Pair Programming in the Classroom
Mira Karac Cuyahoga Community College League of Innovations 2010
Activities and Technology in the Classroom
MA Fall 2016 Instructor: Matt Weaver Office: MATH 615
CS 139 – Programming Fundamentals
The Real Deal with Peggy Pima
Coding Concepts (Basics)
Jeff Offutt SWE 637 Software Testing
Friday Fun: A Riddle! Versatile teaching tool You already do it
Final exam project guidance
Responsibilities CS 4640 Programming Languages for Web Applications
What do we know (page 1)? Define the word "Taxonomy." (Knowledge)
Lectureless Introduction to Biochemistry
What are our Goals. What do we want to get from PD
CS 2530 Intermediate Computing Dr. Schafer
ADVANCED PLACEMENT CALCULUS
CMSC201 Computer Science I for Majors Final Exam Information
BIT 115: Introduction To Programming
Intro to CIT 594
Intro to CIT 594
New country and Varied Cultures
Teaching Physics Labs.
Software Development Techniques
CS a-spring-midterm2-survey
CS a-spring-midterm-survey
MA Fall 2018 Instructor: Hunter Simper Office: Math 607
Presentation transcript:

Using a Programming Contest Format to Excite Introductory Students Arup Guha dmarino@cs.ucf.edu May 27, 2011

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)

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”.

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.

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

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.

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 email, 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.

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.

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

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

Student Survey Data

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.

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.

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. 

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 http://codingbat.com/'s 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?

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.

Limitations of Survey Data Conducted over email 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 email, responses were known not to be anonymous, which may compromise their validity.

Websites With Friday Problems http://www.cs.ucf.edu/courses/cop3223/fall2010/honors/fridayprobs/ http://www.cs.ucf.edu/courses/cop3223/spr2011/honors/fridayprobs/

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.