Spring 2015 CSc 307 Homework Assignments


Homework #1

1. Complete the SimSE assignment.


Homework #2

2. Research the responsibilities required of the job you possess on your team.  Read the sections of the textbook relevant to your job.  See if there are any relevant resources on the course web site.  Write a job description for your role on the team.  Include any deliverables for which you are responsible.  Describe any tasks you must perform on a regular basis.  Type up the document in 12-point proportional font and save as a PDF.  Place your name and job title at the top.  One page maximum.  Submit to PolyLearn.


Homework #3 - Learning NetBeans

We will be using the NetBeans IDE for Java development in CPE 308 this quarter.   NetBeans 7.x is available on the lab workstations.  You may also want to install it on your personal computer.  For integrated JUnit tests, please use version 3.x.

Visit NetBeans Docs and Support site. There are many screencasts, tutorials, and articles. I suggest the "General Java Development" learning trail, and from there the Java Quick Start Tutorial takes only 10 minutes. After that, Developing General Java Applications tutorial takes about 30 minutes.

Complete this Java review activity using NetBeans


Homework #4 - Practice with Trac.

Prerequisites: Your team change manager must have completed the Trac SiteSetup directions.

The Project Overview mandates that each student keep track of their project time.  Create a ticket for yourself on your team Trac reminding yourself to submit your time log for week 1 to the team manager.  Click "View Tickets" and select an appropriate report for viewing.  Complete the task.  Close the Trac ticket.  View the report again.

Browse to the Sandbox page for your team wiki, e.g.
http://wiki.csc.calpoly.edu/teamname/wiki/SandBox

Create an entry for yourself like this example.  Refer to the guide on WikiFormatting,  use a heading, bold, monospace, a hyperlink, a list, a trac link to a ticket, and escaping WikiPageNames.   Don't forget to add a comment when you submit the page.

Create a new topic in your Trac discussion forum.  Add yourself as a subscriber and be sure you receive an email notification.

There is nothing else to submit for this assignment.



Homework #5

Read the outline of how to create a schedule and study the worked example.

1. Given the following information taken from a project's work breakdown structure:
Activity
Predecessors
Duration
A
-
10
B
-
10
C
-
5
D
A
7
E
B
5
F
B
7
G
B
2
H
C
5
I
G, H
8
J
D, E
4
a. Draw a task network diagram.
b. Create a table of earliest start/finish dates.
c. Draw a timeline chart.
d. Create a schedule, assuming the project starts on Jan 3 2011. (You may combine steps c and d if you are using a scheduling tool).
e. List the tasks on the critical path, and the earliest completion date.
Submit a hardcopy of your work in class on the due date.

For Instructor: HTML Gantt chart       .planner file


2. (Extra Credit) If your team decides to do this activty, then everyone on the team must do it. It's a great way to learn about each other's temperament and problem solving styles.
Complete the online Keirsey-Bates Temperament Scorer.
Plan to take about 20 minutes.
When you finish the survey, you will be shown a results page with an interpretation of your temperament. Print the results page and bring it to class to discuss with your teammates.

Homework #6

Read Lethbridge chapter 4 to learn what should go in a requirements document and how to create good requirements. Read the SRS for the Crazy Eights project to see if it follows Lethbridge's suggestions.
Write a critique of the Crazy Eights SRS (bullet list okay). Please follow the writing guidelines in the syllabus. (Suggested effort:  one hour).
Include your name and team name in the heading of your paper. Submit as a PDF document to PolyLearn.


Homework #7

Write a Use Case for the procedure for enrolling in a course with PASS at Cal Poly.
Include your name and team name in the heading of your paper. Submit as a PDF document to PolyLearn.



Homework #8

Follow the direction for this assignment.
Bring a hardcopy of your typed work to class on the due date.  Retain your work until the instructor asks to collect it.


Homework #9

Download the software for our competitor's application, FormScanner.  
Attempt to score the scans of exams in this zip file.  (The first image is the exam scoring key).

For each of principles 3 - 12 in 7.4 of book, discuss what aspects of the software fulfill the principle, and what aspects don't.   (Don't critique the web site, only the software itself). Include in your document the output produced from FormScanner.

Put your name and team in the header of your document and submit as a PDF to PolyLearn.


Homework #10

Complete the Working with Subversion in NetBeans activity (Pizza Order International). There is no written submission for this homework.

(Extra Credit) If your team decides to do this activity, then everyone on the team must do it. It's a great way to learn about each other's temperament and problem solving styles.
Complete this online personality test.
Plan to take about 15 minutes.
When you finish the survey, you will be shown a results page with an interpretation of your temperament. (Click "Start Reading").
Either print the results page introduction, or write down the URL, and bring it to class to discuss with your teammates (and submit for credit).


