Title: Questions to Enhance Active Learning in Computer Science Instruction
1Questions to Enhance Active Learning in Computer
Science Instruction
J. Philip East Mark Fienup Computer Science
Department University of Northern Iowa
2Introduction
- Im a colleaguelets talk
- Initial plan was to focus on examples, but ...
- The plan is
- discuss rationale, educational goals, etc.
- generalize ideas about questioning for various
goals (examples included but well spend little
time on them) - discuss process suggestions
- Referring to programming fluency courses
3Motivation Rationale
- Reduce the amount of lecturing (demonstration
isnt much better) - Attempt to determine student understanding of the
material being considered - Questioning can, but does not always, result in
students actively engaged in the content it is
not a panacea
4Some Instructional Goals
- Provide practice or demonstration of skill
- Connect to student experience
- Motivate/justify content
- Determine student understanding
- Create cognitive dissonance (!)
- Knowledge recall (?)
- (and others ?)
5Skill Practice or Demonstration What, How, etc.
- Goal is to provide students with practice or to
have them demonstrate competence - Can do so via
- board work
- oral how to questions
- quizzes (grade in class)
- in-lab tasks
- Programming
- trace the given code
- revise given code to ...
- produce code to ...
- develop test data for ...
- design a module to
- Fluency
- use multiple OSs
- use new applications
- identify relevant technical social features of
... (scenario)
6Skill Practice or Demonstration Question
Examples Programming
- Use the IDE (or OS editor) to copy, compile,
execute a program - Debug (syntax errors in) a program
- What does the given code do? three levels
trace description of process in words rather
than code or pseudo-code general statement - Debug (logic errors in) a given code segment
- Document a given module, i.e., purpose (dont
repeat code), preconditions, post conditions,
caveats, etc. - Develop a test data suite for a given problem or
code - Provide code for a given algorithm
- Determine the data representation for a given
problem i.e., ADT or class usage and/or
definitions - Develop an algorithm for a given task i.e., a
small module - What tasks are needed to solve ? Does order
matter? Any repetition?
7Skill Practice or Demonstration Question
Examples Fluency
- Create a directory and copy a file to it from
across a network - Set network, mail, etc. preferences
- Plan an e-mail organization. Implement it.
Report on the implementation. - Independently (to extent possible) extend skill
to - unknown OS
- different brand of known application (e.g.,
Lotus suite vs MS Office vs StarOffice) - unknown feature(s) of a known application (e.g.,
in word processing tables, mail merge, drawing,
) - unknown application
- Customize window content/appearance, preferences,
etc. of an application - Identify stakeholders in a given societal issue
(and their potential conflicts of interest and
biases) - Suggest a solution to a given societal issue
(arguing pros cons)
8Connect to Student Experience
- Goal relate current content to expected prior
student understanding - Can do so via
- selection of conceptually familiar tasks
reminder questions - planned progression of topics reminder
questions - discussion of experiences
- advance organizers (course-level and topic level)
9Connect to Student Experience
- Programming Examples
- How would you ask a question to see if both of
two situations were true? If either of the two
were true? If neither were true? - What does the 2 in 1,298 mean? The 1 in
0001000? - How you sort a set of numbers listed on
individual slips of paper? - What happens when values are not explicitly
initialized? - Fluency Examples
- What are computers used to do?
- What is an icon?
- Why might someone care if the grocery store
recorded your purchases? - Have you ever been someplace you didnt want you
mother, boy/girlfriend to know?
10Motivate or Justify Content
- Goal enhance student involvement with current
content - Can do so via
- determining and following student preferences
- organizing content order
- examples selection
- discussion of experiences
- requests to justify a choice
11Motivate or Justify Content
- Programming Examples
- What would you do if a program needed to do the
same thing twice? Three times? 100 times? - How is 10 cents represented in our programming
language? - How does an optimist plan to build the Great Wall
of China? - How do you know (or do) ?
- Fluency Examples
- When did Web usage become widespread? What will
be the next such ubiquitous application? How
will you learn it? - Have you ever been told that the computer makes
us do it this way?
12Determine Student UnderstandingWhat, How, etc.
- Goal is to get inside students heads (see
what/how they understand) - More general than skill practice
- Can do so via
- oral questions
- small group tasks
- 5-minute papers
- Programming
- statement semantics
- run-time environment
- data representation
- design considerations
- testing test data
- ...
- Fluency
- operation of CPU, Internet, viruses, search
engines, - issue plusses and minuses
- risk analyses
- ...
13Determine Student UnderstandingQuestion Examples
Programming
- Describe the run-time environment at a given
point in a program. - Where would you look to correct the error
message, stack overflows heap? - What machine code does the same thing as a for
loop? - Diagram the form and content of data stored as a
result of the following code being executed
e.g., linked list search insertion - What test data should be used for the given task?
- Produce code to e.g., dangling else situation,
complex condition, if-else with some common code,
dual condition while loop - Refactor given code e.g., to make it more
readable, to enhance cohesion - Provide data representation for
- Critique the following e.g., code, design,
data representation, test data - Describe a particular ADT or class discussing its
operations and use
14Determine Student UnderstandingQuestion Examples
Fluency
- Diagram a computer and describe the machine cycle
- How does a Web page get from across the country
to you? - How is the Web like a database? How is it
different? - How/when is an e-mail message at risk for
unintended access? - Describe data representation of e.g.,
integers, fractional values, sound, pictures - Who are the stakeholders with respect to routine
monitoring of electronic communication by the
government? What are their concerns? - What are the basic (machine-level) capabilities
of computers? - What are the general capabilities of computers?
any problem for which we can prepare a digital
representation and appropriate manipulations - What can computers not do? Why?
15Create Cognitive Dissonance
- Goal surprise students
- Programming Examples
- What is 0.1 (base 10) in binary?
- Write a program that repeatedly adds 1,000 to a
total and displays the result. What happens? - Sort 1,000 items with bubble sort. Sort same
items in a direct access file. What happens? - Fluency Examples
- What can a computer not do?
- I have a hypothesis long division using pencil
and paper does not teach the concept of division.
explanation. What is wrong with my
hypothesis?
16An AsideReceiving Questions
- I like to address questions that students have
- gives insight about their understanding (if I pay
attention) - other students may have the same question
- at least one student will be paying attention
- But,
- can deflect attention from planned content
- sometimes I rely too heavily on it
17Teaching Process Suggestions
- Read think about questions questioning
- Plan
- Course big ideas, content goals, use of groups,
- Unit initial questions follow up responses
questions - In Class dont hurry, wait think
- Reflect daily, after unit, after course
18Final Thoughts
- Learning is not a spectator sport? Work to get
students actively involved. - If you decide to move in this direction
- Dont go whole hog (take baby steps)
- Be patient with yourself
- Dont expect immediate success
- Thank you