This exercise builds on the work you started in class on 06.21, and continued in class on 06.28, developing classes for the problem of "finding the best time for Prof. Conrad to schedule office hours.
On 06.21, we started on three classes: time, interval and availability.
On 06.28, we put some files up on the web that represent each student's availability for office hours. We also demonstrated a program, available at the link below, that can generate the URLs for all of those files. It is a "simple matter of programming" (SMOP) to extend that program to one that can read all the data at all of those URLs.
To extend it, apply the technique illustrated in the source file at the link below, which shows how to read data from a URL:
On 06/28, I also gave you these additional instructions:
The links above contain lists of times that students can not come to office hours, given that office hours would be held sometime between 9am-8pm, Monday through Friday.
We want to produce, eventually, some kind of chart that shows, for each interval of time, how many students could come during each interval. We then want to do something to find what the "best" office hours schedule should be. We talked about various approaches.. i.e. if Conrad is going to schedule TWO office hours per week, we might pick the "most popular hour" for the first one... but what about the second one? Is there a better way than choosing the "second most popular hour?"
We want to come up with objects (Java classes and JUnit tests for those classes) that will help us solve this problem.
Last week, we started on a set of classes and JUnit tests, working in pairs. Today, I'm asking you to continue that assignment, but with one additional instruction: don't be bound by the list of specific objects in the original instructions---instead, come up with the list of objects that you and your partner think will best help to solve the problem given here.
You may collaborate among pairs on discussing approaches to the problem, etc. but you need to primarily work with your assigned "pair". You may work in any way that you wish, but I encourage you to adopt the "pair programming" approach discussed in the textbooks and in lecture.
Chapters 1-4 in Java Extreme Programming Cookbook.
Write a program that will read all of the data available in the files on the web, and produce output that will help the instructor choose the best time to have office hours, given the global constraint of 9am-8pm, M-F.
The problem is to help the professor choose the best time to hold office hours. Your job is to provide Object Oriented software that helps the professor solve this problem. If you can devise a better user interface, then do it. But be prepared to defend your choices—in terms of what helps the user best solve the problem, not what was easier for you to program!
By now, you know what that means, but here are a few reminders:
edu.udel.cisc370.yourUserName
src
and html
, and a build.xml
file that creates subdirectories called build
, temp
, and javadoc
etc as needed. index.html
file in the html subdirectory, similar to the one we used in H03. ant dist
target to deploy documentation and a distribution file for your project. You'll need to adapt this model to some things that are different about this project, vs. H03 and H04.
Submit your work on WebCT for the assignment marked P01. Upload and submit BOTH
P01.txt
file, which is a script of your programs. P01.tgz
or P01.zip
file, containing all of your java source code, and where applicable, sample input files. (It doesn't matter whether you submit a tgz
or zip
file—only one of the two is required.) Your tar or zip files should NOT contain your .class files—but if you followed the build.xml example from H03 properly, your "ant dist" task should create a tarball and zip file automatically that is in the proper form.
In addition—go to the Wiki page named 07J_P01, and make sure that there is a link to your distribution on that page, and the address of your SVN Repository.
Yes, for this project you will be using SVN. We'll give instructions during the lecture on 07/05.
Item | Description | Points |
---|---|---|
Functionality | The program actual works—it does what it is supposed to do when you run it | 25 |
User Interface | The program is easy for a user to use (15 pts) and the user interface is clean and free of any sloppiness (spelling mistakes, formatting problems) (10 pts) | 25 |
Unit Testing | Your code includes appropriate Unit tests, and those unit tests can be run from the build.xml file. | 25 |
Style | The program logic is clear and well documented. It is easy for someone to read your program and understand how the program works. | 25 |
Deployment | The build.xml file is clear, and operates correctly. It contains tasks for compiling, running unit tests, running the code, producing javadoc (and deploying it to the web), and creating a distribution file and posting it to the web. | 10 |
Web Site | There is a web site under your userid on copland.udel.edu where your javadoc is available, your code is available (in tarball/zip and browsable source form). There is a brief explanation of your code, and link to the assignment. You have updated the indicated wiki page with a link to this site. | 10 |
Scripting | Your script clearly demonstrates the functions of the program, and includes a reasonable amount of testing. | 10 |
SVN | SVN Repository is set up correctly, and accessible to the instructor and TA | 10 |
Following Directions | Both submitted files (e.g. script and (tarball or zip)) are submitted according to directions, and all other aspects of the project comply with instructions given. | 10 |
Total Points |