Technological advances enable creation of systems on such large scales that design, analysis, and implementation require expert skills. These skills must include analytical and algorithmic thinking, the ability to abstract complexity, and the capacity to understand concurrency. To strengthen these skills in graduates of the computer science undergraduate program offered at University of Puerto Rico - Rio Piedras, and to create professionals that are better equipped to face the new professional and academic realities, our program will be redesigned to incorporate Parallel Computational Thinking (PCT) concepts throughout most of its curriculum.
The seven members of our faculty will undergo development in Computational Thinking (CT) and parallel concepts. This will empower us to redesign CS core courses by infusing PCT concepts. We will develop assessment tools that will measure student aptitudes and attitudes toward PCT. A parallel computation platform will be implemented locally and access to remote supercomputing centers will be established. Seminars on topics using CT and PCT will be sponsored and open to the general K-20 community. This project represents the first building block for the successful integration of CT into our undergraduate curriculum. Hence it provides a foundation for further growth toward a CT-centric and interdisciplinary Computer Science program.
Our efforts will result in an undergraduate program that reflects current computational practice in academia and in the private sector, and that ultimately produces professionals better equipped to tackle technological and scientific challenges. All project activities will be documented and made publicly available through external publications and through the department web page. Therefore our experience will serve as an information source for institutions that consider similar changes to their computer science curricula.
Nowadays, it is an accepted fact that sustained computational performance and reliability will be increasingly dependant upon exploiting the parallelism available throughout the whole spectrum of computing platforms, e.g., cloud computing, embedded systems, high-end multi-core servers, and hybrid systems. The implication of this reality to computer science education is evident: the ability to design effective and efficient solutions by means of parallel and distributed computing should be a required competency for all computer science undergraduates. In order to face this challenge, an undergraduate curricular transformation with emphasis in parallel and distributed computing is required. The major goal of our project "Asserting Parallel Computational Thinking into an Undergraduate 4-year Computer Science Curriculum" was to incorporate parallel computational thinking (PCT) throughout the undergraduate computer science program of the University of Puerto Rico at Rio Piedras (UPR-RP). During the life of the project we attained the following outcomes: 1. Redesigned nine core courses of the undergraduate curriculum of the UPR-RP computer science program As a result of this project, the undergraduate program has undergone its most encompassing curricular revision since its creation. Although no courses were added, the modifications made in most of the existing courses serve as a significant step in our goal of instilling PCT skills into all CS students. Furthermore, a wealth of presentations, exercises and educational and assessment materials were designed in support of the course redesigns. The Backward Design (BD) curricular methodology was recommended by our educational consultants to help us in the course/curriculum redesign. This model proposes three stages for curricular restructuring: (1) identify the desired educational objectives for the students, (2) determine acceptable evidence, and (3) plan learning experiences and instruction. The faculty discussions encouraged by the BD model allowed us to draw a strategic mapping of essential PCT concepts onto the core courses. The main purpose of this plan is to ascertain that all of the PCT key concepts are covered in at least one of the core courses and if possible, concepts are presented from different perspectives and levels of difficulty, e.g., concept follow-through. The nine affected courses were: Fundamental Structures of Computer Science (CCOM3030), Introduction to Problem Solving with Programming (CCOM 3033), Data Structures (CCOM 3034), High Level Programming Languages (CCOM 4029), Operating Systems (CCOM 4017), Introduction to Data Management (CCOM 4027), Computer Architecture (CCOM 4086), Design and Analysis of Algorithms (CCOM 5050), and Parallel Processing (CCOM 5060). PCT-related modifications to courses were made official by submitting the campus-level requests. Thus, the PCT assertions in the core courses are now obligatory topics in the affected courses. 2. Trained seven faculty professors in the area of parallel computational thinking Out of the nine professors in our department, seven were involved in the redesign, teaching, and assessment of the core courses and development of educational resources. All of them participated in the local activities sponsored by the project and six of them were funded to attended US conferences related to PCT and its education, e.g. Supercomputing and SIGCSE conferences. 3. Developed curricular, teaching, and assessment resources All materials developed for this project are available through the project's website http://knuth.uprrp.edu. Most of the designed activities use freely available software tools and can be run in inexpensive equipment, e.g. network connected desktops or laptops with the Bootable Cluster CD. 4. Disseminated our methods, results, and experiences in local, national and international conferences Throughout the duration of the project we have maintained availability of the developed resources through the website: http://knuth.uprrp.edu. During the first two years, our dissemination efforts were focused on letting our project be known to the local community: students and professors in our campus and other Puerto Rican universities. This was done through presentations in several local stem-related and general educational conferences, and in the project sponsored talks by invited professors, e.g. Dr. Jeannette Wing and Dr. Dan García. Once we had designed and implemented the PCT modifications in most courses and obtained enough assessment results, we wrote the article "Asserting Parallel Computational Thinking into an undergraduate computer science curriculum", which was presented at the Computer Science Education: Innovation and Technology Conference (CSEIT) 2011, Singapore. During the final year of the project, we presented the article "A Curricular Experience With Parallel Computational Thinking: A Four Years Experience" at the EduPDHPC Workshop at SC13, and the poster "Modules to teach parallel computing using Python and the LittleFe Cluster" at the poster session of SC13. 5. Organized local workshops Several workshops were successfully organized and enthusiastically received by the whole community: students, instructors, and many high school students. Remarkably, most of our female student actively participated in all activities. 6. Made accesible parallel computing platforms Three computing clusters were acquired with funds from our project: a sixteen-node Mac-mini cluster and two LittleFe units clusters were made accessible to support course, training, and research experiences in parallel computing.