In this module we introduce Graphical User Interfaces (GUIs), and Java's support for building GUI applications. We also introduce the Model-View-Controller (MVC) design pattern and how it is typically used when developing GUI applications.

We conclude this module with an introduction to concurrency in Java using threads and processes. We discuss some of the issues that arise with concurrent programs along with Java's support for concurrenty and synchronization.

  1. Draw the UML sequence diagram for the Model-View-Controller design pattern.
  2. Given a set of Java classes, change the code to use the Model-View-Controller design pattern.
  3. Draw the UML class diagram for the Model-View-Controller design pattern.
  4. List the three Java AWT top level containers.
  5. Explain the difference between a Java Thread and a Java process.
  6. Explain the difference between the two ways of defining a Java Thread.
  7. Use the synchronize keyword to ensure non-interference between threads.
  8. Use the synchronize keyword to implement exclusive access to a resource.

  • DUE DATE: TBD

SUMMARY OF ASSIGNMENT

Problem Points
Problem 1 3
Problem 2 25
Problem 3 9
Problem 4 5
GRAND TOTAL: 42

Problem 1

Item Points
Math formula written in comments or Racket 1
Correct answers for numbers 10 and 15 2
TOTAL POSSIBLE POINTS 3

Problem 2

Item Points
Math formula written in comments or Racket 2
Correct answers 1
Correct values inside the table 6
Correct values for updated table 7
Math formula written in comments or Racket 2
Math formula written in comments or Racket 3
Correct values for 30, 60, 90 and 120 days 1
TOTAL POSSIBLE POINTS 25

Problem 3

Item Points
Correct answer for 2, 5, and 10 hours of work 3
Math formula written in comments or Racket 3
Correct answers for 100, 132, and 141 hours 3
TOTAL POSSIBLE POINTS 9

Problem 4

Item Points
Racket function 2
Correct answer for each conversion 3
TOTAL POSSIBLE POINTS 5