340 likes | 352 Views
A Roadmap to Integrate PDC Topics in Introductory Programming Classes: An US Experience. Sheikh Ghafoor Department of Computer Science Tennessee Tech University. Overview. Overview PDC concepts covered Unplugged Examples Plugged Examples Lesson Learned. Overview.
E N D
A Roadmap to Integrate PDC Topics in Introductory Programming Classes: An US Experience Sheikh Ghafoor Department of Computer Science Tennessee Tech University Hands-On Programming Workshop
Overview • Overview • PDC concepts covered • Unplugged Examples • Plugged Examples • Lesson Learned Euro-EDUPAR 2017
Overview • Almost all computing devices have more than one core • Future workforce need to know PDC • US • 3000 4 year and ~ 2000 2 year colleges • estimated 300 to 400 introduce some PDC at undergraduate level Euro-EDUPAR 2017
Awareness of ACM/IEEE recommendation Euro-EDUPAR 2017
Faculty Expertise in PDC Euro-EDUPAR 2017
Major Impediments • Faculty Expertise • Available Resource • Room in the curriculum • Administrative Hurdle Euro-EDUPAR 2017
Tennessee Tech • Medium size engineering university • About 11000 students • 90% undergraduate, 10% graduate • BS, MS, and Ph.D. • Computer Science Department (Fall 18) • ~525 student (470 undergraduates, 55 graduate) • 12 full time faculty • Teach ECE, math, and physics • Multiple sections of introductory classes • ~100 students per class Euro-EDUPAR 2017
Undergraduate Curriculum • Traditional CS degree • 3 concentration: • Cyber Security, Data Science, HPC (added in Fall 16) • Required: Object Oriented Programming, Design of Algorithms, Foundation of CS, OS, Networks, Assembly, Database, 2 semester of SE, • Electives: Parallel Programming, Information Assurance and Cryptography, IT Security, Data Science, Artificial Intelligence, Programming Languages, Analysis of Algorithms, Data mining and Machine Learning, Cloud Computing Euro-EDUPAR 2017
Introductory Programming Classes • CS0 – Principles of Computing • CS1 – Introduction to Programming (C/C++) • CS2 – Data Structure/Algorithms (C++) • Share memory context • Lecture about PDC concepts • Unplugged activities • Plugged on lab exercise Euro-EDUPAR 2017
PDC Concepts for CS0/CS1/CS2 • Concepts • Concurrency • Serial vs Parallel (Speed up) • Sequential Dependency • Parallel Overhead • Synchronization • Data Race • Locality • Producer Consumer • Technology • Design parallel program • Implement parallel program (OpenMP, Java thread, python etc.) EduHiPC 2018
Unplugged • Activity that illustrate PDC concepts • Easy to convey concepts and principles without the complexity of implementation and execution environment • M & M sorting • Card sorting • Array filling • https://www.csc.tntech.edu/pdcincs/index.php/ipdc-modules/ EduHiPC 2018
Candy Sorting • Time sorting by color by one student • Time sorting by multiple students Euro-EDUPAR 2017
Parallel Version Euro-EDUPAR 2017
Array in Parallel Euro-EDUPAR 2017
Array in Parallel Euro-EDUPAR 2017
Plugged Activity • Reinforce the concepts conveyed through unplugged activity and lecture • Involve programming or running applications • Parallel Sum • Parallel sort • Pi Calculation • Matrix multiplication • Image processing EduHiPC 2018
CS0: Sort Demonstration Using SNAP Euro-EDUPAR 2017
Parallel Sum Euro-EDUPAR 2017
CS1-Image Flip Euro-EDUPAR 2017
CS1 Parallel Image Flipping gray_value[i] = 0.21 * pixel[i].red + 0.72 * pixel[i].green + 0.07 * pixel[i].blue Euro-EDUPAR 2017
CS2 Parallel Image FlippingProducer Consumer Hands-On Programming Workshop
Course Enrollment Euro-EDUPAR 2017
Evaluation • Objective • Lab work Assignment • Subjective • Self evaluation through survey Euro-EDUPAR 2017
Objective • On time submission • Full score if correct • 25% if student submit the work • 25% to 50% reduction based on severity of error • 2016 Fall • Average class score 68% on PDC lab • Average for all lab 72.5% • 2017 Spring • Average class score 72.6% on PDC lab • Average for all lab 80% Euro-EDUPAR 2017
Evaluation Euro-EDUPAR 2017
Evaluation Euro-EDUPAR 2017
Evaluation Euro-EDUPAR 2017
Lesson Learned • Parallel programming can be introduced very early • Hands on programming are preferred to lectures • Need to introduce the PDC topics at beginning in class • Unplugged activities may be very helpful to teach the concept before tools and programming exercise Euro-EDUPAR 2017
Lesson Learned • Time constrain • Faculty willingness and expertise • Background and preparation of the student • Text books • Appropriate hands on exercise at the right level of complexity appropriate for the level and to convey targeted concept(s) Euro-EDUPAR 2017
Challenges • Structural • Curriculum change is difficult • No room in curriculum • Faculty expertise • Resource – text book, hardware • Pedagogical • What to teach, where, how • Attitude • Everything working why bother EduHiPC 2018
Mitigation Suggestions • Start early • Start slow • Introduce in current topics content • Be an evangelist • Try to convince colleague and administration • Contribute EduHiPC 2018
Resources • https://grid.cs.gsu.edu/~tcpp/curriculum/?q=courseware_management • https://www.csc.tntech.edu/pdcincs/index.php/resources/ • https://www.csc.tntech.edu/pdcincs/index.php/ipdc-modules/ • https://csinparallel.org/index.html EduHiPC 2018
Sghafoor@tntech.edu • Question? Euro-EDUPAR 2017