Computer Sciences 307
Assignments Page
CS 307 · The University of Texas at Austin · Fall 2009

 

Assignment
Number
Placed Online Due Date Topic
1A Monday, August 24 Thursday, September 3 Communications Check, Tracing Code (Individual Assignment)
1B Wednesday, September 2 Thursday, September 10 Introduction to Java, Review of CS 1 topics. (Individual Assignment)
2 Wednesday, September 9 Thursday, September 17 Array and 2D array problems. (Individual Assignment)
3 Wednesday, September 16 Thursday, September 24 Creating a stand alone class - Mathematical Matrices (Pair Assignment)
4 Wednesday, September 23 Thursday, October 1 Implementing a program with multiple classes, using ArrayLists - The Name Surfer (Individual Assignment)
5 Wednesday, September 30 Thursday, October 15 Designing and implementing a program with multiple classes. (Pair Assignment)
6 Wednesday, October 14 Thursday, October 22 Algorithm Analysis (Pair Assignment)
7 Wednesday, October 21 Thursday, October 29 Recursion - (Pair Assignment)
8 Wednesday, October 28 Thursday, November 12 Using lists, creating data structures - implementing various set classes (Pair Assignment)
9 Wednesday, November 11 Friday, November 20 Linked lists (Individual Assignment)
10 Wednesday, November 18 Tuesday, December 1 Using stacks and queues - word ladders. (Pair Assignment), No more than 3 slip days may be used on assignment 10.
11 Monday, November 23 Friday, December 4
No Slip days may be used on assignment 11.
Binary search trees - (Individual Assignment)
No Slip days may be used on assignment 11.

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 at least 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 12 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. You must turn in a file with the correct name and in the proper format. (the source code if I ask for the .java file or the source code files packaged as a jar file. The format will be specified on the assignment page.)

If you do not follow the instructions and specifications for assignments (name, where to turn in, jar file format) you cause extra work for the graders and myself. As a student and potential software developer you must follow instructions and specifications. When you are penalized for failure to follow instructions it causes you to become a special case. With over 150 students the TAs and undergrad proctors use scripts to streamline some aspects of grading. Not follow the assignment instructions and specifications causes thee scripts to fail and the graders must spend more time on your submission. The following penalties are in place not because I am mean spirited or petty, but because there must be consequences for failure to follow instructions. otherwise there is no deterrent. Please read this account of a student who has seen the issue from both sides.

Penalties for failure to follow instructions and specifications on assignments:

Assignments are not graded on effort or time spent working on them. They are not graded on a strictly linear scale. Points will be deducted for failed test cases, poor style, poor efficiency, lack of necessary comments, convoluted algorithms, lack of student provided test cases, lack of answers to questions regarding the assignment, and other reasons deemed appropriate by the instructor.

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 week. This isn't a weekend bizarre. You are responsible for contacting your TA or proctor if you assignment is not graded in a timely and accurate fashion.

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 and style:


Documentation:


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.

To the CS 307 home page