Spring-11: Introducing PDC Topics into CS1/2 and a Mobile- and Cloud-Based Intermediate Software Design Course
Updated materials (workshop papers, posters, presentations, evaluation results, etc.) are available at laufer.cs.luc.edu/teaching/edupar.
Recent changes in the environment of Loyola University Chicago’s Department of Computer Science include a better differentiation of our four undergraduate majors, growing interest in computing among science majors, and an increased demand for graduates with mobile and cloud skills. In our continued effort to incorporate parallel and distributed computing topics into the undergraduate curriculum, we are focusing on these three existing courses:
CS1: In response to a request from the physics department, we started to offer a CS1 section aimed at majors in physics and other hard sciences this spring semester. This section includes some material on numerical methods at the K and C levels, and about 4.5 class hours will be dedicated to parallel versions of these algorithms and the possible resulting speedup, using data parallelism in C#.
CS2: We have emphasized PDC topics in CS2 as of fall 2011. The course now includes a module on task parallelism, speedup, and load balancing in algorithms involving arbitrary precision arithmetics. We present these topics at the C and A levels during about 4.5 class hours in the form of sequential and multithreaded Java BigInteger computations of the Fibonacci numbers.
CS 313: We have emphasized PDC topics in this intermediate, object-oriented software design course since fall 2011. As of fall 2012, we switched the programming projects from C# to Java with Android. The latter provides a highly effective context for studying concurrency and distributed computing topics at the C and A levels including external and internal events, background threads, offloading computation from the mobile device to the cloud, and observing the resulting throughput-latency tradeoff.
Evaluation of our PDC course modules includes at least one quiz or exam where the students’ understanding of the covered topics is measured using a pre- and post-test design.