Presentation is loading. Please wait.

Presentation is loading. Please wait.

Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.

Similar presentations


Presentation on theme: "Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department."— Presentation transcript:

1 Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department The University of Georgia eileen@cs.uga.edu The University of Georgia is a Research Intensive University. With a faculty of 21, the Computer Science Department currently enrolls roughly 250 undergraduate majors, 60 MS students and 60 PhD students. Using a phased approach to the inclusion of PDC concepts in the undergraduate Computer Science curriculum, we will integrate across 4 core undergraduate courses. Guest lectures are employed in Intro to Computing, Software Development, and Data Structures courses. Curriculum revision of the Systems Programming class provides pervasive inclusion of PDC concepts. Evaluation in each course involves both pre- and post-test evaluations of concepts, as well as subjective satisfaction surveys. Status: Lecture 1 in the CSCI 1301 course took place on April 21 st. Video of the student participation and lecture were recorded and are available for viewing. Pre-test, post-test and survey data has been collected and analysis is under way. Data Structures, in Spring 2012, will add lectures on complexity analyses of parallel and distributed algorithms. Spring 2011 Fall 2011 Spring 2012 Intro to Computing and Programming (CSCI 1301) Typical Enrollment: 175 Description: This course covers fundamental techniques of program development and supporting software tools and focuses on the object-oriented programming language Java. Includes fundamentals of the object-oriented paradigm (classes, objects, encapsulation, inheritance and polymorphism), basic data structures (arrays and linked lists), and basic algorithms (searching and sorting). PDC topics: definition and rationale for parallel and distributed computing parallel and distributed searching and sorting algorithms discussion of range and precision of data representation Approach: Students “act out” sorting algorithms (BubbleSort and MergeSort), in playing roles of processor, array element, and counters for compare, swap, and step. Use physical representations of cost (candy) to motivate a discussion of costs and computational complexity. Use “slack time” in MergeSort to motivate Parallel Mergesort. Compare costs and discuss factors that affect run-time and benefits and limitations of parallelism. Evaluation: Pre-test/post-test evaluations of concepts & problem- solving ability; subjective satisfaction surveys. Software Development (CSCI 1302) Typical Enrollment: 90 Description: This course focuses on software development techniques in an object oriented computer language and emphasizes systems methods, top down design, testing, modularity, and structured techniques. Provides intensive introduction to the design and implementation of significant software projects, using the object-oriented programming language Java. PDC topics: multi-threading, synchronization and mutual exclusion implementation of P&D searching & sorting algorithms design and implementation of simple client-server system discussion of cluster computing, cloud/grid computing, P2P Approach: Online course materials have been developed and can be found at: www.cs.uga.edu/~eileen/Concurrency_tutorials www.cs.uga.edu/~eileen/Concurrency_tutorials The modules on “Concurrency Concepts” and “Implementing Concurrency” are relevant here and will be refined for use in this course. One lecture will introduce the materials and discuss a programming project to a parallel sort algorithm, as acted out in 1301. Another lecture will discuss client-server, p2p, and cluster and grid computing and introduce a programming project involving a simple-client server system. Evaluation: Pre-test/post-test evaluation of concepts. Evaluation of implementations produced in 2 programming projects. C++ and Unix Systems Programming (CSCI 1730) Typical Enrollment: 45 Description: This course covers the basics of UNIX systems programming, including file and directory structures, basic and advanced file i/o, process creation, and interprocess communication. An initial unit on "C++ for Java programmers“ familiarizes students with the use of C and C++ in systems programming. Introduces templates and file processing. The Systems Programming unit addresses file systems, directories, processes, signals, pipes/fifos, and sockets. PDC topics: programming with pthreads, ACE, MPI threads/shared memory v. multi-processing v. distributed implementation of classic problems in synch & concurrency use of tools to detect concurrency defects, evaluate performance. Approach: We will make use of course materials found at: www.cs.uga.edu/~eileen/Concurrency_tutorials www.cs.uga.edu/~eileen/Concurrency_tutorials and develop additional modules focused on pthreads, ACE, and MPI. Hands-on approach involving implementation of classic problems in synchronization and concurrency using C++ libraries, Java threads, MPI, and low-level Unix systems primitives. A final project will involve evaluations of these different approaches for performance, ease of implementation, etc. Evaluation: Pre-test/post-test evaluations of concepts, comparative evaluation of approaches, ability to design and implement (synthesize) solutions.


Download ppt "Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department."

Similar presentations


Ads by Google