Computer Sciences 312 - Assignment Schedule and Guidelines
The University of Texas at Austin Spring 2022
Approximate Release Date Due Date Topic
1 Friday, January 14 Thursday, January 27 Simple Output and Structure - Song
2 Wednesday, January 26 Thursday, February 10 Output and loops - Drawing a complex figure.
3 Wednesday, February 9 Thursday, February 17 Parameters - Graphics Assignment
Spring 2010     Spring 2013       Fall 2013     Fall 2014
Fall 2015    Fall 2016   Fall 2017   Spring 2018  
Summer 2018     Fall 2018   Summer 2019   Fall 2019    Fall 2020   Spring 2022
4 Wednesday, February 16 Thursday, March 3 Conditional execution - Rock, Paper, Scissors
5 Wednesday, February 23 Exercise Only - Not Turned in.

A non graded exercise. Not to be turned in.
Using parameters, String  - Readability Statistics

6 Wednesday, March 2 Thursday, March 10 While loops - Hangman
7 Wednesday, March 9 Thursday, March 24

File Processing - Home Field Advantage

8 Wednesday, March 23 Thursday, March 31 Arrays -Temperament sorter
9 Wednesday, March 30 Thursday, April 14 Arrays and File Processing -  Substitution Cipher
10 Wednesday, April 13 Thursday, April 21 Two dimensional arrays - Connect 4
11 Wednesday, April 20 Thursday, April 28 Creating classes - Critters
12 Tuesday, April 27 Friday, May 6 Arrays of Objects - Guitar Hero, No slip days may be used on assignment 12

General Assignment Requirements:  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.

"The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast." - Joshua Bloch

"Code is read more often than it is written. Code should always be written in a way that promotes readability." - Guido van Rossum

"It's a long-standing principle of programming style that the functional elements of a program should not be too large. If some component of a program grows beyond the stage where it's readily comprehensible, it becomes a mass of complexity which conceals errors as easily as a big city conceals fugitives. Such software will be hard to read, hard to test, and hard to debug." - Paul Graham

Follow the rules from this program hygiene guide. Also review Larry's List, a checklist of hygiene and requirements.

Programs must be written in Java, using the Java 2 Platform Standard Edition 8.0.

There are 11 graded programming assignments.

Assignments are due by 11  pm on the due date.

You have 8 free slip (late) days in 1 day units (1 second late to 24 hours late = 1 day) for the semester.

 Assignments must compile and run from the command line in the GDC Microlab. When testing and grading your program we will use the CS department Linux machines and the command line. We will not use any particular IDE.  

Assignments must be turned in via Canvas. You must turn in a file with the correct name and in the proper format. Usually this is the source code in a .java file. The assignment page will specify exactly what to turn in.

If you do not follow the instructions and specifications for assignments (name, where to turn in, 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 do not meet your responsibilities as a student, it causes your submission to become a special case for the teaching staff. With many programs to grade, the TAs use scripts to streamline some aspects of grading. Not following the assignment instructions and specifications causes these scripts to fail and the TAs must spend more time on your submission. The following penalties are in place because there must be consequences for failure to meet your responsibilities as a student. Please read this account of a student who has seen the issue from both sides.

If you fail to follow the instructions for turning in assignments you will likely lose all points. Specific penalties for failure to follow instructions and specifications on assignments:

Assignments grades are not scaled to effort or time spent working on them. (You may spend a large amount of time working on an assignment and still lose points because your program is not correct.) The programs are not graded on a strictly linear scale. Points will be deducted for incorrect output, 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.

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. Review the class policy on cheating.

The teaching staff will grade, comment, return, and post the grade for an assignment within 6 days. A grade can only be disputed within the following 5 days. (This isn't a weekend bazaar. If there is an error in your grade you have one week to contact your grader. We won't go back at the end of the term to look at an assignment from early in the term.)

Please do not ask for a regrade lightly. Your grade could in fact go down as a result of the regrade. Do not quibble over a few points. Regrades are for serious issues. In the past the vast majority of regrades have resulted in no change in the grade or a lower grade.

Please contact your TA  if you assignment is not graded in a timely and accurate fashion.

All grade disputes must be made in writing by email to the grader with supporting evidence and will result in the entire assignment being re-graded which may result in a lower grade.

To the CS 312 home page