Course Assignments

Document Sample
Course Assignments Powered By Docstoc
					George Blank
University Lecturer
CS 602
Java and the Web

       Homework Assignments
• Most corporations require work to be
  presented in a standardized format. This
  document explains my requirements for
  formatting, as well as listing the
• There will be reading assignments each
  week, and most weeks will also have a
  programming assignment.
Assignment Due Dates
• All due dates are given in Moodle. Look
  for “Assignments” in the menu on the left
  of the screen.
• The due dates are not the same week as
  you read the material. This is because I
  give you at least a week to do the
    Presenting Homework
• The course is Java and the Web. Each student
  must create a web site to display all work
  done for the class.
• Your web site should have a main menu for
  CIS 602 with a separate link for each
  assignment. Each assignment should display
  your planning document(s), your timesheet,
  your code, and your executed program, all on
  a single page.
       Web Site Organization

                        CIS 602           Homework
My Web                                                                            Planning
                          Chapter 3
 Site                     Chapter 4
                          Chapter 5a                                              Document
                             …             Applet
Your main               CIS 602            Each HW
Menu page               page with          should be
                        a link for         on one page.                           Time Sheet
                        each HW            List by
                                           number.                                 Running

  Time Sheet Example
          George Blank                Time Sheet
 Date         Time                       Task              Time Spent (hrs)
12-Sep-05      9:30 AM   Read Text and Lecture                          1.0
13-Sep-05      8:30 AM   Set up Java environment                        0.5
               9:00 AM   Plan code                                      0.5
               1:00 PM   Write Java Code                                1.0
14-Sep-05     10:00 AM   Write HTML and Applet container                0.5
               2:00 PM   Install and test code                          0.5
• Your applet, planning document, timesheet and code should
  be displayed on a single HTML page. There are utilities
  available on the Web that will convert Java code to HTML
  and pretty print it. See Java files are not
  acceptable, as my systems default to executing them, not
  to viewing the code. Since most of the code is provided
  for you, you must clearly identify code you have added or
  modified, preferably in a different color, but obvious
  comments are permissible.
• Except for chapter 4, your code must execute in an Applet.
     Linking to Moodle
• You must post a link to your homework in Moodle.
  The Moodle edit window shows a chain symbol that
  lets you create a hyperlink to your Web page. Since I
  do all my grading from Moodle, this is how homework
  is submitted.
    Late Assignments
• It is career suicide to get a reputation for being
  chronically late in the corporate development world.
  All homework must be turned in on time. Test all
  your links and make sure they work.
• If I have problems running your homework, you have
  one week to correct the problem. I will also grade
  any late assignments on that second week. Two late
  assignments make you ineligible for a grade of B+ or
  A. You can only get B or lower.
Work Load
• The standard for graduate classes is two to
  three hours of work outside class for each hour
  in class. You should expect to put in at least
  eight hours of work on the average homework
  assignment, and about thirty hours on the
    Cheating on Homework
• A large number of students have been copying
  assignments from other people, sometimes
  taking them from a Web site without asking. I
  have been getting complaints from the honest
  students. For that reason, I want you to
  personalize your code, especially in the
  comments. As soon as you learn how, start
  putting your code in a .jar file.
      Chapters 1 and 2
• Read Chapters 1 and 2 in the text and the lectures
  assigned in Moodle.
• Create your Web Site and main menu structure.
• Set up Java and Eclipse on your system and work your
  way through the Eclipse tutorial. Note: You can use
  another IDE if you prefer. JEdit is also popular,
  although it is not strictly an IDE. Hardcore Unix folks
  may use their normal development tools and editors;
  EMACS is available for Unix, Linux and PCs. The Java
  IDE can come with NetBeans, but if you are not already
  familiar with it, use Eclipse. I prefer tools that integrate
  JUnit and Javadocs into your environment.
Installing the JDK and Eclipse

   • Get Eclipse from
     To install it, just unzip the file with
     pathnames to a directory of your choice.
   • Eclipse has an option to get it with Java.
     Otherwise, you can get the latest JDK
     from Follow the
     instructions there to install it.
Chapter 3
Hello World
• Read Chapter 3 in the text and the lectures
  assigned in Moodle.
• Programming assignment. Prepare a Hello
  World program similar to the “Hello from
  Venus” one in the text, but make it your own
  by customizing the size, text and image. This
  homework will not be graded.
