| Computer Sciences 307 Assignments Page CS 307 · The University of Texas at Austin · Fall 2008 |
General assignment requirements.
| Programming Assignments | Individual assignments are to be completed by you alone. You
may not share code with other students or other programmers. Review the class policy on improper collaboration from
the class
syllabus and how this applies to individual assignments.
About half the assignments may be done in pairs using a technique called pair programming (Read the paper on pair programming to understand how the technique works.). One solution will be turned in for the pair. Once you start working with one partner on an assignment you may not switch partners. If you do not wish to work with a partner after starting on an assignment you must both complete it individually. You must inform your TA(s) via email if you start working on an assignment with another person and decide to finish as individuals. You may not re-pair after starting the assignment with someone else. When working on pair programming assignments you are expected to spend 80% of your time on the assignment working with your partner, together at one computer, taking terms typing, and navigating. Programs will be written in Java, using the Java 2 Platform Standard Edition 6.0. See the software page for information on downloading and installing Java at home. There will be 11 programming assignments. Assignments are due by 11 pm on the due date. You will have 6 free late (slip) days in 1 day units (1 minute to 24 hours = 1 day) for the semester.
Unless prohibited, you may use any component of the language or standard library (The Java API). Assignments must compile and run with Eclipse in the Painter Microlab. Assignments will either be submitted as a single Java file or in the form of a single JAR (Java Archive) file. Each assignment will specify exactly what to turn in. Assignments that are not in the correct format or not named correctly will receive no credit. Assignments must be turned in via the Microlab turnin program. If you are registered for more than one computer science class you must ensure that your turn your assignment in to the correct, CS307 directory. Failure to do so before the will result in a penalty of two slip days if the teaching staff must coordinate the transfer of the file to the correct directory. An assignment that does not compile, does not run, or suffers a runtime error, loses all correctness points. Assignments are worth 20 points. In general this is broken down into the following areas: 8 points for correctness, 4 points for testing, 4 points for documentation, and 4 points for design / efficiency. See the general grading guidelines for more details on the criteria for grading assignments. Each assignment will specify whether it must be done individually or as a pair. Assignments will be checked for plagiarism and copying using Moss. You may discuss high level design issues with your fellow students, but sharing algorithms or code or obtaining solutions from another source constitutes academic dishonesty and will result in an F for the course. The teaching staff will grade, comment, return, and post the grade for an assignment within 5 days. A grade can only be disputed within the following one week. All grade disputes must be made in writing by email to the TA with supporting evidence or arguments, and will result in the entire assignment being re-graded. Remember, no whining. |
| Testing |
Assignments will be checked for correctness with more tests generated by the instructional staff. Your assignment may pass all the provided tests and still be incorrect. Grading test cases will not generally be made available. If you would like to see the test specific test cases your code failed on you must meet with your TA during their office hours to see the test cases. |
| Design | Use assertions or if statements with exceptions to check for preconditions and postconditions on all public methods. Variables within classes are to be private. Do not use static data as a form of global variables. Break up long methods (over 25 lines of code) into smaller methods. |
| Documentation |
Use /* ... */ or // style comments for implementation details. Explain you implementation so someone not familiar with your solution can understand it. Follow Sun's Coding Conventions. Use good variable names. Write readable code with good indentation, blank lines, and blank spaces. |
| Efficiency | Worry about this last, but your program should run as fast as possible and use as little memory as possible within the constraints of the assignment and use. The Stopwatch class is provided to output the elapsed time of a program or method. |