introductory programming active learning activities
Download
Skip this Video
Download Presentation
Introductory Programming Active Learning Activities

Loading in 2 Seconds...

play fullscreen
1 / 62

introductory programming active learning activities - PowerPoint PPT Presentation


  • 253 Views
  • Uploaded on

Introductory Programming Active Learning Activities . Keith J. Whittington Rochester Institute of Technology [email protected] 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:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'introductory programming active learning activities' - emily


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introductory programming active learning activities

Introductory Programming Active Learning Activities

Keith J. Whittington

Rochester Institute of Technology

[email protected]

This material is partially based upon work supported by the National Science Foundation under Award No. DUE-0442987

2006 Whittington Workshop - DePaul

active learning theory
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

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

2006 Whittington Workshop - DePaul

active learning goals
Active Learning Goals
  • Reflect on current knowledge
  • Deepen understanding
  • Critical thinking
  • Build confidence

2006 Whittington Workshop - DePaul

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

2006 Whittington Workshop - DePaul

design for significant learning
Design for Significant Learning

Lecture

Reflective Activity

HW Assignment

In-class Activity

2006 Whittington Workshop - DePaul

every main topic
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

getting started
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

activities low to high risk
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

activity steps
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

try and try again
Try and Try Again

Try Activity

Revise

Get Feedback

2006 Whittington Workshop - DePaul

icebreakers
Icebreakers
  • Purpose
    • Get students talking and sharing
    • Sets the tone for the entire quarter
  • Examples
    • Interview
    • Lies

2006 Whittington Workshop - DePaul

paired programming
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

paired programming14
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

group questions
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

group questions enhancing
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

what is the purpose of a constructor

What is the purpose of a constructor?

2006 Whittington Workshop - DePaul

what is the purpose of a mutator

What is the purpose of a mutator?

2006 Whittington Workshop - DePaul

why are attributes defined as private

Why are attributes defined as private?

2006 Whittington Workshop - DePaul

types of questions
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

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

2006 Whittington Workshop - DePaul

group questions round robin
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

slide23
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

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

2006 Whittington Workshop - DePaul

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

2006 Whittington Workshop - DePaul

types of questions26
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

purpose
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

think pair share
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

benefits shown to students
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

tell students
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

think pair share31
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

what are user actions called in gui programs
What are user actions called in GUI programs?

2006 Whittington Workshop - DePaul

what is an event
What is an event?

2006 Whittington Workshop - DePaul

what are the 3 objects used to react to an event
What are the 3 objects used to react to an event?

2006 Whittington Workshop - DePaul

what is a source object
What is a source object?

2006 Whittington Workshop - DePaul

what is a listener object
What is a listener object?

2006 Whittington Workshop - DePaul

group code analysis
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

example 1
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

example 9
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

purpose41
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

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

2006 Whittington Workshop - DePaul

procedure
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

problem 1
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

problem 4
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

purpose46
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

role playing
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

classroom procedure
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

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

2006 Whittington Workshop - DePaul

results
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

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

2006 Whittington Workshop - DePaul

procedure52
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

2006 Whittington Workshop - DePaul

group code inheritance

Person

Employee

SalaryEmployee

HourlyEmployee

Group Code - Inheritance

2006 Whittington Workshop - DePaul

group code exercise
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.

2006 Whittington Workshop - DePaul

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;

Person

Employee

SalaryEmployee

Hourly Employee

public Employee aMethod(Person p);

2006 Whittington Workshop - DePaul

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

2006 Whittington Workshop - DePaul

classroom code inheritance
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

2006 Whittington Workshop - DePaul

student procedure
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)

2006 Whittington Workshop - DePaul

classroom code details
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

2006 Whittington Workshop - DePaul

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

2006 Whittington Workshop - DePaul

multiple inheritance

Group 1

Group 2

Group 3

Group 4

Group 6

Group 5

Group 8

Group 7

Group 9

Multiple Inheritance

2006 Whittington Workshop - DePaul

results62
Results
  • Groups communicate with groups
  • Discover inheritance complexity
  • Students suggest drawing UML diagram
  • Entire class engaged debugging the code

2006 Whittington Workshop - DePaul

ad