Friday, April 25, 2014

Project Proposal: Bringing Parallel Education to the Masses

The fundamental question my project seeks to answer is "Can many of the core concepts of parallel programming be taught to people without much background in systems programming, or even without any background in programming at all?"

While a lot of the material covered in 418 involves intensive programming, specific hardware details, and advanced reasoning about program performance, many of the core concepts and themes of the course are simple and elegant enough that I believe they can be taught to a non-technical audience.  There's still the question of "what will that audience get out of this lesson, if they never plan to write a program, let alone a parallel program?" but I think parallelism permeates enough of everyday life that even people who never write a program in their life can learn something useful.

The structure of my lessons will be:

A 5 minute quiz

A 10 minute lesson

The same quiz, again

I plan to run these lessons on both technical majors with no knowledge of parallel concepts and non-technical majors.  My sample will likely consist solely of CMU students for practical reasons, but a reach goal is to be able to run these experiments on high school students or an even wider demographic.  Since they'll take the same quiz before and after the lesson, I should be able to use the changes in performance to measure the effectiveness of my lesson.  To avoid the issue of performance improving because of "teaching to the test," I'll make sure that nothing included in my lesson directly relates to the quiz (The examples I use in instruction will be more than superficially different than the examples I ask as quiz questions)

I plan to cover these topics:

  • Why parallelism is helpful/the concept of "speedup"
  • Challenges posed in parallelism:
    • Communication overhead
    • Pieces of a problem that are inherently sequential
    • Deadlock
    • Starvation

My deliverables will be:

  • The results of my tests with analysis of why I think they happened
  • The lesson(s) I gave (if I go through multiple iterations of the lesson/quiz, I'll include this for each iteration):
    • The quiz I used to measure performance
    • The script I used for the lesson itself
    • Any visual aids I use in the lesson
And my firm, will-definitely-be-completed goals are:

I will definitely run at least one iteration of my lesson on at least 5 technical majors and at least 5 non-technical majors and hand in all deliverables of that lesson as written above.

Stretch goals:

I'll try to run this on even more students than my firm goal of 10 people. 
I'll also try to contact the local high school and see if I can try this there.
If I get unsatisfactory results from my initial lesson plan after a few trials, I'll try to figure out its flaws, modify my lesson plan and try out the new plan on the remaining trials.

Day-by-day Timeline:

April 26: Develop lesson plan
April 27: Study for Parallel Exam :O
April 28-29: Develop/finalize lesson plan and find people to test it on
April 30-May 2: Test lesson plan
May 3: Modify lesson plan if necessary, otherwise begin analysis
May 3-5: Continue testing lesson plan
May 6: Study for and take a final (in another class)
May 7: Continue testing lesson plan and begin analysis
May 8: Begin writing up analysis, prepare presentation if chosen for the competition, study for a final in another class
May 9: THE MOMENT OF TRUTH


















No comments:

Post a Comment