Title: H.C. Davis
1 Approaches to Dealing with Diversity in
Introductory Programming
- H.C. Davis
- IAM Learning TechnologiesElectronics and
Computer ScienceThe University of Southampton,
UK - hcd_at_ecs.soton.ac.uk
- http//www.ecs.soton.ac.uk/hcd
- with assistance from
- Christopher Gutteridge
- Help Desk Co-ordinator
2This talk
- Im going to
- convince you that there is a problem
- describe some of the attempts we have made to
solve this problem - evaluate the success of these solutions
3Question 1
- Do you differentiate your teaching of
introductory programming for students of
different abilities/experience? - YES we formally recognise at least three groups
(advanced, normal, novice) - YES we formally provide extra assistance for
novices - YES but only informally, e.g. by spending more
time in labs with those who need it - NO all students get the same treatment
4Our Surveys
- 50 intake have A level Computing
- 25 have Programming skills and experience beyond
that required for A level - 25 have no programming experience
- (This is fairly typical of many universities)
5Consequences
- Beginners find pace too fast
- Experienced find pace too slow
- Beginners intimidated by know-alls
- Students at both ends of the initial ability
range express unambiguous dissatisfaction - Students progress through degree unable to code
- And we are not intending to harmonize entry
requirements (e.g. A level Computing)
6Approaches Already Tried
- Schools regularly use differentiated learning
- Universities have typically not felt it important
as students have similar points scores on entry - In CS we have tried approaches to level the
playing field - Structured Programming (Pascal)
- Language Independent approaches a la Bornat
- Functional languages (SML, Miranda, Scheme)
- But OO is currently increasing the divide
7Approaches to dealing with the already skilled
programmers
- Based on a paper by Jenkins (in which he
describes Rocket Scientists) - The principle is that once you have learned one
or two languages learning another is easily done
self paced - It is the programming and OO principles you need
them to concentrate on.
8Differentiated Approach
- At Southampton students group themselves
following an Initial Skills Survey - Space Cadets
- Strugglers
- The Rest
- Course covered in 3 lectures per week
- not compulsory for space cadets
- Extra lecture split into two
- motivational lecture for space cadets
- Revision / Tutorial for strugglers
- The rest need not attend
- Space Cadets need not attend labs log books
- Space Cadets do standard courseworks plus other
challenges
9Challenging the Space Cadets(1) Making things
more difficult
- Initially we gave them similar tasks to the rest
- Just used more interesting examples
- reading a string from a text file
- became
- turning an email id into a persons name (by
using the departmental info web page)
10Challenging the Space Cadets(2)Going beyond the
syallabus
- After the introduction to applets
- Write a freehand drawing applet
- Just use your imagination to make as interesting
drawing facilities as possible with as little
programming as possible. - A Student solution
11Challenging the Space Cadets(3)Getting the
students to reflect
- Get Students to reflect
- Create a simple spirograph drawing applet
- Enhance it for a particular application
- Assess each others work
12Challenging the Space Cadets(4)Making it fun (or
toys for the boys?)
- Robocode (IBM framework for building robots)
13Assisting strugglers (1)- make lectures active
and relevant
- Concentrate on active teaching techniques
- Keep going back to basics
- Typically strip the current coursework down to
the essential fundamental task and get them to
solve it in groups in class. - Very interactive question and answer sessions.
- Ensure that every student participates
- Code solutions in class (compile every line!)
14Question 1
- In the average large lecture, which do you think
is nearest the truth? - 100 of students concentrate 100 of time
- 75 of students concentrate 75 of time
- 50 of students concentrate 75 of time
- 50 of students concentrate 50 of time
- 25 of students concentrate 50 of time
- Worse than that
15Assisting strugglers (2)- ensure its all on the
web
- Course notes
- Labs
- Assignments
- Past exams and solutions
- Multiple choice quizzes
- Step by step coding examples
- Local Newsgroup for questions
- FAQ
- Coursemaster style programming exercises
- Pointers to on-line tutorials, books etc.
16Assisting the strugglers (3)- help systems
- Teaching assistant as tutor should mark assist
at labs and mark courseworks - Some Universities appoint other students as
happy helpers - 10 hours a day Helpdesk
- Local Newsgroup/Forum for questions (staff have
editing rights) - Buddying
17Assisting the strugglers (4)- careful design of
courseworks and labs
- We found students did not relate to the problems
we set we employed a recent student to help us
choose the courseworks - Careful staging of the courseworks to make clear
what is required to pass (to demonstrate required
learning outcomes) - (Encourage strugglers not to attempt advanced/
open ended parts intended for space cadets).
18Question 2
- What percentage of your students do you think
include some code that they have cut and pasted
from another student? - Greater than 75
- 50 - 74
- 25 - 49
- 10 - 24
- Less than 10
- Our students would never do that
19Assisting the strugglers (5)- stamp out
plagiarism
- Recent studies (Culwin 2001) show plagiarism is
usually much worse than staff assume - Preventing plagiarism forces students to engage
with the problem - - but we may not wish to stop them working in
teams / buddying.
20Evaluating the Results
- At Southampton we measure the effectiveness of
our approach in three ways - Correlating initial confidence with final results
- Student feedback
- Measuring change in initial confidence on next
semester Advanced Programming Course
21Student Confidence at start of Advanced
Programming course
How Confident are you about Java Programming?
22Reflections space cadets
- Buy-in less than ideal
- No marks awarded for these activities
- Interesting problems require TIME
- Interesting programs are difficult to explain
- Students frequently out-program lecturer
- a recognition of this is important for many!
- Good feedback from students
- Some students slipped through the gap between
being space cadets and the rest learned
programming but not principles.
23Reflections - strugglers
- Dont call them strugglers!
- The problems are to get them to
- write any program (time on task)
- join in the community of learning (so they get
the right help) - understand how to learn in lectures (active
learning) - realise that this may be hard and need work (many
have a culture of strategic study which may not
work here) - Students on with-CS courses do not have the
same buy-in, and sometimes fail to join the
community of learning - Exams should be hands-on