Sunday, January 20, 2008

“Really Achieving Your Childhood Dreams” by Dr. Randy Pausch

Dr. Randy Pausch is a highly respected and honored professor of Computer Science and co-founder of the Entertainment Technology Center at Carnegie Mellon University in Pittsburgh, PA. In September Dr. Pausch gave a lecture titled “Really Achieving Your Childhood Dreams,” which was part of what is called “The Last Lecture” series. The series is designed for top lecturers around the country to impart what they feel are their most important life lessons, as if it were their last. What made Dr. Paush’s lecture special was that it really was his last. A year before his lecture Dr. Paush was diagnosed with terminal pancreatic cancer. But to see Professor Pausch’s humor-filled talk one would never know that he has been told that he only has months to live. The inspirational lecture was given to just 400 students, but it quickly went ‘viral’ on the Internet.

Sunday, December 16, 2007

When Students Attack

I was further reflecting on the nature of lecturing and the madness of going into a room, standing at the front, and having 20-150 people take notes on your random thoughts. It’s a strange business, and can be a very stressful one. Jerry Seinfeld remarked that most of us fear public speaking almost as much or maybe more than death, if we are at a funeral, most of us would prefer to be in the casket rather than delivering the eulogy. While this may be a bit extreme, there is an element of truth to it.

After thousands of years of evolution when we are in stressful situations our bodies are geared to either 'fight or flight', when we have to speak in public, epinephrine (or adrenaline) and norepinephrine (or noradrenaline) goes coursing through our bodies - way more than we need, but we can neither run away or fight, so instead we have to somehow harness all that energy into our performance. This is often difficult to do, I know some lecturers whose hands sweat and their mouth goes dry before a lecture, others get shaking knees and their voices begin to quaver. This is because their hearts are racing and they are preparing for a fight.

In this heightened state there is a natural fear of attack, and that fear will manifest itself in many ways; in terms of the fear of making mistakes in your lecture or losing your place, or that the students won't like you or they won't 'get' what you're trying to say. There is also the fear of physical attack, irrational but always present; at best the attack may be something tame like a pee shooter attack (like in the Marx Brothers film "Horse Feathers"), or at worst it could be a fatal attack as was the case for Cassian of Imola. He was a teacher whose students bound him to a stake and tortured him to death by stabbing him with their pointed iron styli. There are in fact many such historical cases of students killing their teachers, and no doubt somewhere in our collective unconsciousness every lecturer remembers such events just before they are about to begin to speak.

So the next time you are sitting in a lecture, have a bit of sympathy for your poor lecturer, they are fighting thousands of years of evolution to get their point across to you :-)

Friday, December 14, 2007

The Teacher's Toolkit

Following on from the previous post regarding the nature of teaching, I thought I'd follow it up with a post on a few tools that I think it is important for every teacher/lecturer to have to help them do their job.

A Reflective Journal

I think it is vital that a lecturer reflects on their lecturing. I have an A4 hardback notebook divided up into sections for my seperate courses. Each section contains printouts of slides for each lecture, as well as attendance sheets, handouts, labs, etc. associated with that lecture. Afer each lecture I spend five minutes writing down the key points of lecture, also I note any errors in slides and handouts. I sometimes take note of tricky issues that I need to rethink the way that I've taught and finally if a student proposes a good example or view it is usually worth noting.

If you really want to get into this you can include the following questions after each lecture

  • What did I do best?

  • What should I avoid?

  • What surprised me?

  • What were the good student questions?

  • What couldn’t the students answer?



Stopwatch and Hotel Reception Bell

I like to do timed exercises, they can be a lot of fun, and help breaks the class up into sections for the students and gives them time to reflect, e.g. after twenty minutes in the class say "Spend two minutes reflecting on what you think would be important to know for exams in this subject". To help get the students' attention back after such an exercise I have a reception bell that I give a few rings.

Sometimes when I ask students a question I use my reception bell to signal a correct or wrong answer, I do "ding-dong" for a wrong answer, and "ding-ding-ding-ding-dong" for a correct answer. I think it's better than having to say "No, no, no" all the time.

A Book of Short Stories

