1 / 62

Introductory Programming Active Learning Activities

Introductory Programming Active Learning Activities . Keith J. Whittington Rochester Institute of Technology kjw@it.rit.edu This material is partially based upon work supported by the National Science Foundation under Award No. DUE-0442987. Active Learning Theory. If you get students:

emily
Télécharger la présentation

Introductory Programming Active Learning Activities

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introductory Programming Active Learning Activities Keith J. Whittington Rochester Institute of Technology kjw@it.rit.edu This material is partially based upon work supported by the National Science Foundation under Award No. DUE-0442987 2006 Whittington Workshop - DePaul

  2. Active Learning Theory • If you get students: • Talking, listening, and writing about the subject • Sharing answers • Teaching each other • Solving problems collectively • It helps them think critically, and • Deepens their knowledge 2006 Whittington Workshop - DePaul

  3. My Basic Premises • Active learning is good • Active learning exercises supplement the lecture, not replace it • Speak less, do more 2006 Whittington Workshop - DePaul

  4. Active Learning Goals • Reflect on current knowledge • Deepen understanding • Critical thinking • Build confidence 2006 Whittington Workshop - DePaul

  5. Reflective Learning • Use activities to promote student critical reflection on their knowledge • Ask WHY not how 2006 Whittington Workshop - DePaul

  6. Design for Significant Learning Lecture Reflective Activity HW Assignment In-class Activity 2006 Whittington Workshop - DePaul

  7. Every Main Topic • Lecture (What)– basic information • In-class activity (How)– immediate practice • HW (Practice) – harder application of topic • Reflection (Why) – critical thinking & deepen knowledge 2006 Whittington Workshop - DePaul

  8. Getting Started • Start with “low-risk” activities • Reject activities that are uncomfortable • Build your toolbox and confidence • Don’t give up • Some things will work, some won’t 2006 Whittington Workshop - DePaul

  9. Activities - Low to High Risk • Icebreakers • Paired Programming • Group Questions • Code Analysis / Debugging • Think-Pair-Share • Rapid Programming • Group code • Role Playing • Classroom Code 2006 Whittington Workshop - DePaul

  10. Activity Steps • Define your objective • Design the activity • Tell students what to do • Explain why you are doing it • Display the steps to the class • Get student feedback • Modify the exercise for next time 2006 Whittington Workshop - DePaul

  11. Try and Try Again Try Activity Revise Get Feedback 2006 Whittington Workshop - DePaul

  12. Icebreakers • Purpose • Get students talking and sharing • Sets the tone for the entire quarter • Examples • Interview • Lies 2006 Whittington Workshop - DePaul

  13. Paired Programming • Each person has a different role: • Driver – writes the code • Navigator – helps debug, find errors, make suggestions, etc • Switch roles at EVERY numbered step • Keeps them engaged • Answer questions throughout the exercise • Can emulate “real” programming techniques such as compile and run often 2006 Whittington Workshop - DePaul

  14. Paired Programming • In-class activity • Purpose: • Code more efficiently • Naturally discuss questions before asking for help • Questions become deeper • Help recognize errors quicker • Teach each other • Must switch roles frequently 2006 Whittington Workshop - DePaul

  15. Group Questions • Forces students to: • Talk to each other • Share ideas • Work cooperatively on a difficult question • Teach each other • Learn from each other • Benefits • Lessens feelings of intimidation • Deepens understanding • Critically think 2006 Whittington Workshop - DePaul

  16. Group Questions – Enhancing • One person write a sentence • Next person write a sentence • Add/improve previous statements • Rules: • All members need to write a statement • Vocalize your answer to the group • Discuss the team’s answers when finished • One person will explain answer to the class 2006 Whittington Workshop - DePaul

  17. What is the purpose of a constructor? 2006 Whittington Workshop - DePaul

  18. What is the purpose of a mutator? 2006 Whittington Workshop - DePaul

  19. Why are attributes defined as private? 2006 Whittington Workshop - DePaul

  20. Types of Questions • Ask questions that require thought • Ask “why” (conceptual knowledge) • Cover “how” questions in lecture • Done after practice with topics 2006 Whittington Workshop - DePaul

  21. Focus • Emphasize “Why”, instead of “How“ • Do after they have sufficient practice on the topic 2006 Whittington Workshop - DePaul

  22. Group Questions – Round Robin • Take turns doing the following: • Write one answer to the question • Tell group your answer • Pass paper to next person • Continue until you run out of ideas • You can “pass” 2006 Whittington Workshop - DePaul

  23. List the steps required to create a java application. Do not use any java syntax, just use common words to describe each required process. 2006 Whittington Workshop - DePaul

  24. List the steps required to create a GUI application that displays a button. 2006 Whittington Workshop - DePaul

  25. List the steps required to have your program react to a button being pressed. 2006 Whittington Workshop - DePaul

  26. Types of Questions • Questions that have multiple answers • Use for programming techniques that require multiple steps • Done after practice with topics 2006 Whittington Workshop - DePaul

  27. Purpose • Quickly dump ideas • Reflect on required steps • Build self-confidence • Demonstrates that: • No one remembers everything • Groups usually remember everything 2006 Whittington Workshop - DePaul

  28. Think-Pair-Share • Listen to the question • Think about your answer • Share your answer to the person next to you • Be prepared to answer question when called upon 2006 Whittington Workshop - DePaul

  29. Benefits (Shown to Students) • Learn from each other • The answer doesn’t have to be yours • Verbalizing enhances learning • Forces me to wait longer • Gives you a chance to think about the question • Participating has to be less boring 2006 Whittington Workshop - DePaul

  30. Tell Students • If peer has best answer, claim it as your own • If your answer is “dumb”, blame your partner • Not knowing an answer is okay 2006 Whittington Workshop - DePaul

  31. Think-Pair-Share • Purpose • Encourage class participation for all students • Provide students with time to think • Minimize competitive environment • Minimize student embarrassment • Students sharing/teaching students • Leads into next topic • Displaying questions is very beneficial 2006 Whittington Workshop - DePaul

  32. What are user actions called in GUI programs? 2006 Whittington Workshop - DePaul

  33. What is an event? 2006 Whittington Workshop - DePaul

  34. What type of event is created when a button is pressed? 2006 Whittington Workshop - DePaul

  35. What are the 3 objects used to react to an event? 2006 Whittington Workshop - DePaul

  36. What is a source object? 2006 Whittington Workshop - DePaul

  37. What is a listener object? 2006 Whittington Workshop - DePaul

  38. Group Code Analysis • Wait until the specific code is shown in class • Describe the following about the error message: • What line does the error occur • What is the problem • How do you fix it • Make sure each of you understand • Prepare to explain this to the class 2006 Whittington Workshop - DePaul

  39. Example 1 public class Example1 { public class method1() { System.out.println("Hi"); } } Example1.java:3: '{' expected public class method1() ^ Example1.java:7: '}' expected } ^ • 2 errors 2006 Whittington Workshop - DePaul

  40. Example 9 public class Example9 { public static void main(String[] args) { int a; int b; b = a + 12; System.out.println("b = " + b); } } Example9.java:8: variable a might not have been initialized b = a + 12; ^ 1 error 2006 Whittington Workshop - DePaul

  41. Purpose • Force students to look at compiler errors • Learn what compiler errors mean • Show that the compiler gets confused • Develop troubleshooting skills • Demonstrate that the compiler helps you • Working together on complex problems 2006 Whittington Workshop - DePaul

  42. Rapid Programming • Roles • Functional class writer • Test class writer • Spokesperson • Change roles for each problem 2006 Whittington Workshop - DePaul

  43. Procedure • Split into groups of 3 and hand out templates • Each card has a role that rotates on every turn • Functional class writer • Test class writer • Spokesperson • Show description of requirements • # and types of parameters • Return value • Put templates on board • Choose a group • Have spokesperson tell the answer 2006 Whittington Workshop - DePaul

  44. Problem 1 • Create a class with a method that: • Accepts 1 integer parameter • Adds 20 to the parameter • Returns the result of the calculation • Create a test class that prints the result of the calculation 2006 Whittington Workshop - DePaul

  45. Problem 4 • Create a class with a method that: • Accepts 1 double and 2 integer parameters • Adds the 2 integer parameters then divides the sum by the double parameter • Returns the result of the calculation • Create a test class that prints the result of the calculation 2006 Whittington Workshop - DePaul

  46. Purpose • Deepen understanding through repetition • Break the problem into smaller pieces • Spokesperson • overall understanding • Test class coder • process return values and send values • Functional class writer • get parameters and return values • Rotating gets all involved in different areas 2006 Whittington Workshop - DePaul

  47. Role Playing • Act out a HW assignment • Class determines the objects • Each group becomes an object • Discuss role with each individual team • Run through the program 2006 Whittington Workshop - DePaul

  48. Classroom Procedure • User class group starts • Create an object • Get user input for each attribute • Set the attribute in the object • Add object to collection • Get each object out of the collection • Get attributes • Ask class what went wrong 2006 Whittington Workshop - DePaul

  49. Purpose • Easier to visualize objects • Shows areas of misunderstanding • Errors naturally occur that they solve • Demonstrate reasons for OOP concepts 2006 Whittington Workshop - DePaul

  50. Results • Some students said it was the single most important activity, and that they now understood OOP • Some students felt it was the most insulting and demeaning activity they’ve ever done 2006 Whittington Workshop - DePaul

More Related