Dr. Greg Butler
Affiliate Faculty


Favorite Websites:

Association for Computing Machinery, SIG Computer Science Education

IEEE Computer Society

Construx (Software process and Steve McConnell)

The American Association for Adult and Continuing Education

American Educational Research Association

An Awesome Wildland Fire Crew

Fire Situation Reports and Weather

Fire Crew Safety

Research Interests:

Instructional design for teaching programming and software design.  My interests focus on determining the effectiveness of a particular instructional technique as applied to teaching various CS topics.  

Facilitation of system acceptance.  The specific interest is related to identifying those actions by management that are most meaningful to those who must use the system.


Hints for Novices: Successfully Software Coursework
     How to Use Examples
           Habits of Good Learners
           This Sure Helped Me...
     Tutorials for Some Problems


Other Stuff 

A Couple (Of Many) Traits Of 
Good Learners Vs Poor Learners 
As It Applies To Engaging and Using 


Good learner
Poor learner

Self- Monitoring.

 Most students make spontaneous utterances assessing how well they understand the material.

Utterances tend to be more accurate/honest.

Tend to make utterances that indicate when they do not understand something.

Utterances tend to be positive and inaccurate.

In general, utter positive statements, such as “Makes sense”, even though subsequent work indicates this was not true.

Approach to Examples

Most students use examples in problem solving.  How they are used affects the “gain” the student achieves.

Study, Reflect, Use if Stuck

- Good learners tend to read the examples and then try to explain to themselves both what they saw and why the example solution was approached the way it was.

- Good learners tend to try to solve the problem themselves, using the example for help only when they are stuck.

Read, Maximize Analogical Use.

- Poor learners tend to read examples, but do not reflect on the material.

- Poor learners try to maximize the use of examples in their solutions, attempting to copy as much of the example into the solution as possible.


VanLehn, K. (1996).  Cognitive skill acquisition.  Annual Review of Psychology. 1996, 47. p. 513-39  

Return to Index

Good Advice to Apply in Your First Programming Class

     Long ago I needed to learn C very quickly for a specific purpose.  I bought a book by Greg Perry, I don't remember the title, that I used to learn the language.  In it he gave me the piece of advice that I believe has helped me the most.  In general this advice was:

Type in the code examples, do not just read them.  

This is very much like learning a new spoke language.  You would not even dream of just reading a book about the new language and, with no practice, attempt to use it.  You would:

Spoken Language

Programming Language

1.  Read the new words, trying to sound them out.

Type in the code example.

2.  Attend to each new word's meaning.

Closely attend to the syntax as you type
Explain what each line does
Explain how each line relates to its neighbors

3.  Use the new word in a new sentence

Modify the example.  "Play" with the functionality that the example is demonstrating.  (If the purpose of the example is to demonstrate a for loop counting from 1 to 5, change it to count from 5 to 1).

Return to Index

Some Tutorials

This site is primarily a component of a research project.  As a side-benefit, I've shared the notes with my students.   These notes are designed to concisely address some very basic concepts in programming that I observe students having trouble with.  The language used is Java.  These notes by no means represent a complete treatment of  programming concepts, Java, or even a  particular topic.   You are welcome to use it and view the contents.  Please don't be grumpy if things aren't exactly right.


User Notes:



First Introduction

HTML with Sound

Arrays and Named Constants

Second Lesson: Using Named Constants and Multidimensional Arrays

HTML with Sound

PowerPoint show with Sound

Printable Notes in MS Word

Block Scope

A discussion of the scope (usability/life )of variables and identifiers relative to blocks of code (methods, for statements, etc.).

HTML with Sound

PowerPoint show with Sound

Printable Notes in MS Word


First Introduction.  What's a class and related terms

HTML with Sound

Printable Notes in MS Word

Classes - Subclasses and Inheritance

Introduction to creating subclasses from classes, access operators.  Comes with sample code.

HTML with Sound

PowerPoint show with Sound

Printable Notes in MS Word

Return to Index