CompSci 308
Fall 2018
Software Design and Implementation

"Advanced" Java Practice

Java has many advanced features that may take some effort to understand how to use properly (or even well :) but that require very little syntax. In most cases, they may not impact your design dramatically, but they can make your code much cleaner and understanding them well can help you think about design more deeply.

Here are ones we have discussed in class

To work on this exercise, fork the original project lab_advanced into your own repository so you can edit, commit, and push your group's own changes.

Work in pairs to implement the changes described below to example code we have discussed this semester. Create a commit for each step below as your programming pair completes it.

Bins

Roulette

Browser

Your Projects

If you have completed all of the practice steps, try updating some of your own code with some of these features (such as, enumerated types in Game or Cell Society, lambdas in Cell Society or SLogo, reflection in any program).

Submission

At the end of class, use Gitlab's Merge Request to submit your pair's refactored code to the lab's organization repository. Make sure the NetIDs of everyone in the group are in the title of your Merge Request.