On Line Help
• The text author’s web site is at .
• You can download code examples there.
  Many of the exercises require you to
  modify the examples in the text.
• Some students may find that they learn
  better by typing the examples. I leave
  that decision up to you.
     Chapters 4-12
• Assignments for these chapters are taken from the
  exercises in the text book.
• Programs should be posted on your web site so that I
  can run them as applets. However I accept screen
  shots of applications.
• Any documents or test cases must be viewable on your
  web site.
• For some work, you may have to post screen shots to
  prove you did the work, especially if you cannot
  convert an application to an applet.
• List by chapter number, not week number or homework
  number. Otherwise it is very hard to find the correct
Chapter 4
Factorial, Files and Packages

• Read Chapter 4 in the text and the lectures
  assigned in Moodle.
• Do exercises 4.1, 4.2, 4.3, 4.7a and 4.8. As these
  are applications, your Web site must show screen
  shots to prove you got them working. For extra
  credit, get one or more of them working as an
  applet. (You must use applets or JNLP to get an A.)
• Submit your homework by posting a hot link to it in
  Moodle for that assignment.
Chapter 5a
Digital Clock
• Read Chapter 5 in the text and the lectures
  assigned in Moodle.
• Do exercises 4.9 and 5.4. These must be
  applets and must work on your Web site.
• Classroom students must bring five copies of
  their code and a copy of a planning document
  to class for inspection each week that
  homework is due.
Chapter 5b
Javadoc and URL
• Read Chapter 2 in the text and the lectures
  assigned in Moodle.
• Do exercises 5.2 and 5.3.
• Prepare a use case in the format shown in
  figure 2.19 in the text for exercise 5.3. I do
  not want Use Case Diagrams.
• Classroom students bring five copies of the
  code for 5.3 and one copy of your use case to
  class for inspection.
Chapter 6
Implement a Stack, JUnit

  • Read Chapter 6 in the text and the lectures assigned in
    Moodle, including the lecture on JUnit.
  • Do exercise 6.3
  • Prepare JUnit Test Cases for Exercise 6.5.
  • Do exercise 6.5 as an applet. Show screen shots of your
    JUnit tests and results. Your JUnit tests should test all
    stack functions.
  • Classroom students bring five copies of the code for 6.5
    and one copy of your JUnit code and output to class for
     First Exam
