Teaching Parallelism in Python-Based CS1 at Small Institution

Teaching Parallelism in a Python-
Based CS1 at a Small Institution
Challenges,
Technical and Non-Technical Material,
And CS2013 coverage
Steven Bogaerts
 
Some Major Challenges
1.
Essential to cover other (non-PDC) topics
2.
Student inexperience greatly limits options
One possible solution:
A careful mix of 
technical
 and 
non-technical
 work
Select 
technical
 work carefully to complement
traditional course topics
Further practice in loops, calling methods, parameter-passing
Non-technical
 work fits students’ lack of experience
“Technical”: Coding
multiprocessing
 module in Python
Designed for simplicity
2 – 3 hours of contact time
Python Multiprocessing Module
Code examples are interspersed with non-technical material.
“Non-Technical”: Analogies, Exercises
1 – 3 hours of contact time
Background and history
AR Digital logic and digital systems
: 
Comprehend that multicore is the trend in
architecture…
Parallelism in real life
Shoveling a driveway, digging a hole, running a company
PD Parallel Performance
: 
…communication costs…
Interprocess communication
Counting people in building – text message vs. shared Google doc
Card sorting – cooperating next to each other with limited space vs. sending
messages across the room
PD Parallel Architecture
: 
Explain the differences between shared and
distributed memory…
Analogies and Exercises
Locks and Join
The conch from 
Lord of the Flies
 – must hold it to be
allowed to speak in meeting
Join: Adult waits for child picking flowers: “Come now,
please 
join
 me up here.”
Interleaving of parallel increments
PD Parallelism Fundamentals
: 
…data races…
PD Communication and Coordination
: 
…an ordering of
accesses among concurrent activities that is not
sequentially consistent… use synchronized queue...
IAS Defensive Programming
: 
Demonstrate how to prevent
a race condition from occurring.
Questions?
Slide Note
Embed
Share

Explore challenges, technical and non-technical materials, and coverage of CS2013 in teaching parallelism in a Python-based CS1 course at a small institution. Overcome student inexperience with a mix of technical and non-technical content, including coding the multiprocessing module in Python and analogical exercises. Address essential topics beyond parallelism, such as loops and parameter passing, while delving into real-life analogies to understand parallel architecture and performance.


Uploaded on Sep 08, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Teaching Parallelism in a Python- Based CS1 at a Small Institution Steven Bogaerts Challenges, Technical and Non-Technical Material, And CS2013 coverage

  2. Some Major Challenges 1. Essential to cover other (non-PDC) topics 2. Student inexperience greatly limits options One possible solution: A careful mix of technical and non-technical work Select technical work carefully to complement traditional course topics Further practice in loops, calling methods, parameter-passing Non-technical work fits students lack of experience

  3. Technical: Coding multiprocessing module in Python Designed for simplicity 2 3 hours of contact time

  4. Python Multiprocessing Module Code examples are interspersed with non-technical material.

  5. Non-Technical: Analogies, Exercises 1 3 hours of contact time Background and history AR Digital logic and digital systems: Comprehend that multicore is the trend in architecture Parallelism in real life Shoveling a driveway, digging a hole, running a company PD Parallel Performance: communication costs Interprocess communication Counting people in building text message vs. shared Google doc Card sorting cooperating next to each other with limited space vs. sending messages across the room PD Parallel Architecture: Explain the differences between shared and distributed memory

  6. Analogies and Exercises Locks and Join The conch from Lord of the Flies must hold it to be allowed to speak in meeting Join: Adult waits for child picking flowers: Come now, please joinme up here. Interleaving of parallel increments PD Parallelism Fundamentals: data races PD Communication and Coordination: an ordering of accesses among concurrent activities that is not sequentially consistent use synchronized queue... IAS Defensive Programming: Demonstrate how to prevent a race condition from occurring.

  7. Questions?

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#