I always bring a collection of short stories into my classes, sometimes if the mood takes me I begin class by reading out a short story - this has a number of benefits; it gives me the chance to warm up my voice, it gives the students time to get tuned to my voice, also it gets them relaxed and ready to learn. I usually have some O. Henry's stories with me.

http://en.wikipedia.org/wiki/O._Henry

Markers

Even if you have all of your presentations in powerpoint and you don't have any need for markers, it is worth your while having a few (of different colours) just in case you want to elobrate on a point or sketch something out.

A Large Deck of Cards

Since I am a computer science lecturer, I use a large deck of cards when teaching topics such as Sorting, Seaching, Linked Lists, and Statistics.

Wednesday, December 5, 2007

Why Lecture?

Since a lot of my research is related to education, I often find myself presenting or teaching to fellow lecturers, and I often reflect on the real benefit of lecturing. Lecturing is a fairly difficult task, public-speaking is said to be one of the most stressful things you can do, and a lecturer or teacher has to do that every day, so what are the benefits to lecturing?



I've put together a list of possible reasons as to why we lecture and some suggestions to help these work more effectively.

1. To enthuse students
One very effective way to do this is when a lecturer puts themselves in the student's shoes, and considers what it is like to encounter the teaching material for the first time (although it may be the hundredth time for the lecturer) and is open to new suggestions and approaches by the students.

2. To give students the information that they need
It is important to remember that handouts can give 10 times more material than just direct chalk-and-talk, but so a mixed approach works best (but make sure handouts have lots of free space for note taking).

3. To cover the syllabus
To cover it in a meaningful manner give the students time to reflect and revise. So stop teaching for the last couple of weeks and get students to reflect and revise.

4. To give the student group a sense of identity
By getting the students to do group work and group assessments, they will form teams and groups.

5. Because it’s cost-effective to teach large groups
And this can still work for the teacher, so instead of throwing out questions to students (as some may be intimidated) ask students to spend the next 3 minutes writing down the three most important ideas we’ve been talking about, and spend a minute comparing their answers to their neighbours and look for 5 volunteers. Also rather than getting the students to ask questions; at end of class get the students to write down their questions on slips of paper and answer these at start of next class or on-line using a discussion board.

6. To help map curriculum
The lecturer must signpost the course. Show the students the syllabus, including the learning outcomes. Number the topics instead of bulletpointing them.

7. To see how the students are doing
This is the easiest and most fun part, look at their faces, see if they are learning. Also handout your slides, with the first slide having questions about the previous lecture - spend 5 minutes of lecture getting the students to answer.

8. To change student beliefs
By sharing your experience, and adding in expert views with existing theories and other students' ideas you can change their beliefs. Also make the student’s learning active, when students apply their ideas, it becomes their knowledge.

9. To help students learn
For a few minutes ask the students to reflect on HOW they are learning. Share with others their approaches, their triumphs and disasters. Also stop the class for a few minutes and discuss their note-making techniques. Or ask the students to write down 3 things they don’t yet know about a topic and want to learn, and amalgamate these lists and hand to the lecturer.

10. To help students figure out what the lecturer is going to ask in the exam
Students need to be more strategic about assessment, it is an intelligent response to their situation. But you just need to help them figure out your culture of assessment, but not every little facet of it.

http://www.e4project.ie/content/

Wednesday, November 14, 2007

The E4 DVD (in 5 parts)

One of the deliverables of the E4 project was the development of a DVD which outlined the main teaching methodologies employed in the project. This DVD is a wonderful 12 minute piece and has interviews with some of the main people involved in the teaching part of the E4 project. Below is that DVD in five parts.

Part 1





Part 2





Part 3





Part 4





Part 5



Monday, November 12, 2007

The Computer Scientist's Library

Computer scientists are strange group of people, the job has all the drawbacks of a scientific job combined with all the drawbacks of an artistic job, in particular I am thinking of those of us who have to program for a living, writing computer programs is a complex business, it requires a mathematical precision and remarkable creativity. So it's like your job is being asked to create a masterwork painting every day, they have to be very artist and yet require an exact structure and form as well. And if you make an error it might be months later when it is discovered, just before the CDs are being pressed. It is a very dificult profession to sustain over a long period of time.

