Introductory programming active learning activities
Download
1 / 62

Introductory Programming Active Learning Activities - PowerPoint PPT Presentation


  • 253 Views
  • Updated On :

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:

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 l.jpg

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


Active learning theory l.jpg
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 l.jpg
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 l.jpg
Active Learning Goals

  • Reflect on current knowledge

  • Deepen understanding

  • Critical thinking

  • Build confidence

2006 Whittington Workshop - DePaul


Reflective learning l.jpg
Reflective Learning

  • Use activities to promote student critical reflection on their knowledge

  • Ask WHY not how

2006 Whittington Workshop - DePaul


Design for significant learning l.jpg
Design for Significant Learning

Lecture

Reflective Activity

HW Assignment

In-class Activity

2006 Whittington Workshop - DePaul


Every main topic l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
Try and Try Again

Try Activity

Revise

Get Feedback

2006 Whittington Workshop - DePaul


Icebreakers l.jpg
Icebreakers

  • Purpose

    • Get students talking and sharing

    • Sets the tone for the entire quarter

  • Examples

    • Interview

    • Lies

2006 Whittington Workshop - DePaul


Paired programming l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg

What is the purpose of a constructor?

2006 Whittington Workshop - DePaul


What is the purpose of a mutator l.jpg

What is the purpose of a mutator?

2006 Whittington Workshop - DePaul


Why are attributes defined as private l.jpg

Why are attributes defined as private?

2006 Whittington Workshop - DePaul


Types of questions l.jpg
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 l.jpg
Focus

  • Emphasize “Why”, instead of “How“

  • Do after they have sufficient practice on the topic

2006 Whittington Workshop - DePaul


Group questions round robin l.jpg
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 l.jpg

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 l.jpg

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

2006 Whittington Workshop - DePaul


Slide25 l.jpg

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

2006 Whittington Workshop - DePaul


Types of questions26 l.jpg
Types of Questions button being pressed.

  • Questions that have multiple answers

  • Use for programming techniques that require multiple steps

  • Done after practice with topics

2006 Whittington Workshop - DePaul


Purpose l.jpg
Purpose button being pressed.

  • 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 l.jpg
Think-Pair-Share button being pressed.

  • 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 l.jpg
Benefits (Shown to Students) button being pressed.

  • 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 l.jpg
Tell Students button being pressed.

  • 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 l.jpg
Think-Pair-Share button being pressed.

  • 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 l.jpg
What are user actions called in GUI programs? button being pressed.

2006 Whittington Workshop - DePaul


What is an event l.jpg
What is an event? button being pressed.

2006 Whittington Workshop - DePaul


What type of event is created when a button is pressed l.jpg
What type of event is created when a button is pressed? button being pressed.

2006 Whittington Workshop - DePaul


What are the 3 objects used to react to an event l.jpg
What are the 3 objects used to react to an event? button being pressed.

2006 Whittington Workshop - DePaul


What is a source object l.jpg
What is a source object? button being pressed.

2006 Whittington Workshop - DePaul


What is a listener object l.jpg
What is a listener object? button being pressed.

2006 Whittington Workshop - DePaul


Group code analysis l.jpg
Group Code Analysis button being pressed.

  • 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 l.jpg
Example 1 button being pressed.

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 l.jpg
Example 9 button being pressed.

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 l.jpg
Purpose button being pressed.

  • 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 l.jpg
Rapid Programming button being pressed.

  • Roles

    • Functional class writer

    • Test class writer

    • Spokesperson

  • Change roles for each problem

2006 Whittington Workshop - DePaul


Procedure l.jpg
Procedure button being pressed.

  • 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 l.jpg
Problem 1 button being pressed.

  • 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 l.jpg
Problem 4 button being pressed.

  • 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 l.jpg
Purpose button being pressed.

  • 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 l.jpg
Role Playing button being pressed.

  • 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 l.jpg
Classroom Procedure button being pressed.

  • 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 l.jpg
Purpose button being pressed.

  • Easier to visualize objects

  • Shows areas of misunderstanding

  • Errors naturally occur that they solve

  • Demonstrate reasons for OOP concepts

2006 Whittington Workshop - DePaul


Results l.jpg
Results button being pressed.

  • 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 l.jpg
Group Code button being pressed.

  • 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 l.jpg
Procedure button being pressed.

  • 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 l.jpg

Person button being pressed.

Employee

SalaryEmployee

HourlyEmployee

Group Code - Inheritance

2006 Whittington Workshop - DePaul


Group code exercise l.jpg
Group Code - Exercise button being pressed.

  • 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 l.jpg

Person p; button being pressed.

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 l.jpg
Results button being pressed.

  • Observe students learn

  • Subsequent groups come armed with an erasure

2006 Whittington Workshop - DePaul


Classroom code inheritance l.jpg
Classroom Code - Inheritance button being pressed.

  • 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 l.jpg
Student Procedure button being pressed.

  • 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 l.jpg
Classroom Code - Details button being pressed.

  • 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 l.jpg
Sample button being pressed.

  • Class Name:

    • Team2

  • Inherit from:

    • Team1

  • Variables:

    • int iT2

    • String sT2

2006 Whittington Workshop - DePaul


Multiple inheritance l.jpg

Group 1 button being pressed.

Group 2

Group 3

Group 4

Group 6

Group 5

Group 8

Group 7

Group 9

Multiple Inheritance

2006 Whittington Workshop - DePaul


Results62 l.jpg
Results button being pressed.

  • Groups communicate with groups

  • Discover inheritance complexity

  • Students suggest drawing UML diagram

  • Entire class engaged debugging the code

2006 Whittington Workshop - DePaul