CSci 415 - Homework #1

Due: Sept 12, 2017

Purpose: to understand fundamental concepts and definitions in parallel and distributed computing (PDC from now on). This assignment is worth 50 points.

Reading: Problems.
  1. (6 points) Chapter 1 gives possible definitions for the terms concurrent computing, parallel computing, and distributed computing. Research these terms a bit more and write a paragraph describing the similarities and differences between them.
  2. (6 points) Chapter 1 also describes 3 types of coordination between computing tasks. Give the name and a brief definition of the different types of coordination, including an example of each.
  3. (4 + 4 points) Research the two concept from the reading you were assigned in class, using the text and outside sources. Write a paragraph describing the key ideas and an example or how it (or they) might be applied.
  4. (4 points) Find a programming language which supports parallel and/or distributed computing as a fundamental language feature, rather than using a external library or extension. Explain one way in which the language supports PDC. If it is specific to one type of computer or architecture, say which.
  5. (14 points) Think about the problem of determining if a deck of cards (standard 52-card pack) has been shuffled into some reasonably random order. Assume the deck is represented as an array of 52 objects, where each object models a particular card. We'll consider the deck shuffled if there are no runs of 3 or more consecutive cards, either in the same or different suits, AND there are no sequences of 3 or more cards in the exact same suit. The result of the algorithm is simply a boolean value - no modification is made to the array.

  6. (12 points) Create a graph to display the data from Table 2.5, page 59 using MatPlotLib. Use different colored lines and shapes for each different problem size given.