So what are the things that that make computer scientists a group? Shared views, shared interests, shared vocabulary and shared knowledge. One of the ways this happens is in the books that we read, so I've been trying to put together a short list of books that I think every computer scientist should read. After many starts and stops, this is my list of the top ten books in no particular order;

The Art of Computer Programming by Donald Knuth
O.K. I know I said that the list is in no particular order, but the Knuth books MUST be the top of any computer scientist's reading list. Knuth is a brilliant writer, exciting, a master of his subject, he puts the science into computer science.

The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage by Clifford Stoll
Clifford Stoll's true life story of tracing a cracker who was using his computer as a bridge to access top secret information is definitely one of the most incredible computer books, inspiring and very well-written, and you learn a lot about Unix.

Hackers: Heroes of the Computer Revolution by Steven Levy
The definitive story of the Hacker movement; Greenblatt, Gosper, Stallman, names that are legendary in programming mythos, their early adventures in the MIT AI lab are documented here, and the beginings of the Open Source movement can be traced from here.

The Hacker Crackdown: Law and Disorder on the Electronic Frontier by Bruce Sterling
This brilliant book outlines the key events in the evolution of hackers (really "crackers"). The exciting events that shaped the face of Hackerdom like Operation Sundevil and the trial of "Knight Lightning"

The Tao of Programming by Geoffrey James
This is a book that spoofs the Tao Te Ching and consists of several chapters with interesting software development anecdotes, entitled - The Silent Void, The Ancient Masters, Design, Coding, Maintenance, Management, Corporate Wisdom, Hardware and Software, and the Epilogue.

The Elements of Programming Style by Brian Kernighan and P. J. Plauger
The title of this book pays homage to The Elements of Style by Strunk & White, an excellent book in the study of programming style, advocating the approach that computer programs should be written not only to satisfy the compiler, but also with human readers in mind.

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
This excellent book looks at the main elements of programming in the modren IT industry. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible, easy to adapt, and reuse.

The Mythical Man-Month: Essays on Software Engineering by Fred Brooks
One of the best books ever written about the complexities of software development, the biggest lesson of this book is that the rules of common sense definitely do not apply when working on large software projects with teams of people.

The Secret Guide to Computers by Russ Walter
This book is considered a real cult book because of the author's distinctive, hilarious writing and the author's extreme devotion to his readers. The Guide covers everything relating to computers, from their hardware to their software to their history.

The C Programming Language by Brian Kernighan and Dennis Ritchie
More commonly called "Kernighan and Ritchie" this book is without a doubt one every programmer should read, written in a style that could almost be considered new wave, you have to be sitting at a computer with a C compiler to really enjoy this book.

------------------------------------------------------------

O.K., that's good and well, but what about some books that are not computer science books, but computer scientists should read, here are five;

Discrete Mathematics: An Introduction for Software Engineers by Mike Piff
A really well-written book on discrete mathematics, topics covered include mathematical logic, set theory, finite and infinite relations and mapping, graphs, graphical algorithms and axiom systems, all good stuff for every computer scientist. Best of all it includes implementations of many of the algorithms in Modula-2.

Gödel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter
One is the most interesting books ever written, described by the author as "a metaphorical fugue on minds and machines in the spirit of Lewis Carroll". The book examines the lives of logician Kurt Gödel, artist M. C. Escher and composer Johann Sebastian Bach, discussing common themes in their work and lives. At a deeper level, the book is a detailed and subtle exposition of concepts fundamental to mathematics, symmetry, and intelligence.

How to Solve It by George Pólya
Pólya's book is a really excellent guide to problem-solving. Unlike other books of this type, Pólya does not recommend any specific set of techniques by rather a more general heuristic approach to solving problems.

Numerical Recipes by William Press, Saul Teukolsky, William Vetterling and Brian Flannery
These are a collection of books by the above authors that contain an enormous amount of material on computational methods, the scope is supposed to be "everything up to, but not including, partial differential equations", although the second edition does include a chapter on PDEs that discusses the important concepts in the field and cites the most important papers.

The Emperor's New Mind by Roger Penrose
Roger Penrose's book is a remarkable exploration of the nature of human consciousness, his view is that consciousness is non-algorithmic, and thus cannot be modeled by a conventional Turing machine. He suggests that quantum mechanics plays an essential role in human consciousness. The collapse of the quantum wavefunction is seen as relating to the brain function.

