Assignment 3
TCSS 143
Programming Assignment 3
Due: see canvas, by 11:55pm (submitted electronically).
NOTE: Be sure to adhere to the University’s Policy on Academic Integrity as discussed in class. Programming
assignments are to be written individually and submitted programs must be the result of your own efforts. Any
suspicion of academic integrity violation will be dealt with accordingly
Purpose: The purpose of this programming project is to apply concepts of Object-Oriented Programming and
work with Recursion. There are 2 problems that need to be solved as part of this assignment.
Program compiles 15 Points
Documentation
Java Docs for Problem 1 10 Points
Process
Problem 1 50 Points
o Fields, Constructor, Methods (Movie.java) 15 Points
o Handling Exceptions 10 Points
o Test.java implementation 15 Points
o Output 10 Points
Problem 2 25 Points
o Practice-It Problems
Total 100 Points
Assignment 3
Problem 1: Movie ADT
You have been hired to an inventory system for movies that will allow the user to add, remove, and search for
movies in the collection. In this exercise, you will complete and test an initial implementation of the Movie ADT
that will be the heart of this inventory system.
Step 1: Movie.java
Create a class file Movie.java based on the description provided in the class diagram given below:
Step 2: Implementation of the compareTo() method
We have discussed the Comparable interface in class and we have seen some methods in the Collection interface
and Collections class that use the compareTo() method. What would be a good method for determining whether
one movie is less than, equal to, or greater than another movie? This is called the “Natural” ordering for the movie
ADT. Implement your compareTo() method.
Step 3: Exception Handling
• The constructor should throw a java.lang.NullPointerException if title is null and
a java.lang.IllegalArgumentException if year is negative.
• equals() & compareTo() methods should throw a java.lang.NullPointerException if
its argument is null.
Step 4: Test.java
A driver file Test.java has been provided with the Assignment. You will modify the driver program to perform
the following steps:
1. Instantiate eight objects of type Movie and add them to the movie List.
2. Print out the unsorted list of movies.
3. Sort the list of movies using Collections.sort().
4. Print out the sorted list of movies.
5. Search for a particular movie in the list using Collections.binarySearch()
6. Test your equals method.
Assignment 3
Problem 2: Based on Practice-It
Do the following exercises from Practice-It:
• University of Washington CSE 143 (CS2)
(Under) Recursion Tracing:
a. mystery2
b. mystery3
c. mystery7
• University of Washington CSE 143 (CS2)
(Under) Recursion:
a. factorial
b. writeChars
c. stutter
d. countToB.
1. Assignment 3
TCSS 143
Programming Assignment 3
Due: see canvas, by 11:55pm (submitted electronically).
NOTE: Be sure to adhere to the University’s Policy on
Academic Integrity as discussed in class. Programming
assignments are to be written individually and submitted
programs must be the result of your own efforts. Any
suspicion of academic integrity violation will be dealt with
accordingly
Purpose: The purpose of this programming project is to apply
concepts of Object-Oriented Programming and
work with Recursion. There are 2 problems that need to be
solved as part of this assignment.
Program compiles 15 Points
Documentation
Java Docs for Problem 1 10 Points
Process
Problem 1 50 Points
o Fields, Constructor, Methods (Movie.java) 15 Points
2. o Handling Exceptions 10 Points
o Test.java implementation 15 Points
o Output 10 Points
Problem 2 25 Points
o Practice-It Problems
Total 100 Points
Assignment 3
Problem 1: Movie ADT
You have been hired to an inventory system for movies that will
allow the user to add, remove, and search for
movies in the collection. In this exercise, you will complete and
test an initial implementation of the Movie ADT
that will be the heart of this inventory system.
Step 1: Movie.java
Create a class file Movie.java based on the description provided
in the class diagram given below:
Step 2: Implementation of the compareTo() method
We have discussed the Comparable interface in class and we
have seen some methods in the Collection interface
3. and Collections class that use the compareTo() method. What
would be a good method for determining whether
one movie is less than, equal to, or greater than another movie?
This is called the “Natural” ordering for the movie
ADT. Implement your compareTo() method.
Step 3: Exception Handling
• The constructor should throw a
java.lang.NullPointerException if title is null and
a java.lang.IllegalArgumentException if year is negative.
• equals() & compareTo() methods should throw a
java.lang.NullPointerException if
its argument is null.
Step 4: Test.java
A driver file Test.java has been provided with the Assignment.
You will modify the driver program to perform
the following steps:
1. Instantiate eight objects of type Movie and add them to the
movie List.
2. Print out the unsorted list of movies.
3. Sort the list of movies using Collections.sort().
4. Print out the sorted list of movies.
5. Search for a particular movie in the list using
Collections.binarySearch()
6. Test your equals method.
Assignment 3
4. Problem 2: Based on Practice-It
Do the following exercises from Practice-It:
• University of Washington CSE 143 (CS2)
(Under) Recursion Tracing:
a. mystery2
b. mystery3
c. mystery7
• University of Washington CSE 143 (CS2)
(Under) Recursion:
a. factorial
b. writeChars
c. stutter
d. countToBy
e. printRange
Submission Guidelines:
1. Problem 1
a. Movie.java
b. Test.java
2. Problem 2
a. One document showing the results from Practice-It problem.
Check the “Practice It Handing
Procedure” for instructions on saving the results from Practice-
It.
3. Zip the above-mentioned files and upload it to the submission
5. link for Assignment 3.
CMGT/578 v11
Course Scenario
CMGT/578 v11
Page 2 of 2Course ScenarioReynolds Tool & Die
Reynolds Mission Statement
“We are committed to providing our customers quality products
with the highest engineering standards.”
Reynolds Vision Statement
“We are committed to achieving our goal of being a market
leader for engineering solutions and will investment in technical
innovation. Our desire is to continue to expand our markets, our
technical competence, and our intellectual curiosity to serve our
customers.”
Additional Information
Reynolds Tool & Die is an automotive component manufacturer
supplying suspension pieces and technology to both other
suppliers and major U.S. and foreign manufacturers. Annual
revenue is around $50 million, and the company is profitable.
Reynolds has production facilities at their headquarters in
Akron, OH; in Bloomington, IN; and in Memphis, TN.
Approximately 300 people work for Reynolds, including 7 in
IT. The IT staff is broken down as follows:
· IT Director
· 2 Help Desk personnel
· 3 Network Engineers
· 1 Software Engineer, primarily supporting the company’s ERP
system
6. One network engineer works in Bloomington, one in Memphis,
and the rest of the IT staff is located in Akron.
The three sites are networked via an MPLS circuit. In addition
to SAP® software, the company uses Microsoft® Office 2010
for administrative work along with several specialized CAD
programs for design. The SAP software is two versions behind,
but not at end of its life. A data center is in Akron, while the
other two sites have smaller hardware footprints consisting of
Microsoft Exchange servers for email, a small file and print
server, and redundant Active Directory servers. EMC Storage
Area Network (SAN) devices are at each site. Redundant backup
appliances are in Akron and Bloomington, and data can be
cycled among the SANS for further redundancy. While some
server virtualization has been achieved, only about 20 percent
of all servers have been virtualized with the help of VMWare.
All sites use Cisco® switches, routers, and firewalls. Servers,
desktops, laptops and printers are all HP®, and are between 3
and 5 years old and the desktops and Laptops use Windows® 7
as the operating system. All servers are on Microsoft Server
2012.
There are no cloud applications. There has been a demand by
administrative personnel and engineers for integrating mobile
devices with Microsoft Exchange and other apps but to date the
company has not implemented a BYOD (Bring Your Own
Device) or a MDM (Mobile Device Management) solution.
The IT budget typically is between $1.2 and $1.5 million
annually, depending on capital expense. Note that this budget
ONLY covers hardware, software, services, and licensing.
Personnel costs are not included, nor do you need to include
them for the Week 4 budget assignment.
This year the company is embarking on significant expansion. A
joint venture has been signed with a firm from Mexico Peraltada
LLC in order to gain access to a new supplier market. Both
companies will remain independent, but Reynolds will exchange
engineering expertise for a percentage of sales in Mexico and
there will be joint development of intellectual property.
8. 2. Create a 1- to 2-page executive summary defending your
budget choices in terms of innovation and efficiency.
Part 1: Spreadsheet
The example spreadsheet that begins on page 2 is a rough
suggestion of an annual, itemized budget. You will create your
budget in Microsoft Excel. Your budget headings may vary, but
your budget needs to be as specific as possible. Within each
category, you should include purchases for the IT strategic plan.
For example, if, as the CIO, you are contemplating moving
applications to a cloud solution, your budget needs to reflect
that process. If you are implementing or expanding VMWare as
a virtualization solution, your budget needs to reflect those
purchases.
The actual numbers can be approximate. A little research can
point you in the right direction. For example, desktops run
about $200-$300. You can use approximate figures for items
such as licenses, maintenance agreements, servers, etc. Just
make sure you have some justification (i.e., references) for the
numbers you use.
Part 2: Executive Summary
Your executive summary needs to explain your budget. Possible
headings include:
I. Predictable Annual Expenditures
Simply put, fixed operational expenditures keep the lights on.
They are mainly hardware and software maintenance items,
licensing, etc. These are expected costs of doing IT business. If,
however, you are purchasing more hardware or software that
will require additional annual maintenance and license
agreements, you’ll need to defend those purchases and the
annual expenditures that will remain for the company.
II. New Purchases
9. Any new purchases you recommend need to be justified. Why
are you purchasing them? What benefit do you expect from the
purchases? You’ll need to justify the purchases relative to the
previous week’s assignments—Reynolds’ business situation and
goals. For example, how will a new investment in hardware,
software, or services achieve a competitive advantage for the
company? What do you think the company needs to purchase to
achieve its expansion goals? How much will outsourcing cost?
III. Special Projects and Long-term Strategic IT Investments
As CIO, you need to look at technologies in the context of long-
range strategic planning. Think of this section as your wish list.
The investments in this category may not help the organization
achieve its short-range goals, but they’re considered a long-term
investment in innovation to remain competitive. For example, a
manufacturing facility may consider artificial intelligence and
robotics as a long-range plan. Example Spreadsheet
Your spreadsheet should look, roughly, like this:
Annual IT Budget for Reynolds Tool and Die
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEPT
OCT
NOV
DEC