Teaching Students how to Teach Themselves

advertisement
Karen Petrie, University of Dundee
Teaching Students how to Teach Themselves
Our Challenge
• Computing moves incredibly quickly
• Programming languages move on
• We need to teach students how to learn new
programming languages
– Not just what is currently in vogue
Ideally
• Two weeks with a good textbook and a
compiler, should be enough for them to be
proficient in any language.
How Difficult is this?
• Imagine you have spent all of your life in one
area of the UK, you know one dialect of
English.
• Now you time travel to Shakespearean
England.
• How easy would it be to communicate?
Programming
• This is about how difficult it is to change from one
programming language to another
Apart from....
• People speaking Shakespearean English are
likely to be a lot more helpful than a
computer
• Computers require you to type in precisely
the correct language!
Curriculum
• In1st year we concentrate on teaching
students to programme for the 1st time.
– JAVA
• In 2nd year we concentrate on building these
programming skills and learning new
languages
–C
– C++
Links
• There are links between JAVA and C++
– Same keywords
• C++ is a superset of C
• We want students to see these links and work
out how to use them to learn languages
• This has been added as a learning outcome of
the 2nd year module
Approach
• Teach the new language conventionally
through lectures and practicals
– We are trying to get students to spot and
use the connections to previous languages
for themselves
• Introduced tutorial for this purpose
Weekly Tutorial
• After lectures, but before practical session
• Small groups of 5 students
• Each student has to write-up a blog post of 2
tutorial discussions, worth 5% each
– Meaning at the end the group has a blog
spanning the whole course (10 weeks)
• Students loose 1% for every week they do not
attend
Tutorial Content
• For every concept you have learnt this week,
discuss how it differs from previous languages you
have learned.
• Are there any overlaps between your courses this
week?
In the Discussion and Blog Posts
• All students found connections
• The easiest ones to find were when the
concepts are the same or similar
• Surprisingly, students struggled the most
when concepts were completely different
• More successful students dug a bit deeper
and discussed the connections in more detail
Exam Question
• Students were given a snippet of JAVA code,
they had to write in both C++ and C.
• They then had to compare in detail all three
sets of code
• The final question was: How can studying the
differences between syntax and semantics in
small code snippets (such as the exercise
above) aid in learning new languages?
Results
• This exam question was the best answered
question in the exam in 2011 and 2nd best in 2012
• The 2011 group all passed Games Programming in
2012.
– Many of them taught themselves a new language
to do so.
Download