------------------------------------------------------------

And just for fun here are five fiction books that mention programming or are about computers in small or large ways. I always dip into one of these if I need a bit of inspiration.

Tron by Brian Daley
Based on the movie of the same name "Tron" the novel is really excellent, it adds a lot of characterisation and depth that was lacking in the movie, it also includes a lot of fun computer in-jokes that a programmer will enjoy. But most importantly the underlying philosophy of Tron is something that I very much believe in, that EVERY computer program you write contains a little bit of your spirit in it (no other programmer would write a program exactly the same way that you do, so each of your programs are unique to you).

Spock's World by Diane Duane
Not really about computer programming, but there is just one paragraph that makes this a magical book for programmers, near the end of the book Spock's father, Sarek who is a programmer on the planet Vulcan comes to Earth to work with human programmers, and in one paragraph Sarek reflects on the nature of human computer programmers, it's excellent.

The Prisoner's Dilemma by Jonathan Blum and Rupert Booth
Based on the TV show "The Prisoner" and using the game theory problem of the prisoner's dilemma as its central premise, this is a really fascinating book, and features a computer expert codenamed "Number 101" who seems very much like Alan Turing to me.

The Discworld Novels by Terry Pratchett
In particular the character of Ponder Stibbons embodies a lot of what a really good computer programmer should be like, plus "Anthill Inside", brilliant.

The Passing of the Techno-Mages: Books 1-3 by Jeanne Cavelos
These books are set in the future and tell the story of a group who use very advanced technology to simulate the effects of magic. The novels centre around the mystery of where this technology came from in the first place and how the lead character Galen treats this technology like a computer programmer.

Friday, November 9, 2007

In Principio erat Verbum

My favorite word when giving training to lecturers on new approaches to teaching is “TECH” (or “the Tech”), as I mentioned in a previous post this term represents the blending of TECHnology and teaching TECHniques to form the TECH. It is worth considering the meaning of the two words that help combine to create the TECH.

Technology is made up of “Techne-” and “–ology”. “Techne-” derives from the Greek and means an art, craft, tool or the way something is gained, and “–ology” derives from the Greek word Logos meaning to speak about something or to write something. Thus “Technology” is speaking or writing about how things are gained. So technology is not the computer you are using to read this posting, it’s when you speak about it that it becomes technology. In other words it is creation through speaking, the same way magicians have cast spells for thousands of years through invocations. Of course the computer scientists reading this will know all about creation through writing (and will be familiar with the terms “casting” and “invocations” in a different context also).

In modern times the word “technology” has changed its meaning, now it has become synonymous with “high technology” (or hi-tech), the antonym of which is “low technology” (or lo-tech) which can be defined as crafts or tools whose inception predates the Industrial Revolution. If this is the definition we accept then one of the oldest technologies that exists must be written language. Writing is a tool that allows communication whose inception long predates the Industrial Revolution. The entirety of written language consists of a mere twenty-six symbols or tools that capture the whole of human knowledge and the most profound of human thought.

One of the reasons for this pondering is that this week I obtained a PDA (Dell Axim x51v) which consists of amongst other things a tablet (or writing surface) and a stylus (or pen). It is a wonderful piece of technology, but each time I use it I am reminded that one of the earliest known literary works, the Epic of Gilgamesh (which concerns the adventures of a great hero Gilgamesh and his wild-man friend Enkidu) was written in Mesopotamia around 3000BC in cuneiform, using a stylus and tablets.




Turning now to the word Technique we discover that it originates from the French word technique which itself is from the Greek word technikos which in turn has the same root as “Techne-” which we will recall means an art, craft, tool or the way something is gained.

In a sense technology is speaking about a skill, and technique is the actual skill, which reminds me a lot of the relationship between teaching and learning, one view of which is that teaching is speaking about developing a skill and learning is about developing the actual skill.

When the TECH works well together it can be a joy, but it requires careful planning. What TECHnologies work well to help students learn? It depends on the topic being taught, the students and the teacher. What teaching TECHniques work well to help students learn? It also depends on the topic being taught, the students and the teacher.