Homework #11

Use one of the suggested UML diagramming tools from the Tools List (recommended: Violet) to complete problems 1 and 2:

#1. Draw a UML Class Diagram showing the relationships for these entities:
Bird, Kite, Flyable, air current, beak, feather, eagle, finch, tail, string

#2. Draw a UML Class Diagram showing the relationships for these entities:
MusicPlayer, CD player, iPod, Band, guitarist, drummer, drumset, guitar, lead guitarist, rhythm guitarist, bass guitarist, song, playlist

#3. Imagine a simple two player internet game called Game2D with these features. Write a list of errors in this preliminary class diagram for Game2D. List the errors you identify ranked from most severe to least severe.  Type your solution using the course writing guidelines.

Print your solutions and bring them to class.  We will discuss the solutions as a group before submitting your papers, but they are still due at the class starting time. 

Homework #12

Complete the Self-Evaluation and submit your typewritten document.

Complete the Peer-Evaluation.  Typed is preferred, but neatly handwritten is acceptable.


Homework #13

Create a UML Class Diagram for a design of a solution to the Library problem (class handout). Include all attributes and method signatures. You do not need to include user interface classes. Use one of the suggested UML diagramming tools from the Tools List (recommended: Violet)
You may make any reasonable assumptions about the requirements that are missing from the problem statement; document your assumptions on a separate page.


Homework #14

Your objective of this homework is to critique your team's design for your version 1 product. Apply the design principles from the textbook in the following manner:
For each of the eleven design principles in chapter 9,

Please organize your document in the order of the principles in the book and label each section with the name of the principle.
Include your name and team name in the heading of your paper. Submit as a PDF document to PolyLearn.


Homework #15

One of the architectural patterns discussed in the readings is the Model-View-Controller (MVC) pattern.   In Java, this pattern exists as the Observer-Observable classes.   If you haven't used this pattern before, here's a short tutorial.

The TenLetterWordGame.zip file contains a NetBeans project for a simple graphical word game.  All the code is located in a single file.   Refactor the application so that is uses Observer/Observable.   The GUI is the observer and should have no game logic.  

Create a zip file from your project folder and submit to PolyLearn.


Homework #16

1. Complete the Design Rationale Exercises.  Include your name and the assignment number at the top. Submit a PDF to PolyLearn.
2. Repeat homework 13 with the video store problem (pdf).


Homework #17

The assignment directions are here:  Pseudocode
Type your solution into a plain text file using a text editor and submit it to PolyLearn


Homework #18

The assignment directions are here: Intro to JUnit Testing in NetBeans


Homework #19

Part A

Write a JUnit test class, DigraphTest, which performs tests on all six methods in the  Digraph class. (Digraph is dependent on the  Natural and  LetterPair classes.)

Here are the necessary .class files:  Digraph.class  Natural.class  LetterPair.class
Here they are in a single JAR file: Digraph.jar
(To add this JAR to a NetBeans project, open the project Properties > Categories > Libraries > Compile-time Libraries > Add JAR/Folder.)

Submit a single source file containing your completed, executing, and passing JUnit tests to PolyLearn. Include your name in an @author tag in the class header.

Instructor Link

Part B


Homework #20

Read this short overview of writing system tests cases and the QA criteria. (You don't have to read the last section on scripting).

Read this short description of the format for presenting system tests cases.

Inspect the first seven example test cases in this list.  Attempt to identify the most serious problem and write a brief explanation of how it could be improved.

Include your name and team name at the top of your document.    Print your document and bring it to class.  We will discuss the solutions as a group before submitting your papers, but they are still due at the class starting time.  


Homework #21

Write a system test script for the Jotto application. Follow these directions (shown as "hwk 10").


Homework #22

Complete the JaCoCo Plugin tutorial for NetBeans.

Create a NetBeans project for  FileList.java.

Write a JUnit test class that achieves at least 97% line coverage.

Create a document containing your JUnit test source code (monospaced font) and a screenshot of Results page showing coverage of FileList.java.   Submit as a PDF to PolyLearn.



Homework #23

Complete the Self-Evaluation and submit your typewritten document.

Complete the Peer-Evaluation.  Typed is preferred, but neatly handwritten is acceptable.

Please don't staple; submit separately.

The Project Manager must also print and complete the project survival test from your required reading. Although the questions are in present tense, since your project is finished, assume they are posed in the past tense. Bring the completed document to the project retrospective to share with your team.