Managing diversity in introductory programming classes - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Managing diversity in introductory programming classes

Description:

wide range of backgrounds and aptitudes. wide range of programming backgrounds and aptitudes ... Guido van Rossum's Computer Programming For Everybody ... – PowerPoint PPT presentation

Number of Views:17
Avg rating:3.0/5.0
Slides: 34
Provided by: Poul5
Category:

less

Transcript and Presenter's Notes

Title: Managing diversity in introductory programming classes


1
Managing diversity in introductory programming
classes
  • Using Logo as a diagnostic tool
  • John Poulton
  • North East Wales Institute

2
Introduction to Programming
  • The one module in our Level 1 curriculum that the
    students
  • have the most difficulty
  • complain about the most consistently
  • a "weed out" class where only the highly
    successful will endure
  • a "make or break" course which discourages all
    but the best students

3
BSc Computing
  • 2000/2001
  • 44 failure (withdrawals, fail/referrals)
  • 56 success !
  • 35 transferred to BIT / MMC
  • 36 progression
  • 112,000 in lost revenues

4
Student Qualifications - 2000/01
5
Student Age - 2000/01
6
The root of the problem
  • wide range of backgrounds and aptitudes
  • wide range of programming backgrounds and
    aptitudes
  • makes the class boring for some and too
    challenging for others
  • To fix this imbalance
  • set classes !
  • needed to identify members of the class prior to
    starting the module
  • who may potentially need extra help
  • who would benefit from further challenge

7
Diagnostic Tool
  • Aptitude Tests
  • Test programming skills
  • what can they do?
  • what cant they do?
  • what can we do?
  • What language?

8
Choosing a tool
  • Introduce them not to the language itself, but to
    programming itself.
  • We want to introduce them to the exciting ability
    to make the computer do as we want
  • Not overwhelm them with details of a specific
    implementation

9
Hello World
  • The most important thing to realise about
    non-programmers
  • they are not programmers
  • Every programmer is familiar with "Hello, World!"
  • The traditional first program when learning a new
    language
  • Examining this simple program is a good way to
    learn useful things about how we should teach new
    students who have never written a program before

10
C "Hello, World!"
  • include ltiostreamgt
  • int main(int argc, char argv)
  • cout ltlt "Hello, World!\n"
  • return 0
  • This is an overwhelming amount of information for
    the new programmer to deal with, when the goal is
    simply to "make the computer print something

11
Java "Hello, World!"
  • public class HelloWorld
  • public static void main(String args)
  • System.out.println("Hello, World!")
  • the OO bit just adds an additional level of
    complexity

12
C and Java
  • "Don't worry about that, we'll learn what it
    means later."
  • How is this a useful approach to imparting
    knowledge and teaching students?
  • Both these examples are compiled languages
  • This means that we must teach the student how to
    use a compiler before they even see the output of
    their program

13
Computer v Compilers
  • Students often have little understanding of the
    underlying operations of a computer and the
    compiler.
  • Have difficulty conceptualising how the computer,
    the language, and the compiler interact
  • Students' incomplete or faulty mental models of a
    computer and programming syntax and semantics
    cause problems

14
Computer v Students
  • Students tend to anthropomorphise the computer
  • Often they assume a computer will understand
    their incomplete or faulty commands and execute
    them as they understand them, not the way the
    computer is designed to execute them.

15
Compiled v Interpreted
  • So what is a better language for new programmers?
  • Guido van Rossum's Computer Programming For
    Everybody suggests the interpreted language Python

16
Python "Hello, World!"
  • print "Hello, World!
  • However
  • gtgtgt print fred 7
  • Traceback (innermost last)
  • File "", line 1, in ?
  • TypeError illegal argument type for built-in
    operation

17
Logo?
  • Full-featured computer programming language
    derived from LISP
  • A language for learning
  • A tool to teach the process of learning and
    thinking
  • An environment where students assume the role of
    teacher

18
Logo
  • As a teacher, they must
  • understand the knowledge to be taught
  • plan an approach to impart this knowledge
  • break the knowledge into small, understandable
    chunks clearly communicate the knowledge
  • Establish this new knowledge as the foundation
    for future learning
  • Be aware of and build on knowledge that the
    learner already has
  • Respond to the learner's (computer's)
    misunderstandings and errors

19
How did we use Logo
  • As an introduction to the concept of programming,
    and on the thinking processes that Logo
    encourages
  • To attempt to discover programming aptitude
  • Used during induction week
  • 65 BSc , 37 HND students (2001/02)
  • BSc 3 hrs 1 hr test
  • HND 4 hrs 1 hr test

20
How did we use Logo
  • Developed tutorial and series of exercises
  • Simple tasks which require fairly short
    programming solutions
  • Encouraged the use of various language constructs
  • Loops
  • functions
  • parameter passing
  • The tasks examined attention to detail, logical
    ability and capability at comprehending and
    following instructions

21
Sequences
  • forward 50 right 90 forward 50right
    90forward 50right 90forward 50right 90

22
Iteration
  • repeat 4 forward 50 right 90

23
Procedures
  • to squarerepeat 4 forward 50 right 90end

24
Procedures
  • You could draw a flag
  • forward 60squareback 60

25
Further Iteration
  • You could make a circle of squaresrepeat
    12square right 30

26
Procedures
  • to house square forward 50 right
    90 triangleend
  • to trianglerepeat 3 forward 50 left 120end

27
Passing Values into Procedures
  • to square sizerepeat 4 forward size right
    90end
  • square 10
  • square 20 etc

28
Recursion
  • to design clearscreen right 30 polyspi 5
    120end
  • to polyspi size angleif size gt 205
    stop forward size right angle polyspi
    size5 angle.12end

29
Results
30
Results
  • Results were used to enable setting of groups
    after discussion with students
  • BSc 4 groups of approx 16 students
  • Top 2 3hrs contact 1 lecture 2hrs lab /
    extension
  • Bottom 2 4hrs 1 lecture 2 lab 1 tutorial/repeat
    lecture
  • HND 2 groups of approx 18
  • 4hrs 1 lecture 2 lab 1 tutorial/extension
  • 4hrs 1 lecture 2 lab 1 tutorial/repeat lecture
  • Progress monitored with personal tutors
  • Target extra support at weaker students
  • one to one sessions

31
BSc Computing
  • 2001/2002
  • 36 failure (withdrawals, fail/referrals)
  • 64 success !
  • 18 transferred to BIT / MMC
  • 52 progression
  • 92,000 in lost revenues
  • 2002/03 (on going)
  • 30 failure (withdrawals, fail/referrals)

32
Conclusions
  • Logo
  • Useful diagnostic tool
  • Useful tool for teaching programming
  • Useful tool to observe how students think
  • Improved retention progression?
  • Helped
  • But so did extra tutorial support
  • Future work
  • develop materials further
  • Introduce problem solving module utilising LOGO

33
Logo sites
  • MSWLogo is available free from
  • http//softronix.com
  • Useful Site run by the Computer Supported
    Didactics Working Group at the University of
    Vienna
  • http//www.eurologo.org/
  • Guido van Rossum's Computer Programming For
    Everybody
  • http//www.python.org/doc/essays/cp4e.html
Write a Comment
User Comments (0)
About PowerShow.com