• First Exam (At home: classroom section will not
• The exam will be the timed development of an
  application. If I am teaching both DL and Classroom
  sections, different exams will be posted on Moodle on
  the class meeting day and Saturday mornings to be
  done that day. In addition to material covered in class,
  you will be expected to be able to use the java
  documentation to add features you have not yet
  studied. See next slide also.
       Cheating on Tests
• To prevent other members in the class from seeing
  your work on the tests, do not list the test in the menu
  of your Web site. Create a new directory under your
  public_html directory and put the test in it. When you
  are done, post a link to your code in Moodle. One week
  after the test is over, you can add a link to the test in
  your menu.html or index.html file.
Chapter 7
Sorting Algorithms

• Read Chapter 7 in the text and the lectures assigned in Moodle.
• Extend exercise 7.6, including a fully dressed use case (see
  figure 2.19) and implementation as an applet.
• For Part B, choose a color strategy that shows how the sort
  works, such as giving special colors for current index values
  (such as hi, lo, and mid in QuickSort on page 292.)
• Classroom students bring five copies of of your Part B
  code and one copy of your use case to class.
 Chapter 8
 Calculator and Zip Utility
• Read Chapter 8 in the text and the lectures assigned in
• Do exercises 8.5 and 8.7, with a sequence diagram for
  one and a communication diagram for the other.
  Prepare one of the exercises for inspection. Note that
  to get 8.7 to work on another computer, you will have
  to use a signed jar file or JNLP. If you cannot do either,
  provide screen shots to prove that it works for less
• Classroom students bring code and diagram for one
  exercise to class for inspection.
Chapter 9
Drawing Pad
• Read Chapter 9 in the text and the lectures assigned
  in Moodle.
• Implement the Drawing Pad application on your web
  site as either an applet or using JNLP. Add some
  features of your own.
• Prepare and document at least one JUnit test case
  and a planning document for a portion of the code.
• Classroom students bring materials for inspection.
 Chapter 10
 Maze Game
• Read Chapter 10 in the text, and the lectures assigned
  in Moodle.
• Extend the simple maze game on page 477 so that it
  creates a 4 x 5 maze with 20 rooms and allows me to
  view the maze on your web site. I should be able to
  move with the arrow keys and doors should open when
  you are next to them and press Enter. Sound effects
  should be used. Create a planning document. Note:
  Sound is blocked on Access your files
  through .
     Course Project
• The most important part of the course is the course
  project. It must be an original project, at least 200
  lines of code, using an applet for a client, with a GUI
  layout and event handling, and must be able to save and
  retrieve data from a database through a server. It must
  be properly planned with adequate planning documents,
  developed in an IDE, tested with JUnit, and deployed on
  a Web Server, preferably on or Animation, graphics, and sound are
Chapter 11
• Read Chapter 11 in the text and the lectures
  assigned in Moodle.
• As soon as you complete the maze game, you
  should concentrate on working on your course
Chapter 12
• Read Chapter 12 in the text and the lectures
  assigned in Moodle.
• Classroom: Bring planning documents for your
  project to class for a requirements inspection.
• Distance Learning: Post planning documents for
  project on your Web site.
    Second Exam
• Read lectures the lectures assigned in
• Second Exam
• The second exam will be take home
  programming. It may require you to use RMI,
  Servlets and/or JDBC. Note: The best way
 to “study” for the exam is to work on your
 project, using features that might be on the
• The Final for this class is a project, not an exam.
  A preliminary working version of your project
  must be posted on your Web site by the last day
  of classes to qualify for a grade of A or B+.
• The final version of your Project is due and must
  be posted on your Web site by the date
  scheduled for the Final exam. Classroom
  students may present their projects in class on
  the last day of classes if time permits and they
  are ready in time.
       Planning documents
• Any of the following planning documents are acceptable
  for this course:
   – Pseudo code – Chapter 4 only
   – A fully dressed use case. NO use case diagrams!
   – An interaction (communication/sequence) diagram.
   – A JUnit test suite (test-first programming)
   – Story cards and Class Responsibility Collaboration (CRC)
     cards (XP)
   – Operation contracts (usually for methods)
• Choose the planning documents most appropriate for your
Interaction Diagrams
• There are two interaction diagrams—sequence
  diagrams and communication diagrams. They
  are equivalent—if you do one in a tool like
  Rational Rose, it can automatically draw the
• A sequence diagram is better for showing the
  order of operations, while a communication
  diagram is better for showing the messages for a
  particular object.
Sequence Diagram
Communication Diagram
     Story and CRC Cards
• Story cards and CRC cards are informal tools, usually
  handwritten, often used in eXtreme Programming. XP
  depends on having a SME (subject matter expert)
  available to provide additional details to the
  developers as they code.
• Story cards, like use cases, describe a particular
  scenario for the application.
• CRC cards, one per class, describe the class, its
  responsibilities, and tells what other classes it
  collaborates with.
Story Card

Each payroll period, a check and check stub has to be created
for each employee. Timesheets Supply hours worked and
overtime for hourly workers plus sick time and holidays
for all workers. Taxes are calculated from tax details,
and deductions are computed for Medical Plan, Dental
Plan, Retirement Plan, and 401K Plan. A permanent
Record of the Paycheck is maintained in the Pay Ledger.
CRC (Class Responsibility
Collaboration) Cards

    Class Name Employee
    Superclasses Person
    Sub-classes Manager, Salaried Worker, Hourly Worker
    Responsibilities               Collaborators
    Calculate Pay               Timesheet, Paycheck, Pay Ledger
                                Tax Details
    Manage benefits             Medical Plan, Dental Plan.
                                Retirement Plan, 401K Plan

   Manage Training              Training Record, Certification,
                                Professional License
   Maintain records             Position, Employment History,
Note on Story Cards and CRC

• Story Cards and CRC diagrams are eXtreme
  Programming methods. XP attempts to speed up
  development by minimizing formal documentation.
• Therefore, it is best to do these diagrams by hand
  with pencil and 3x5 cards instead of faking them as I
  have done in the slides. You can scan or take a
  picture of your documents and post them on you
  Web site as a JPEG. I will also accept “faked”
  materials in the same format as my slides, but they
  are not faithful to XP.
Operation Contract
• Jia, Xiaoping, Object Oriented Software
  Development Using Java. Addison Wesley,
• Many students submit inadequate planning
  documents resulting in poor grades. An
  excellent resource to avoid this is

Shared By: