Introductory Programming Active Learning Activities - PowerPoint PPT Presentation

View by Category
About This Presentation
Title:

Introductory Programming Active Learning Activities

Description:

Active Learning Activities. Keith J. Whittington. Rochester ... Active Learning Theory. If you get students: Talking, listening, and writing about the subject ... – PowerPoint PPT presentation

Number of Views:162
Avg rating:3.0/5.0
Slides: 63
Provided by: admi706
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Introductory Programming Active Learning Activities


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

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

3
My Basic Premises
  • Active learning is good
  • Active learning exercises supplement the lecture,
    not replace it
  • Speak less, do more

4
Active Learning Goals
  • Reflect on current knowledge
  • Deepen understanding
  • Critical thinking
  • Build confidence

5
Reflective Learning
  • Use activities to promote student critical
    reflection on their knowledge
  • Ask WHY not how

6
Design for Significant Learning
Lecture
Reflective Activity
In-class Activity
HW Assignment
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

8
Getting Started
  • Start with low-risk activities
  • Reject activities that are uncomfortable
  • Build your toolbox and confidence
  • Dont give up
  • Some things will work, some wont

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

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

11
Try and Try Again
Try Activity
Get Feedback
Revise
12
Icebreakers
  • Purpose
  • Get students talking and sharing
  • Sets the tone for the entire quarter
  • Examples
  • Interview
  • Lies

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

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

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

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 teams answers when finished
  • One person will explain answer to the class

17
What is the purpose of a constructor?
18
What is the purpose of a mutator?
19
Why are attributes defined as private?
20
Types of Questions
  • Ask questions that require thought
  • Ask why (conceptual knowledge)
  • Cover how questions in lecture
  • Done after practice with topics

21
Focus
  • Emphasize Why, instead of How
  • Do after they have sufficient practice on the
    topic

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

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.

24
  • List the steps required to create a GUI
    application that displays a button.

25
  • List the steps required to have your program
    react to a button being pressed.

26
Types of Questions
  • Questions that have multiple answers
  • Use for programming techniques that require
    multiple steps
  • Done after practice with topics

27
Purpose
  • Quickly dump ideas
  • Reflect on required steps
  • Build self-confidence
  • Demonstrates that
  • No one remembers everything
  • Groups usually remember everything

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

29
Benefits (Shown to Students)
  • Learn from each other
  • The answer doesnt 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

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

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

32
What are user actions called in GUI programs?
33
What is an event?
34
What type of event is created when a button is
pressed?
35
What are the 3 objects used to react to an event?
36
What is a source object?
37
What is a listener object?
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

39
Example 1
  • public class Example1
  • public class method1()
  • System.out.println("Hi")
  • Example1.java3 '' expected
  • public class method1()
  • Example1.java7 '' expected
  • 2 errors

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.java8 variable a might not have been
    initialized
  • b a 12
  • 1 error

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

42
Rapid Programming
  • Roles
  • Functional class writer
  • Test class writer
  • Spokesperson
  • Change roles for each problem

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

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

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

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

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

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

49
Purpose
  • Easier to visualize objects
  • Shows areas of misunderstanding
  • Errors naturally occur that they solve
  • Demonstrate reasons for OOP concepts

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 theyve ever done

51
Group Code
  • Used for difficult concepts
  • Difficult for one person to do alone
  • Used after extensive practice with topic
  • Brainstorm a solution

52
Procedure
  • Each group given a different problem
  • Each group works on different aspect of a common
    code design
  • Each group writes solution on the board
  • Group rep. comes to board and explains solution

53
Group Code - Inheritance
54
Group Code - Exercise
  • Given the method signature
  • public Employee aMethod(Person p)
  • Show all possible ways that this method can be
    called and how you can return the object that is
    passed to the method.

55
public Employee aMethod(Person p)
  • Person p
  • Employee e
  • SalaryEmployee se
  • HourlyEmployee he
  • aMethod(p)
  • aMethod(e)
  • aMethod(se)
  • aMethod(he)
  • if(p instanceof Employee)
  • return (Employee)p

56
Results
  • Observe students learn
  • Subsequent groups come armed with an erasure

57
Classroom Code - Inheritance
  • Each group given specifications for their class
  • Each person assigned a role
  • Have to interact with other groups
  • Code inherits from other groups

58
Student Procedure
  • Create code that inherits from another group
  • Each member has unique role
  • Get inherited values
  • Code attributes, accessors, and mutators
  • Code constructors (multi-arg and default)

59
Classroom Code - Details
  • Multi-arg constructors get values for all
    attributes (including inherited)
  • Super class constructor called with inherited
    values
  • Instructor has the ultimate super class
  • Student send code to instructor
  • Compile all files
  • Have teams correct errors and resubmit
  • At some point draw a UML diagram to show its
    purpose (ask students who they inherit from)
  • Run a test program that creates an object of each
    class and displays the values of all attributes

60
Sample
  • Class Name
  • Team2
  • Inherit from
  • Team1
  • Variables
  • int iT2
  • String sT2

61
Multiple Inheritance
62
Results
  • Groups communicate with groups
  • Discover inheritance complexity
  • Students suggest drawing UML diagram
  • Entire class engaged debugging the code
About PowerShow.com