CompSci 308
Fall 2016
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

For these exercises, practice Pair Programming (working closely with another student and sharing a single computer). To ensure both people try driving, switch the person who types on the primary computer every 10 minutes. You may use a second computer to look up documentation or search the Internet for solutions related to the exercises, but not to do your own work or socialize.

Roulette

Create a commit for each step below as your programming pair completes it.

Bins

Create a commit for each step below as your programming pair completes it.

Browser

Create a commit for each step below as your programming pair completes it.

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 group's refactored code to the original organization repository for that project (i.e., lab_bins or cellsociety_teamXX). Make sure both people's NetIDs are in the title of your Merge Request.